--- title: central — Data-Hub Spine type: reference tags: [recon] related: ["[[navi]]", "[[services]]", "[[environment]]"] updated: 2026-06-18 --- # central — Data-Hub Spine ## Overview central is a multi-domain real-time data-hub spine. Adapters normalize upstream sources, publish CloudEvents to **NATS/JetStream**, and archive to **TimescaleDB/PostGIS** for historical and geospatial query. It is the live data backbone for navi traffic tiles and related situational-awareness feeds. - **URL (internal):** http://central.echo6.mesh:8000 (mesh-only, no public exposure) - **Host:** utility CT 104 (unprivileged Ubuntu LXC) - **Repo:** github.com/zvx-echo6/central (public, Python, branch ) - **Deploy path:** (Python venv, system user) ## Host | Attribute | Value | |-----------|-------| | Container | utility CT 104 | | Local IP | 192.168.1.104 | | Tailscale / mesh | 100.64.0.12 → | | Resources | 4 cores / 12 GB RAM / 100 GB disk | | OS | Ubuntu LXC (unprivileged) | ## Architecture The data flow is: upstream APIs → adapters (central-supervisor) → NATS/JetStream :4222 → central-archive (TimescaleDB/PostGIS :5432). The central-gui (FastAPI + HTMX, :8000) exposes the API consumed by navi via . ## Systemd Services All three units are **enabled and active**; deployment survives reboot. | Unit | Role | |------|------| | | Adapter scheduler + CloudEvents publisher | | | JetStream → TimescaleDB consumer | | | FastAPI + HTMX web app + API (the :8000 listener) | ## Ports | Port | Protocol | Purpose | |------|----------|---------| | :8000 | HTTP | GUI / API (bound 0.0.0.0) | | :4222 | TCP | NATS client connections | | :8222 | HTTP | NATS monitoring | | :5432 | TCP | PostgreSQL 16 + TimescaleDB/PostGIS | ## Adapters (~25 active) | Domain | Sources | |--------|---------| | Traffic | ITD 511, WZDX, TomTom flow/incidents, 511 cameras | | Wildfire | WFIGS incidents/perimeters, InciWeb, FIRMS | | Weather / Space-weather | NWS, SWPC k-index/protons/alerts | | Hydro | NWIS | | Earthquakes | USGS | | Avalanche | avalanche.org | | Disasters | GDACS, EONET | | Satellite | CelesTrak TLE, sat positions/orbits, N2YO passes, satpass predict | ## GUI / API Surface Authenticated app with login/sessions/CSRF, first-run setup wizard, operator management, adapter configuration, stream viewer, enrichment pipeline, monitoring-area management, API key management, audit log, and manual resend. **Auth-exempt tile endpoints** (used by navi, verified HTTP 200): | Endpoint | Format | |----------|--------| | | PNG tile (raster) | | | PBF tile (vector) | All other endpoints are auth-gated. ## Consumer — navi Integration navi-traffic (navi's in-VM :8421 extraction service) was **retired on 2026-05-26** and cut over to central. recon-vm's nginx () now proxies → . Tile endpoints verified returning HTTP 200. ## Dependencies | Component | Location | |-----------|----------| | NATS / JetStream | Local (central CT 104) | | PostgreSQL 16 + TimescaleDB + PostGIS | Local (central CT 104) | | Upstream APIs | ~20 external sources (see Adapters table) | ## Deploy / Drift Notes (as of 2026-06-18 audit) - **Deployed HEAD:** v0.14.4 - **Repo :** v0.14.5 — deployment is **1 release behind** - **Uncommitted local migration:** exists on disk in the deployment but was **never committed to the repo** - **Stale README:** repo README still reads *"Phase 0 — scaffold, not yet operational"* — central is fully operational - **Stale :** version field shows 0.3.0; real version is the git tag (v0.14.x) --- *Last updated: 2026-06-18 — Initial documentation; central was previously undocumented. Deployment confirmed live, all three systemd units active.*