3.5 KiB
ADN Monitor (overview)
ADN Monitor is a separate project from the ADN DMR Peer Server, but the two are normally deployed together: the server sends TCP reports (config, bridges, call events) to the monitor; the monitor drives the web dashboard (React) and WebSocket live updates. Optional components include the PHP API (Slim), MySQL (self-service / device registry), and the hotspot proxy (UDP between hotspots and the peer server — integrated in adn-server.py by default; standalone adn-proxy remains for legacy layouts).
This chapter documents the adn-monitor stack at the same level of detail as the server guides. Source code lives in the adn-monitor repository, not in the adn-server repository (where this documentation is maintained).
What each part does
| Part | Role |
|---|---|
monitor/monitor.py |
Python (Twisted): connects to the peer server’s report TCP port, decodes netstring payloads (CONFIG_SND, BRIDGE_SND, BRDG_EVENT), maintains CTABLE / BTABLE, writes Last Heard / TG stats to MySQL when configured, serves WebSocket JSON to the dashboard. |
backend/ |
PHP Slim app: /api/config/dashboard, auth, optional self-service APIs, alias proxies. Reads adn-monitor.yaml via ADN_CONFIG_PATH. |
frontend/ |
React (Vite): dashboard UI; consumes backend API + WebSocket. |
proxy/ |
Python (Twisted): standalone UDP hotspot proxy (legacy); forwards Homebrew between hotspots and the peer server port range; reads Clients in MySQL for RPTO. Prefer integrated PROXY in adn-server.yaml — see Hotspot proxy. |
Configuration files
| File | Used by | Typical env |
|---|---|---|
adn-server.yaml |
adn-server.py (integrated PROXY / SELF_SERVICE) |
-c / default path next to binary |
monitor/adn-monitor.yaml |
monitor.py, PHP backend |
ADN_CONFIG_PATH |
proxy/adn-proxy.yaml |
proxy/proxy.py (legacy standalone) |
ADN_PROXY_CONFIG_PATH (optional; see Hotspot proxy) |
SELF_SERVICE (MySQL / PBKDF2) must match between adn-server.yaml (integrated proxy), adn-monitor.yaml, and legacy adn-proxy.yaml when used. ADN_CONNECTION, dashboard, WebSocket, and aliases live in adn-monitor.yaml; integrated PROXY / SELF_SERVICE live in adn-server.yaml; standalone proxy settings remain in adn-proxy.yaml.
Link to the peer server
Server (adn-server.yaml) |
Monitor (adn-monitor.yaml) |
|---|---|
REPORTS.REPORT_CLIENTS — list of IPs allowed to connect to the report listener, or the monitor host |
ADN_CONNECTION.ADN_IP / ADN_PORT — where the monitor connects (must match the server’s report bind and port). |
REPORTS.REPORT_PORT — TCP port the server listens on for incoming report connections |
Same port as ADN_PORT. |
See Monitoring and reports for report opcodes and Monitor configuration for every adn-monitor.yaml section.
See also
- Hotspot proxy —
PROXY, peer server port range, how the process loads config and runs - Architecture and deployment
- Configuration (
adn-monitor.yaml) - Self-service