Railway cloud hub bootstrap

Recipe 1 — cloud hub: experimental mqtt + central + web on Railway private networking (linux/amd64). Field protocol stays off the cloud host. OT edges may publish MQTTS into this hub optionally; Recipe 2 can also run broker-free local ingest. Not a claim of public-internet production hardening.

Order

  1. Attach persistent volume at central /workspace
  2. Set unique OPENFDD_JWT_SECRET, OPENFDD_ADMIN_PASSWORD, OPENFDD_AGENT_PASSWORD
  3. Deploy central → healthy GET /api/health
  4. Deploy mqtt (hub)
  5. Deploy web with OPENFDD_CENTRAL_UPSTREAM=openfdd-central…:8080 (no http://)

Pin tip images

Always newest-by-created sha-* (never assume :nightly is tip):

./scripts/ghcr_newest_by_created.py openfdd-central openfdd-web openfdd-mqtt
# then pin OPENFDD_IMAGE_TAG=sha-<7> and recreate

Agent ops (CLI): openfdd-railway-cli skill · full guide in-repo docs/operations/RAILWAY_DEPLOYMENT.md.

→ Local stack · Docker & GHCR