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.
Services on the gateway
Section titled “Services on the gateway”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.
Recommended hardware
Section titled “Recommended hardware”- 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.
When the WAN is down
Section titled “When the WAN is down”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.
Relationship with Celestian
Section titled “Relationship with Celestian”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.