This document provides a complete reference for config.ini settings.
[SETTINGS]
# ZMQ inputs (WarDragon defaults)
zmq_host = 127.0.0.1
zmq_port = 4224 # Drone telemetry stream
zmq_status_port = 4225 # WarDragon monitor (GPS, system)
# FPV signals (optional)
fpv_enabled = false
fpv_zmq_host = 127.0.0.1
fpv_zmq_port = 4226
fpv_stale = 60
fpv_radius_m = 15
fpv_rate_limit = 2.0
fpv_max_signals = 200
fpv_confirm_only = true
# TAK Server output (optional). If blank, TAK server is disabled.
tak_host =
tak_port =
tak_protocol = # "tcp" or "udp"
tak_tls_p12 =
tak_tls_p12_pass =
tak_tls_certfile =
tak_tls_keyfile =
tak_tls_cafile =
tak_tls_skip_verify = true
# Multicast CoT to ATAK (simple zero-server option)
enable_multicast = true
tak_multicast_addr = 239.2.3.1
tak_multicast_port = 6969
tak_multicast_interface = 0.0.0.0
multicast_ttl = 1
# Runtime behavior
rate_limit = 3.0 # min seconds between sends per drone
inactivity_timeout = 60.0
enable_receive = false
# Drone tracking capacity (two-tier priority system)
max_verified_drones = 70 # FAA RID-verified drones (evicted last)
max_unverified_drones = 30 # Unverified drones
# Legacy single-tier mode (uncomment to disable RID priority):
# max_drones = 60
# MQTT / Home Assistant (optional)
mqtt_enabled = false
mqtt_host = 127.0.0.1
mqtt_port = 1883
mqtt_topic = wardragon/drones
mqtt_username =
mqtt_password =
mqtt_tls = false
mqtt_ca_file =
mqtt_certfile =
mqtt_keyfile =
mqtt_tls_insecure = false
# Per-drone topics (required for HA auto-discovery)
mqtt_per_drone_enabled = true
mqtt_per_drone_base = wardragon/drone
# Home Assistant discovery
mqtt_ha_enabled = true
mqtt_ha_prefix = homeassistant
mqtt_ha_device_base = wardragon_drone
# Aircraft topics (ADS-B) - requires mqtt_enabled = true
mqtt_aircraft_enabled = false
mqtt_aircraft_topic = wardragon/aircraft
# Signal alerts (optional)
mqtt_signals_enabled = false
mqtt_signals_topic = wardragon/signals
mqtt_ha_signal_tracker = false
mqtt_ha_signal_id = signal_latest
# Message retention
mqtt_retain = true
# Lattice (optional)
lattice_enabled = false
lattice_token =
# Either a full base URL:
lattice_base_url =
# or just the endpoint host (https:// will be prefixed):
lattice_endpoint =
lattice_sandbox_token =
lattice_source_name = DragonSync
lattice_drone_rate = 1.0
lattice_wd_rate = 0.2
# ADS-B / UAT (optional)
adsb_enabled = false
adsb_json_url = http://127.0.0.1:8080/?all_with_pos
adsb_uid_prefix = adsb-
adsb_cot_stale = 15
adsb_cache_ttl = 120
adsb_rate_limit = 3.0
adsb_min_alt = 0
adsb_max_alt = 0
# HTTP API (optional)
api_enabled = true
api_host = 0.0.0.0
api_port = 8088
| Setting | Default | Description |
|---|
zmq_host | 127.0.0.1 | ZMQ server host for drone telemetry |
zmq_port | 4224 | ZMQ port for drone telemetry stream |
zmq_status_port | 4225 | ZMQ port for WarDragon system/GPS status |
| Setting | Default | Description |
|---|
fpv_enabled | false | Enable FPV signal ingestion |
fpv_zmq_host | 127.0.0.1 | ZMQ host for FPV alerts |
fpv_zmq_port | 4226 | ZMQ port for FPV alerts |
fpv_stale | 60 | Seconds before signal alert expires |
fpv_radius_m | 15 | Offset radius for alert dot from kit |
fpv_rate_limit | 2.0 | Min seconds between CoT for same signal |
fpv_max_signals | 200 | Max concurrent signal alerts |
fpv_confirm_only | true | Only ingest confirm alerts (not energy) |
| Setting | Default | Description |
|---|
tak_host | (empty) | TAK server hostname/IP. Leave blank to disable |
tak_port | (empty) | TAK server port |
tak_protocol | (empty) | tcp or udp |
tak_tls_p12 | (empty) | Path to PKCS#12 client cert |
tak_tls_p12_pass | (empty) | PKCS#12 password |
tak_tls_certfile | (empty) | Path to PEM certificate (alternative to p12) |
tak_tls_keyfile | (empty) | Path to PEM private key |
tak_tls_cafile | (empty) | Path to CA certificate for server verification |
tak_tls_skip_verify | true | Skip TLS certificate verification (dev only) |
| Setting | Default | Description |
|---|
enable_multicast | true | Enable multicast CoT output |
tak_multicast_addr | 239.2.3.1 | Multicast group address |
tak_multicast_port | 6969 | Multicast port |
tak_multicast_interface | 0.0.0.0 | Network interface to bind |
multicast_ttl | 1 | Multicast TTL (hops) |
| Setting | Default | Description |
|---|
rate_limit | 3.0 | Min seconds between CoT sends per drone |
max_verified_drones | 70 | Max FAA RID-verified drones (evicted last) |
max_unverified_drones | 30 | Max unverified drones |
max_drones | (none) | Legacy single-tier mode (disables RID priority) |
inactivity_timeout | 60.0 | Seconds before drone is marked inactive |
enable_receive | false | Enable receiving CoT (not typically needed) |
Note: The two-tier system prioritizes FAA RID-verified drones, evicting unverified drones first when capacity is reached. Use max_drones only if you want all drones treated equally.
Important: mqtt_enabled = true is the master switch. All other MQTT features require it to be enabled.
| Setting | Default | Description |
|---|
mqtt_enabled | false | Master switch for all MQTT output |
mqtt_host | 127.0.0.1 | MQTT broker hostname/IP |
mqtt_port | 1883 | MQTT broker port |
mqtt_topic | wardragon/drones | Aggregate topic for all drone updates |
mqtt_username | (empty) | MQTT username |
mqtt_password | (empty) | MQTT password |
mqtt_tls | false | Enable TLS to broker |
mqtt_ca_file | (empty) | CA certificate for broker verification |
mqtt_certfile | (empty) | Client certificate for mTLS |
mqtt_keyfile | (empty) | Client key for mTLS |
mqtt_tls_insecure | false | Skip TLS verification (dev only) |
mqtt_retain | true | Retain messages (good for HA dashboards) |
mqtt_per_drone_enabled | false | Publish per-drone topics (required for HA) |
mqtt_per_drone_base | wardragon/drone | Base topic for per-drone JSON |
mqtt_aircraft_enabled | false | Publish ADS-B aircraft to MQTT |
mqtt_aircraft_topic | wardragon/aircraft | Topic for aircraft updates |
mqtt_signals_enabled | false | Publish signal alerts to MQTT |
mqtt_signals_topic | wardragon/signals | Topic for signal alerts |
mqtt_ha_enabled | false | Enable Home Assistant discovery |
mqtt_ha_prefix | homeassistant | HA discovery topic prefix |
mqtt_ha_device_base | wardragon_drone | HA device ID prefix |
mqtt_ha_signal_tracker | false | Create per-kit HA signal tracker |
mqtt_ha_signal_id | signal_latest | Unique ID suffix for signal entity |
Hard-coded system topics (not configurable):
wardragon/system/attrs — kit status attributes
wardragon/system/availability — kit availability
wardragon/service/availability — service availability
| Setting | Default | Description |
|---|
lattice_enabled | false | Enable Lattice export |
lattice_token | (empty) | Lattice API token |
lattice_base_url | (empty) | Full Lattice base URL |
lattice_endpoint | (empty) | Lattice endpoint host (https:// prefixed) |
lattice_sandbox_token | (empty) | Sandbox API token |
lattice_source_name | DragonSync | Source name in Lattice |
lattice_drone_rate | 1.0 | Drone update rate (Hz) |
lattice_wd_rate | 0.2 | WarDragon status rate (Hz) |
| Setting | Default | Description |
|---|
adsb_enabled | false | Enable ADS-B ingestion |
adsb_json_url | http://127.0.0.1:8080/?all_with_pos | readsb API URL |
adsb_uid_prefix | adsb- | Prefix for aircraft CoT UIDs |
adsb_cot_stale | 15 | Seconds before CoT message expires |
adsb_cache_ttl | 120 | Seconds to keep aircraft in cache |
adsb_rate_limit | 3.0 | Min seconds between CoT sends per aircraft |
adsb_min_alt | 0 | Min altitude filter (feet, 0=disabled) |
adsb_max_alt | 0 | Max altitude filter (feet, 0=disabled) |
Note: To publish aircraft to MQTT, also set mqtt_enabled = true and mqtt_aircraft_enabled = true.
| Setting | Default | Description |
|---|
api_enabled | true | Enable read-only HTTP API |
api_host | 0.0.0.0 | API bind address |
api_port | 8088 | API port |
[SETTINGS]
zmq_host = 127.0.0.1
zmq_port = 4224
zmq_status_port = 4225
enable_multicast = true
tak_multicast_addr = 239.2.3.1
tak_multicast_port = 6969
[SETTINGS]
zmq_host = 127.0.0.1
zmq_port = 4224
zmq_status_port = 4225
enable_multicast = false
tak_host = takserver.example.com
tak_port = 8089
tak_protocol = tcp
[SETTINGS]
zmq_host = 127.0.0.1
zmq_port = 4224
zmq_status_port = 4225
enable_multicast = false
tak_host = takserver.example.com
tak_port = 8089
tak_protocol = tcp
tak_tls_p12 = /path/to/client.p12
tak_tls_p12_pass = yourpassword
tak_tls_skip_verify = false
[SETTINGS]
zmq_host = 127.0.0.1
zmq_port = 4224
zmq_status_port = 4225
enable_multicast = true
mqtt_enabled = true
mqtt_host = 127.0.0.1
mqtt_port = 1883
mqtt_per_drone_enabled = true
mqtt_ha_enabled = true