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:
Prefer the AryaOS Site page, which restarts the right services for you.