R2-D2
Dashboard
Node Red
Restreaming
The Force
UpdatedNever
v1.0.0

Overview

Loading…
R2-D2
Dashboard
Node Red
Restreaming
The Force
UpdatedNever
v1.0.0
DDroidspeak / Docs
Operator handbook
Droidspeak
What is R2-D2?
Runtime architectureAuth — Keycloak migration plan
FleetRestreamingGalaxy MapThe RepublicTemple ArchivesSTANAG 4817The Force
Tech StackNext.js 15 + React 19Tailwind v4ZustandTanStack Table + DataViewhls.jsLow-latency playerreagraphoglreact-grid-layoutMonacoScalar API Referencefumadocs
Cluster InfraTrailBaseReductStoreRestreamer (datarhei/core)TBMQKeycloakLonghornkube-vipIngress (Caddy + nginx-ingress + Traefik)Netbird
Operator QA Runbook
Install — RKE2Install — Dokploy
Contributor guideRelease Notes

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

PlaneWhat it controlsBacked by
FleetNode-RED instances — health, flows, deploys, promotion between stageshelm-released node-red containers + a YAML registry
RestreamingRTSP/RTMP camera feeds, layouts, projection panels and groupsdatarhei/core (restreamer) + TrailBase
Imp IntelUXV testing, calibration & evaluation for TaskForce-X sessions — not live taskingTrailBase + the STANAG 4817 (AEP-105) message model
Galaxy MapA network graph of every product and tool — click a node to navigatethe dashboard's own client-side renderer
RepublicMember nations, ShopKeepers, holdings — the political/inventory layerTrailBase + republic.yaml
Temple ArchivesTelemetry archive — Farsight API, feed registry, MQTT topic mapTrailBase + an MQTT broker (TBMQ)
The ForceExternally hosted apps embedded inside the dashboard — HoloChron, COP, Probe, HoloNet, Rift Gates, Medusa (planned)iframes against in-cluster services
SettingsYAML 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.

Runtime architecture

How the dashboard, Node-RED, Restreamer, TrailBase, and Yugabyte fit together at runtime.

On this page

The planesDownloadsOverview — what R2-D2 isIntegrator onboarding — connect a UXVHow to read this handbookAuth, in one paragraphA note on naming