You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ADN-DMR-Peer-Server/docs/en/monitor/configuration.md

5.9 KiB

Configuration (adn-monitor.yaml)

This document describes adn-monitor.yaml, used by monitor/monitor.py (FastAPI: REST, WebSocket, report ingest). Default path is usually monitor/adn-monitor.yaml (override with ADN_CONFIG_PATH).

Hotspot proxy is configured in adn-server.yaml (PROXY + SELF_SERVICE) — see Hotspot proxy (integrated). SELF_SERVICE (MySQL / PBKDF2) must stay identical between adn-server.yaml and adn-monitor.yaml.

The example shipped in the adn-monitor repo (monitor/adn-monitor.yaml.example) is the template for the monitor; keys below match that file and monitor/src/adn_monitor/infrastructure/config_loader.py (internal names may differ).


GLOBAL

Key Meaning
BRIDGES_INC Show bridge status in the dashboard when true.
HOMEBREW_INC Include Homebrew (HBP) peer/master status.
LASTHEARD_INC Enable Last Heard features / tables.
LASTHEARD_ROWS Row count for Last Heard widgets.
EMPTY_MASTERS Whether to show masters with no peers.
TGCOUNT_INC Enable TG count page / stats.
TGCOUNT_ROWS Rows for TG count display.
TIMEZONE IANA timezone name (e.g. America/Santiago) for display; empty uses server local time.

ADN_CONNECTION

Must match the ADN DMR Peer Server reporting configuration.

Key Meaning
ADN_IP Host/IP where the peer server’s report TCP listener is bound (from the monitor’s network view).
ADN_PORT TCP port — must equal REPORTS.REPORT_PORT on the server and be reachable.
HELLO_TIMEOUT_MS After TCP connect, how long to wait for opcode 0xFF HELLO (JSON) from ADN DMR Server. If nothing arrives in time, the monitor treats the peer as legacy (pickled CONFIG/BRIDGE only). Default 1500 ms. See Monitoring and reports.

SELF_SERVICE

MySQL credentials and PBKDF2 parameters for login, self-service, and Clients table access. PBKDF2_SALT and PBKDF2_ITERATIONS must match hotspot_proxy_self_service.py (or your password-registration tool) so stored password hashes verify in the monitor API and adn-server integrated proxy.

Key Meaning
DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME, DB_PORT MySQL connection for Clients (and related) tables.

If MySQL is unavailable, auth and self-service API routes are not registered.


OPB_FILTER

Comma-separated network IDs (as strings). Traffic from those OpenBridge sources can be hidden from certain dashboard persistence paths (see monitor controller OPB_FILTER handling).


ALIASES

Similar idea to the peer server: download peer / subscriber / TGID JSON and optional checksums. Keys include PATH, *_FILE, *_URL, STALE_HOURS, REVIEW_INTERVAL_MINUTES, CHECKSUM_*, TG_LIST_URL, BRIDGE_LIST_URL (API proxy for frontend pages).


LOGGER

Key Meaning
LOG_PATH Directory for log files.
LOG_FILE Monitor log filename (e.g. adn-monitor.log).
LOG_LEVEL e.g. INFO, DEBUG.

MONITOR_APP

Key Meaning
LISTEN_HOST Bind address ("" = all IPv4).
LISTEN_PORT HTTP port (e.g. 8080): /api/* and /ws.
INGEST tcp (client to ADN_CONNECTION) or mqtt (broker topics).
MQTT Required when INGEST: mqtt (URL, TOPIC_PREFIX, QOS).
FREQUENCY Background periodic resync (seconds); live updates are event-driven.
CLIENT_TIMEOUT Drop idle WS clients after N seconds (0 = disable).
CORS_ORIGINS Allowed origins for dev (optional).

In production, Nginx proxies /api and /ws to LISTEN_PORT. No separate WebSocket port is needed.

Obsolete WEBSOCKET_SERVER YAML (Twisted on a separate port) is ignored; use MONITOR_APP.


DASHBOARD

Key Meaning
DASHTITLE Header title.
BACKGROUND Use bk.jpg background if true.
LANGUAGE Default UI language (en, es, …).
SELF_SERVICE If true, the UI can show the Self-service nav entry (monitor API + MySQL required).
SHOW_CONSOLE Show console page (call start/end messages).
MIN_DURATION Minimum call duration (seconds) for dashboard Last Heard table (Last Heard page may still show shorter).
nav_links, footer, news Optional structured links / marquee items.

Database schema and migrations

adn-monitor ships SQL migrations in monitor/src/adn_monitor/infrastructure/persistence/schema.py. Apply with db_bootstrap --update (or equivalent) when upgrading.

Migration Table / change
004_peer_dynamic_tgs peer_dynamic_tgs — per-peer dynamic TG rows written by adn-server 2.0.0-rc.3+ (shared schema).
005_peer_dynamic_tgs_expires_null Data fix: expires_at = 0 → NULL for single_mode = 1 (infinite UA timer rows).

adn-server also ensures peer_dynamic_tgs exists on startup (idempotent). Either path is sufficient; both can run against the same hbmon database.


Environment

  • ADN_CONFIG_PATH: Absolute path to adn-monitor.yaml for monitor.py.
  • Project root .env: VITE_API_BASE, VITE_DEFAULT_LANGUAGE (frontend build); auto-loaded by monitor.py and db_bootstrap.py.

See also

Powered by TurnKey Linux.