Skip to content

Site configuration

/etc/aryaos/aryaos-config.txt contains the site-wide defaults for every PyTAK sensor gateway. This page is the complete key reference. Edit the file through the AryaOS Site page. Use its Raw site config editor for keys that the form does not show. Both editors preserve comments and unknown keys.

How it is applied

Each gateway's systemd unit loads this file via EnvironmentFile= before its own /etc/default/<svc>. Thus, these are defaults. A per-service value overrides the site value. See the configuration model.

The CoT routing invariant

The single most important thing this file sets is where local feeders send CoT - and the AryaOS default keeps them all flowing through one hub:

flowchart LR
  feeders[Feeders<br/>adsbcot, aiscot, dronecot, lincot, gpscot, ...] -->|COT_URL<br/>udp+wo://127.0.0.1:28087| cotbridge[(COTBridge hub)]
  cotbridge -->|lane| mesh[Mesh SA<br/>239.2.3.1:6969]
  cotbridge -.->|lane| tak[TAK Server]

Feeders > COTBridge > Mesh SA (and/or TAK Server). Keep COT_URL pointed at the COTBridge hub and configure upstream destinations as COTBridge lanes. Only change COT_URL when you are deliberately bypassing the hub.

TAK / CoT

Key Default Meaning
COT_URL udp+wo://127.0.0.1:28087 Where local *cot feeders send CoT. Default is the COTBridge hub ingress on localhost. Upstream mesh / TAK Server forwarding is configured in /etc/cotbridge.ini.
COT_HOST_ID (set on first boot) Functional source id stamped into CoT flow-tags and remarks by the PyTAK tools. Set on first boot to aryaos-<suffix>. Override for a custom name.

TLS material for TAK Server connections is written to this file by the Site-wide TAK TLS certificates card as PYTAK_TLS_CLIENT_CERT, PYTAK_TLS_CLIENT_KEY. PYTAK_TLS_CLIENT_CAFILE (paths under /etc/aryaos/tls/), plus PYTAK_TLS_DONT_VERIFY (lab only). Prefer the TAK connection card, which sets these for you.

ADS-B / radios

Key Default Meaning
ARYAOS_ADSB_DECODER readsb 1090 MHz decoder: readsb or dump1090_fa (only one can run). Must match the image build. Changing this alone does not reconfigure systemd - re-apply the device role.
ARYAOS_ADSB_JSON_DIR /run/adsb Directory where the decoder writes aircraft.json. adsbcot reads aircraft.json from here.
ARYAOS_UAT_978_DEVICE stx:978:0 RTL-SDR EEPROM serial for dump978-fa (UAT / 978 MHz). Must differ from the 1090 MHz serial. Restart dump978-fa after changing.

See Radios & SDRs for the serial conventions and decoder-switch procedure.

Network

Key Default Meaning
PYTAK_MULTICAST_LOCAL_ADDRS auto Mesh SA source addresses. auto fans out over active physical Ethernet/Wi-Fi links and pan0. An explicit comma-separated list restricts output.
PYTAK_MULTICAST_LOCAL_ADDR 10.41.0.1 Legacy single-interface setting, used only when the plural setting is absent. 0.0.0.0 lets Linux select one route. It does not mean all interfaces.
ARYAOS_IPV4LL_FALLBACK 1 Enable DHCP-compatible RFC 3927 fallback on ordinary Ethernet profiles. Manage with the AryaOS Site card or aryaos-ipv4ll.
WIFI_AP_IP 10.41.0.1 Deprecated legacy setting.
AOS_SERVICES "cotbridge gpscot aiscot lincot adsbcot dronecot-dji adsbxcot aprscot spotcot gutcheck" Network-facing CoT/discovery services restarted on network-state change and by Save & restart sensors. Keep local decoders, GPS, UI, and the Bluetooth bridge out of this list.

AOS_SERVICES and the Site page

The Sensor services card and the Save & restart sensors button use AOS_SERVICES when it is set. Restarting the wrong units during boot can interrupt radio ingest and Bluetooth pairing. This is why the list deliberately excludes decoders, gpsd, and the PAN bridge.

See DHCP-less Ethernet and MANET fallback for IPv4LL behavior, multicast fanout, and operational checks.

Time synchronization

At boot, AryaOS restores a saved last-known-good clock floor, then gives normal Chrony sources (configured/DHCP/internet NTP and GNSS/PPS) the first opportunity to synchronize. If none succeeds, GutCheck can identify a fresh, directly connected AryaOS peer advertising a synchronized stratum 1-4 clock. AryaOS then corroborates that claim with a standard NTP exchange and adds the peer to Chrony as an ephemeral source. CoT timestamps are never written directly to the system clock.

The gate is best effort. Time-sensitive CoT and certificate services wait up to 60 seconds by default. They then start in a visible degraded state. Runtime state appears in /run/aryaos/time-status.json and the GutCheck <time> detail.

Key Default Meaning
ARYAOS_TIME_PEER_MODE validated Allow qualified, directly connected GutCheck peers as fallback Chrony NTP sources. Set to off to disable only tactical peer fallback.
ARYAOS_TIME_BOOT_TIMEOUT 60 Maximum boot-time clock acquisition wait in seconds (accepted range 10-300).

MANET peer trust

A peer is checked for freshness, route locality, advertised clock quality, and a corresponding NTP response, but same-MANET NTP is not cryptographically authenticated. Treat this as tactical availability and spoofing resistance, not identity proof. Disable peer fallback on networks where every time source must be authenticated.

Bluetooth PAN

AryaOS acts as a Bluetooth Network Access Point (NAP), so a paired phone can reach its services. It serves DHCP on the PAN link. No NAT or forwarding is enabled. See Bluetooth PAN.

Key Default Meaning
BT_PAN_ENABLED 1 Enable the Bluetooth PAN.
BT_PAN_BRIDGE pan0 Bridge interface name.
BT_PAN_ADDRESS 10.44.0.1 AryaOS address on the PAN.
BT_PAN_PREFIX 24 PAN subnet prefix length.
BT_PAN_DHCP_START 10.44.0.20 First DHCP address handed to phones.
BT_PAN_DHCP_END 10.44.0.60 Last DHCP address.
BT_PAN_DHCP_LEASE 12h DHCP lease time.

Role

Key Default Meaning
ARYAOS_ROLE multi (when unset) The device's sensor role, persisted by aryaos-role set. Selects which sensor pipelines run.

Set this from the Device role card. The full role-to-units mapping is in Device roles.

Device identity

Do not modify identity keys

These are set on first boot by aryaos-firstboot.sh. The comment in the file reads "do not modify. NO STEP."

Key Default Meaning
DEVICE_SUFFIX (set on first boot) Last 4 hex of the machine-id (or MAC). Drives the hostname aryaos-xxxx and Wi-Fi SSID AryaOS-xxxx.

Changing the CoT destination

For the normal case, leave COT_URL alone and edit lanes:

Point upstream destinations at the COTBridge lane editor. Feeders keep COT_URL=udp+wo://127.0.0.1:28087. COTBridge forwards to Mesh SA and/or a TAK Server. For TAK Servers, the TAK connection card wires the lane and certs automatically.

Set COT_URL directly on the Site page (or per-gateway) to route feeders around the hub. For example tls://takserver.example.com:8089 or udp+wo://239.2.3.1:6969. This forgoes COTBridge's fan-out and is normally used only for debugging.

Editing over SSH

If you edit the file directly instead of using the web console, restart the affected units afterward:

sudo systemctl restart cotbridge adsbcot aiscot lincot dronecot

Prefer the AryaOS Site page, which restarts the right services for you.