Four ways in. Pick one.
1 / NO INSTALL
Mission Control in a browser tab
The ground control station is a web app. Open it, plug a flight controller into USB, and it talks MAVLink or MSP over WebSerial. No account is required to fly a local vehicle.
- URL
- command.altnautica.com
- Version
- 0.58.0
- Install
- none
- License
- GPL-3.0-only
Prefer to run it yourself? The same app self-hosts with one guided deployer, together with a self-hosted Convex backend, MQTT and the video relay. See the self-hosting guide.
$# Stand up the whole cloud stack on your own box:
curl -sSL https://raw.githubusercontent.com/altnautica/ADOSMissionControl/main/tools/deploy/deploy.sh | sh2 / THE AGENT
One command on the companion board
One installer serves every node role. It fetches a prebuilt ARM64 binary from GitHub Releases, verifies its SHA-256 before executing anything, installs the services, and reboots into a paired node.
$# On the drone (default profile):
curl -sSL https://raw.githubusercontent.com/altnautica/ADOSDroneAgent/main/scripts/install.sh | sudo bash
# On the ground station:
curl -sSL https://raw.githubusercontent.com/altnautica/ADOSDroneAgent/main/scripts/install.sh \
| sudo bash -s -- --profile ground-station
# Upgrade an existing node in place:
curl -sSL https://raw.githubusercontent.com/altnautica/ADOSDroneAgent/main/scripts/install.sh \
| sudo bash -s -- --upgradeFour profiles, one installer
--profile takes drone, ground-station, workstation or compute. Omit it and a fresh box installs the drone profile. A box that already has a profile keeps it across an upgrade.
On a Mac it builds from source
There is no prebuilt macOS binary, so the same script detects Darwin and compiles the workstation or compute profile with cargo into per-user launch agents. Run it without sudo; it refuses to run as root on macOS. Needs the Rust toolchain and git.
- CPU architecture
- ARM64 (aarch64)
- Operating system
- Debian-family Linux, systemd
- Privileges
- root (sudo)
- Python
- 3.11+, or provisioned
ARM64 is not a preference, it is the only Linux target the installer accepts. An x86_64 Linux box is refused with a clear error rather than half-installed. If no suitable Python is on the box the installer provisions a private CPython 3.11 instead of failing.
3 / DESKTOP
Mission Control as a desktop app
The same GCS wrapped for the desktop, built from the tagged release. Useful when you want USB serial and a local window instead of a browser tab.
- macOS (Apple silicon)
- .dmg, arm64
- macOS (Intel)
- .dmg, x64
- Windows
- Setup .exe, x64
- Linux
- .AppImage, x86_64
The macOS builds are not code-signed or notarized, so Gatekeeper will ask you to allow them on first launch and updates are a manual download. Grab the assets from the release page.
4 / ANDROID
Build the Android ground station
The native Android GCS is real code you can build and fly today, but there is no signed release and no store listing yet, so the only honest install path is a source build.
$git clone https://github.com/altnautica/ADOSAndroidGCS
cd ADOSAndroidGCS
./gradlew assembleDebug
# app/build/outputs/apk/debug/app-debug.apkNeeds JDK 17 and Android SDK 35. The app targets ARM64 devices on Android 10 or newer. More on what it does, and what it does not do yet, on the Android ground station page.
VERIFY
Check the install actually worked
The agent ships its own diagnostics. Run these on the node over SSH or on its console before you take anything to a field.
$ados # the terminal status page: setup URL, link, video, services
ados version # the installed version, even when the service is down
ados status --json # the same status as machine-readable JSON
ados diag video # a per-hop verdict on the video pipeline
ados diag link # the radio link: deaf, mis-keyed, jammed or healthy
ados logs tail # follow the on-box Black Box log storeA healthy first boot shows a reachable setup URL, a flight controller with a live heartbeat, and the services running. If video is the problem, ados diag video names the hop that broke rather than making you read logs. The Black Box store survives a reboot and is readable with the network down.
FOR CONTRIBUTORS
Install binaries you built yourself
Working on the agent? The installer will take your local build instead of the release.
$sudo ados-installer --upgrade --profile drone --channel edge --artifacts /tmp/stageEach file in the directory is named for its service and needs a matching .sha256 beside it; any service the directory does not carry still comes from the release. It requires the edge channel and is refused on stable, because a locally built binary has no signature the stable channel can verify. Linux only.
NEXT