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/adn-server.example.yaml

210 lines
6.1 KiB

# ADN DMR Peer Server - example configuration (YAML at project root)
# Copy to adn-server.yaml and set real secrets there (never commit adn-server.yaml).
GLOBAL:
PING_TIME: 10
MAX_MISSED: 3
USE_ACL: true
REG_ACL: PERMIT:ALL
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL
GEN_STAT_BRIDGES: true
SERVER_ID: 73010
VALIDATE_SERVER_IDS: true
URL_SECURITY: "<set-in-adn-server.yaml>"
PORT_SECURITY: "<set-in-adn-server.yaml>"
PASS_SECURITY: "<set-in-adn-server.yaml>"
USERS_PASS: user_passwords.json
HASH_ENCRYPT: encryption_key.secret
# Talker Alias (embedded LC + optional HBP DMRA): see docs/en/server/user-guide/talker-alias.md
TALKER_ALIAS: false
TALKER_ALIAS_MODE: both
TALKER_ALIAS_FORMAT: "{callsign} {fname}"
# utf8 (Motorola), iso8 (Hytera), 7bit; both vendors by default
TALKER_ALIAS_TEXT_FORMAT: "utf8,iso8"
# Standalone DMRA UDP (default false — legacy-like; radios use embedded LC in DMRD)
TALKER_ALIAS_SEND_DMRA: false
# UDP SO_RCVBUF for voice listeners (bytes); default 4 MB avoids kernel RcvbufErrors under load
# UDP_RCVBUF: 4194304
REPORTS:
REPORT: true
REPORT_INTERVAL: 60
REPORT_PORT: 4321
REPORT_CLIENTS: "127.0.0.1"
# Optional MQTT (disabled unless explicitly enabled).
# MQTT:
# ENABLED: true
# URL: mqtt://127.0.0.1:1883
# # Auth: USERNAME/PASSWORD here, or mqtt://user:pass@host:1883 in URL (YAML overrides URL).
# USERNAME: "<set-in-adn-server.yaml>"
# PASSWORD: "<set-in-adn-server.yaml>"
# # TLS (mqtts://): optional CA bundle for broker verification
# CAFILE: ""
# TOPIC_PREFIX: adn/73010
# QOS: 0
# Wire: state (retained), voice_event (live)
LOGGER:
# ENABLED: false # omit or true = normal; false = no console/file logs (NullHandler)
LOG_FILE: /var/log/adn-server/adn-server.log
LOG_HANDLERS: file-timed
LOG_LEVEL: INFO
LOG_NAME: adn-server
ALIASES:
TRY_DOWNLOAD: true
PATH: ./
PEER_FILE: peer_ids.json
SUBSCRIBER_FILE: subscriber_ids.json
TGID_FILE: talkgroup_ids.json
PEER_URL: https://servers.adn.systems/peer_ids.json
SUBSCRIBER_URL: https://servers.adn.systems/subscriber_ids.json
TGID_URL: https://servers.adn.systems/talkgroup_ids.json
LOCAL_SUBSCRIBER_FILE: local_subcriber_ids.json
STALE_DAYS: 1
# How often (seconds) the server checks whether alias files need (re)downloading.
# Independent of STALE_DAYS: a file already fresh is skipped (no network call), but a
# failed/missing download is retried on this short cadence instead of waiting a full
# STALE_DAYS cycle. Optional, defaults to 900 (15 minutes).
POLL_INTERVAL_SEC: 900
SUB_MAP_FILE: ""
SERVER_ID_URL: https://servers.adn.systems/server_ids.tsv
SERVER_ID_FILE: server_ids.tsv
CHECKSUM_URL: https://servers.adn.systems/file_checksums.json
CHECKSUM_FILE: file_checksums.json
KEYS_FILE: keys.json
# Integrated hotspot proxy (always enabled). Hotspots use PROXY.LISTEN_PORT only.
PROXY:
LISTEN_PORT: 62031
LISTEN_IP: ""
TARGET_SYSTEM: SYSTEM
TIMEOUT: 30
DEBUG: false
CLIENT_INFO: true
BLACK_LIST: []
IP_BLACK_LIST: {}
# OpenBridge fan-in (standard with OPENBRIDGE). Hotspots: PROXY 62031; OBP mesh: OBP_PROXY 62032.
# OBP_PROXY block is optional: when absent, defaults apply (ENABLED, LISTEN_PORT 62032, BIND_LEGACY_PORTS).
# BIND_LEGACY_PORTS: true keeps each SYSTEMS.*.PORT open during migration; false = LISTEN_PORT only.
OBP_PROXY:
ENABLED: true
LISTEN_PORT: 62032
LISTEN_IP: ""
BIND_LEGACY_PORTS: true
DEBUG: false
# MariaDB (required): dynamic TG persistence + optional self-service (Clients table).
DATABASE:
DB_SERVER: localhost
DB_USERNAME: hbmon
DB_PASSWORD: "<set-in-adn-server.yaml>"
DB_NAME: hbmon
DB_PORT: 3306
# Self-service: uses DATABASE for MariaDB; PBKDF2 must match adn-monitor.yaml.
SELF_SERVICE:
USE_SELFSERVICE: true
PBKDF2_SALT: "ADN"
PBKDF2_ITERATIONS: 2000
# SYSTEM is inject-only (no PORT / GENERATOR on proxy target — use MAX_PEERS).
SYSTEMS:
SYSTEM:
MODE: MASTER
ENABLED: true
REPEAT: true
MAX_PEERS: 102
EXPORT_AMBE: false
PASSPHRASE: "<set-in-adn-server.yaml>"
GROUP_HANGTIME: 15
USE_ACL: true
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL
DEFAULT_UA_TIMER: 60
SINGLE_MODE: false
VOICE_IDENT: false
TS1_STATIC: ""
TS2_STATIC: ""
DEFAULT_REFLECTOR: 0
ANNOUNCEMENT_LANGUAGE: es_ES
ALLOW_UNREG_ID: false
PROXY_CONTROL: false
OVERRIDE_IDENT_TG: ""
D-APRS:
MODE: MASTER
ENABLED: true
REPEAT: false
MAX_PEERS: 2
EXPORT_AMBE: false
IP: ""
PORT: 52555
PASSPHRASE: "<set-in-adn-server.yaml>"
GROUP_HANGTIME: 0
USE_ACL: true
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL
DEFAULT_UA_TIMER: 10
SINGLE_MODE: false
VOICE_IDENT: false
TS1_STATIC: ""
TS2_STATIC: ""
DEFAULT_REFLECTOR: 0
ANNOUNCEMENT_LANGUAGE: es_ES
GENERATOR: 2
ALLOW_UNREG_ID: true
PROXY_CONTROL: false
OVERRIDE_IDENT_TG: ""
ECHO:
MODE: MASTER
ENABLED: true
REPEAT: true
MAX_PEERS: 1
EXPORT_AMBE: false
IP: 127.0.0.1
PORT: 54917
PASSPHRASE: "<set-in-adn-server.yaml>"
GROUP_HANGTIME: 5
USE_ACL: true
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: DENY:ALL
TGID_TS2_ACL: PERMIT:9990
DEFAULT_UA_TIMER: 1
SINGLE_MODE: true
VOICE_IDENT: false
TS1_STATIC: ""
TS2_STATIC: "9990"
DEFAULT_REFLECTOR: 0
ANNOUNCEMENT_LANGUAGE: en_GB
GENERATOR: 0
ALLOW_UNREG_ID: true
PROXY_CONTROL: false
OVERRIDE_IDENT_TG: ""
# OpenBridge: use DMRE embedded version 5 ("OpenBridge v5") + ENHANCED_OBP on all ADN Systems peers.
OBP-TEST:
MODE: OPENBRIDGE
ENABLED: false
IP: ""
PORT: 62044
NETWORK_ID: 1
PASSPHRASE: "<set-in-adn-server.yaml>"
TARGET_IP: ""
TARGET_PORT: 62044
USE_ACL: true
SUB_ACL: DENY:1
TGID_ACL: DENY:0-82,92-199,800-899,9990-9999,730999
RELAX_CHECKS: true
ENHANCED_OBP: true # BCSQ/BCKA + loop control — recommended true for ADN mesh
PROTO_VER: 5 # DMRE v5 (89-byte BLAKE2b); match remote peer

Powered by TurnKey Linux.