What is R2-D2?
One-page tour of the dashboard, the planes it controls, and where to go next.
R2-D2 is the operator console for a small private fleet. It is a Next.js dashboard that talks to a swarm of Node-RED instances, a video restreamer, a few embedded operational apps, a relational/timeseries store, and a handful of map and telemetry surfaces. The goal is one console — one place to see whether the whole fleet is healthy, push a flow change to staging, pull a snapshot off a camera, watch a tactical view, edit the registry of nations, and inspect every API endpoint the dashboard itself exposes.
The fleet is organised into planes. A plane is a coherent slice of functionality with its own backing system, its own URL prefix in the dashboard, and its own page in this handbook.
The planes
| Plane | What it controls | Backed by |
|---|---|---|
| Fleet | Node-RED instances — health, flows, deploys, promotion between stages | helm-released node-red containers + a YAML registry |
| Restreaming | RTSP/RTMP camera feeds, layouts, projection panels and groups | datarhei/core (restreamer) + TrailBase |
| Imp Intel | UXV testing, calibration & evaluation for TaskForce-X sessions — not live tasking | TrailBase + the STANAG 4817 (AEP-105) message model |
| Galaxy Map | A network graph of every product and tool — click a node to navigate | the dashboard's own client-side renderer |
| Republic | Member nations, ShopKeepers, holdings — the political/inventory layer | TrailBase + republic.yaml |
| Temple Archives | Telemetry archive — Farsight API, feed registry, MQTT topic map | TrailBase + an MQTT broker (TBMQ) |
| The Force | Externally hosted apps embedded inside the dashboard — HoloChron, COP, Probe, HoloNet, Rift Gates, Medusa (planned) | iframes against in-cluster services |
| Settings | YAML editors for each plane's config files (advanced + GUI views) | local files in the repo |
Imp Intel is passive — we do not task anyone. R2-D2 holds no authorization to task nations, units, or live sensor platforms. Imp Intel is used after a TaskForce-X session's telemetry and video are captured, to fine-tune each UXV's baseline readings (its bias and variance against known-accuracy references). Those calibrated readings feed Medusa (full name Medusa Hydroid) — a planned Force page that will correlate and fuse contacts into the COP over the MQTT backbone. See The Force.
Downloads
Each document comes in two editions — a branded edition for general use and a NATO-format edition (NATO UNCLASSIFIED) for formal distribution. Both carry the same content.
Overview — what R2-D2 is
Branded edition (PDF)
"A Quick Overview" — branded cover and styling, NATO UNCLASSIFIED. Ref R2D2-OV-001_B, Edition A v1. Best for onboarding new operators.
NATO edition (PDF)
"Descriptive Overview" — NATO UNCLASSIFIED, numbered paragraphs, glossary annex. Ref R2D2-OV-001, Edition A v1. For formal distribution.
Integrator onboarding — connect a UXV
For an End-User Integrator bringing a UXV onto the fleet: NetBird access, assigned telemetry and video endpoints, data-format onboarding (STANAG 4817 preferred), and how integration scales across a fleet.
Branded edition (PDF)
"Integrator Onboarding" — branded, NATO UNCLASSIFIED. Ref R2D2-IG-001_B, Edition A v1.
NATO edition (PDF)
NATO UNCLASSIFIED, numbered paragraphs, glossary annex. Ref R2D2-IG-001, Edition A v1. For formal distribution.
How to read this handbook
Start with Architecture — it draws the boundary between each plane and shows how data moves between them. From there, pick the path that fits your goal:
Install — RKE2
The production path. RKE2, Helm, kube-vip IP allocation, ingress, secrets.
Install — Dokploy
Single-node evaluation. WIP — authored but not yet validated on a real host.
Components
Per-plane deep-dives. Start here when you're building a feature on top of one.
Operator QA runbook
Field checks for media ingest, ports, FFmpeg, GStreamer, ping, nc, and nmap.
API Reference
Every endpoint, rendered live by Scalar against the running deployment.
Contributor guide
Dev server, repo layout, conventions. Read this before opening a PR.
Auth — Keycloak plan
Migration plan, not code. Why TrailBase today, what changes if Keycloak ships.
Auth, in one paragraph
R2-D2 today uses TrailBase as its identity backend. The dashboard sets a session
cookie on /api/auth/login and every authenticated route gates on it. A Keycloak
migration is planned — see Architecture → Auth (Keycloak).
That document is a plan, not yet a commitment.
A note on naming
The Star Wars vocabulary throughout the dashboard — R2-D2, the Force, Holocron, the Republic, Temple Archives, Magic URLs — is internal flavour. It's load-bearing in the sense that route paths and table names use it. When in doubt, the names map to plain concepts: HoloChron is a map widget, HoloNet is an MQTT browser, Holoprojector is a video wall, ShopKeepers is a CRM-ish vendor list. Each component page leads with the plain-English summary.