# Multi-Station Dashboard and Station Discovery
URL: /reference/multi-station
Run OpenHTF on several test stations and see them from one place — the built-in dashboard_server, multicast station discovery, station_server history, configuration per station, and where the built-in tooling stops.
One OpenHTF process is one station running one test. A production line has several. This page covers what OpenHTF ships for that — a multicast-based dashboard listing stations on the LAN — and what it leaves to you.
`station_server.StationServer` (the process behind the Operator UI) joins a multicast group and answers discovery queries with its host, port and station ID. Defaults come from `openhtf.util.multicast`:
Set them per station in a YAML file passed with `--config-file` — see Production deployment.
Opens `http://localhost:12000`: a list of every station discovered on the subnet, refreshed every `--discovery-interval-s` seconds (default 1), each linking to that station's own Operator UI. `--no-local-only` is required to list stations on other hosts; the default discovers only the local machine. All flags are on the CLI page.
The dashboard is a thin index. It does not aggregate results or history; clicking a station takes you to that station's UI, served by that station.
`StationServer(history_path="/var/lib/openhtf/records")` makes the station's UI list past runs from a directory of JSON records. Point `OutputToJSON` at the same directory:
History is per station and per directory; two stations do not share it.
Multicast discovery needs the stations and the dashboard host on the same L2 segment (TTL 1) or a router configured for the group. Many factory VLANs block multicast; if the dashboard stays empty, that is the first thing to check.
Station UIs bind all interfaces on `station_server_port` with no authentication. Restrict with a firewall or reverse proxy if the network is shared.
`--config-value station_id=EOL-03` on each launcher script keeps names unique when hostnames are generic.
Need
Built-in
Alternative
List stations on the LAN
`dashboard_server`
—
See a station's live test remotely
Station UI over HTTP (no auth)
TofuPilot Operator UI: HTTPS + accounts
History across stations
No (per-station directory)
Central database via an output callback
Yield / Cpk across stations
No
Manufacturing Test Analytics
Run a different test per station from one place
No
Config per station, or TofuPilot procedures
Multicast blocked
Dashboard empty
Static bookmarks per station, or a hosted UI