Skip to main content
Every Drone Agent serves a browser dashboard on port 8080. Port 8080 serves the live dashboard as soon as the agent is installed. / and /home both open Home. The pages it shows depend on the node’s profile (drone or ground station), and every page reads live data from the agent’s own REST API.

Open the dashboard

Use any of these addresses from a browser on the same network as the node: A path that matches no page shows a not-found page with a link back to Home.

Access and authentication

Who can open the dashboard depends on where the browser is. A browser on the node itself is trusted. While the node is unpaired, a browser on its hotspot, USB link or a link-local address gets in directly, and a browser elsewhere on your LAN is asked for the dashboard PIN (4 to 12 digits; the first visitor sets it). Once the node is paired, an off-box browser needs the PIN or the pairing key. Callers from outside your networks are refused.

Dashboard PIN

When the agent refuses the browser, the dashboard shows a PIN splash instead of the pages:
  • No PIN yet: “Set a PIN to unlock this dashboard from other devices on your network.” Enter the PIN twice and press Set PIN.
  • PIN set: “Enter the PIN to unlock this dashboard.” Enter it and press Unlock.
  • Too many wrong attempts: the splash counts down until this browser may try again. If wrong PINs pile up from many callers, the whole node locks (HTTP 423 E_PIN_LOCKED) and the splash reads “Too many wrong PINs on this node; locked for N min. Clear it from the node console or with the pairing key.”
A correct PIN gives the browser a dashboard session. Settings → Security shows whether a PIN is set, alongside the agent API key state. Unpairing the node from Mission Control makes the dashboard ask for its PIN again.
Scripts and other non-browser clients use the X-ADOS-Key header instead of a PIN. See REST API for API authentication.

Layout

Agent dashboard Home on a drone node with the Enter Cockpit banner, status tiles and panels

Home on a drone-profile node.

  • Top bar: online dot, device name, the node’s .local name (click to copy), profile badge with ground role, board, agent version, uptime, a Settings shortcut and the theme toggle (dark, light, system).
  • Sidebar: the pages for this profile (see the next section). Below the lg width the sidebar becomes a drawer, and a bottom dock carries Home and Settings.
  • Enter Cockpit banner: on Home, opens the full-screen cockpit at /cockpit.
  • Region chip: on Home, reads Region: Unrestricted or Region: Pinned to a country code, and opens Settings → Region.
  • Banners: “Agent is unreachable. Reconnecting…” while the agent stops answering, and “Flight controller is disconnected.” on a drone with no FC link.
  • Offline page: Home shows Agent unreachable when the agent’s REST API does not answer (check power, network and that ados-supervisor is running), or Access not set up yet when the agent answered and declined; reload to set up access with the PIN.
Each page downloads its code on first visit. The shell and the access gate poll these endpoints:

What each profile shows

The sidebar and the routes follow the profile the agent reports through GET /api/pairing/info:
  • Shared: Home, Pairing, Extensions, Peripherals, Logs, Diagnostics, Settings.
  • Drone adds: Telemetry, Video, WFB Transmit.
  • Ground station adds: WFB Receive, Display & Joystick, Mesh (relay and receiver roles), Sources (receiver role).
Until the agent reports drone or ground_station (profile auto, or a profile the dashboard has no pages for), every route renders and the sidebar shows only shared entries. Opening a route that belongs to another profile shows a Not available on this profile panel instead of the page.
Not available on this profile panel shown on a drone node opening WFB Receive

A ground-only route opened on a drone node.

Routes and profiles

The Profiles column lists where a route renders; n/a means every profile. Settings sections are filtered the same way. To change the profile, open Settings → Profile, pick Drone or Ground station (and a role), keep Restart services after apply on, press Save profile and confirm. See Settings.

First-run setup

There is no separate setup web app. Onboarding lives in the CLI installer, and the dashboard is operational immediately after install. The agent still tracks setup progress as a step list, which Mission Control and scripts read from GET /api/v1/setup/status: Each step reports a state (complete, needs_action or optional) and a detail line. On the dashboard, Home’s status tiles cover the same ground: a red HW tile names the missing required component.

Remote access through Cloudflare

The agent can run a remotely managed Cloudflare Tunnel. Install its token, or the install command Cloudflare gives you, through the setup API:
The dashboard also accepts the token in Settings → Cloud, in the set-only Tunnel token field of the Remote access card, which never displays a stored value. GET /api/v1/setup/cloudflare/verify confirms the tunnel routes back to the agent.

Safety interlocks

While the vehicle is armed, the agent refuses actions that can drop the aircraft’s link or change how it flies, on the drone and ground station profiles. A vehicle state older than 3 seconds, or none at all, counts as armed. In the dashboard that covers:
  • parameter writes on Telemetry;
  • Reboot board and restarts of link services on Diagnostics;
  • profile, network, region and Wi-Fi changes in Settings;
  • installing, enabling or disabling an extension, and peripheral actions.
A refused request answers HTTP 409 with E_ARMED. Settings → Profile asks Vehicle is armed and offers Apply anyway; the other pages show the refusal and leave the action undone.
Overriding the interlock can drop the link to an armed aircraft. Read Safety before you do it.

First five minutes

1

Check Home

Open Home. Check the six status tiles (MAV, HW, VID, NET, CLD, PAIR) and the 60-second charts below them (Battery, RC RSSI, Bitrate, CPU). A red HW tile names the failing required component; open the Hardware panel for the fix.
2

Pair with Mission Control

Local-only node (default): in Mission Control open Pair New Node and enter the node’s hostname or IP. Cloud-relay node: copy the six-character code from Pairing and enter it in Mission Control, or paste a code Mission Control shows into Accept from Mission Control. The PAIR tile reads paired once linked.
3

Set a dashboard PIN

Open the dashboard from another device on your LAN and set a PIN, so later visits from the LAN need it.

Next steps

Home

Status tiles, charts and panels on the landing page.

Ground dashboard

The ground-station pages.
Last modified on October 11, 2026