SELF-HOSTING

Run the entire stack yourself.

Field operations already work fully offline. When you want fleet management over the internet, host the cloud relay on your own servers. A single guided terminal deployer stands up Mission Control, a self-hosted Convex backend, MQTT, and the video relay in one turnkey flow. No managed account. Your keys never leave your machine.

ONE COMMAND

From nothing to a running stack

The deployer is a full-screen terminal app. It generates the config, starts the backend, pushes the functions, sets the auth keys, brings up every service, and verifies it. Prerequisites: Docker and Node 20+.

shell
$# One-liner (clones the repo if needed, then launches):
curl -sSL https://raw.githubusercontent.com/altnautica/ADOSMissionControl/main/tools/deploy/deploy.sh | sh

# Or, from a checkout of ADOSMissionControl:
npm run deploy -- deploy          # the guided wizard
npm run deploy -- deploy --plan   # preview every command and file, run nothing
npm run deploy -- status          # a running stack's containers and reach links

THE FLOW

Watch it deploy

The same checklist and live detail you get from the on-drone installer, now for the cloud stack.

THE SCREENS

Guided, not cryptic

One menu: deploy, manage, run the web GCS, build the desktop app.
One menu: deploy, manage, run the web GCS, build the desktop app.
Pick what runs locally, or point at your own Convex, MQTT, or video relay.
Pick what runs locally, or point at your own Convex, MQTT, or video relay.
Verified reach links when it is live. Direct IP works from anywhere on the network.
Verified reach links when it is live. Direct IP works from anywhere on the network.

WHAT RUNS

Four services on one host

A single 4-core, 8 GB box handles a small fleet. Each layer is optional and additive.

Services and default ports
Mission Control (web GCS)
port 4000
Convex backend (client API)
port 3210
Convex backend (HTTP actions)
port 3211
Convex dashboard
port 6791
MQTT broker (TCP / WebSocket)
1883 / 9001
Video relay (RTSP to WebSocket)
port 3001

HOW IT WORKS

Built to be trusted

Your keys stay yours

Generated secrets (the Convex instance secret, the auth keys, the MQTT password) are written only to gitignored local files or set directly on your own backend. Nothing is printed to a log or sent anywhere.

Managed or spun up

Spin every service up locally, or point at a Convex, MQTT, or video relay you already run. The deployer wires whichever you choose.

Preview before you run

Plan mode prints the exact commands and files a deploy would run and write, with secrets redacted, so nothing happens until you say so.

Manage it after

Status, logs, restart, upgrade, and a guarded teardown are one menu away. Re-running is safe; completed steps are skipped.

You do not need any of this to fly. Mission Control runs standalone in the browser, pairs with an ADOS agent over your local network, and works fully offline. Self-hosting is for teams who want multi-drone dashboards and telemetry over the internet without depending on anyone else's cloud.

Get Early Access