Skip to content

DC Gateway overview

One DC Gateway is installed per data center. It acts as the rack LAN router: Sentinel nodes take an IP from its DHCP, then use that gateway IP as MQTT broker, NTP server, and firmware server. Nodes hold no credentials; only the gateway logs in to Celestian.

The gateway’s rack-LAN IP (RACK_IP, default 10.10.0.1) is used by nodes as:

Service Port Run by
DHCP (router and NTP = RACK_IP) 67/udp dnsmasq (host)
NTP 123/udp chrony (host)
Local MQTT broker + bridge to Celestian 11884/tcp (MQTT 5, node default), 11883/tcp (MQTT 3.1.1), 1883/tcp (old nodes) Mosquitto 2.1 or newer (Docker)
History storage + SenFlat v2 forwarding outbound connection history, Python (Docker)
OTA firmware files 8080/tcp nginx (Docker)
Firewall nftables: nodes on the rack LAN cannot leave the rack LAN

Sentinel firmware uses mqtt_host = auto and ntp_server = auto. This means the node takes the gateway IP (DHCP router option) and uses it as broker and NTP, so no IP is hard-coded in the firmware.

  • Industrial mini PC (Intel N4020 class; 4 GB or 8 GB RAM; 64 GB or larger SSD).
  • 2 Ethernet ports: one to the rack switch (RACK_IF; PoE for Sentinel G1), one to the DC network / internet. If there is only one port, add a USB-Ethernet adapter.
  • Debian 12 or 13 (server, no desktop) with Docker from the official Docker repository.
  • BIOS: “Restore on AC power loss” enabled, so the gateway powers up by itself after an outage.
  • SSD storage (SATA/NVMe), not eMMC, because the message queue is written to disk regularly.

Telemetry and events wait on disk through the history component (History storage), then are sent in order after the connection recovers. The Mosquitto queue lives in RAM and only holds small messages for the bridge (status, */reported, cmd/result, …) plus telemetry and events if history is down. The limit per client: 1,000,000 messages and 1 GiB. A full queue = new messages are dropped, old ones stay.

Estimated time history may be down before the 1 GiB limit is reached (telemetry every 10 seconds): about 5 days for 50 G1 nodes. Check with docker compose ps and docker compose logs history.

Sentinel does not know the workspace or channel. In Celestian the gateway is a device with Gateway mode connected to the channel with the publish type (and subscribe if you want to send config/cmd to nodes). Nodes appear in the gateway’s Roster tab and are registered with Serial = MAC. See Using Sentinel in Celestian.

  1. Gateway installation
  2. Bridge to Celestian
  3. OTA on the gateway
  4. Troubleshooting