Device roles¶
A device role selects which sensor pipelines run on an AryaOS unit — aircraft, vessels, drones, all of them, or none. Roles are runtime-selectable and persisted, so you can repurpose a box in the field without re-flashing. Set the role from the Device role card or with the aryaos-role CLI helper.
The CoT core is always on¶
Whatever role you choose, the CoT core never stops:
charontak— the CoT hub / routerlincot— this host's own beacongpstak— network GPS to TAK clientsgpsd— the GNSS receiver
Roles only toggle the sensor units on top of that core. This means a unit always beacons its position and routes CoT, even in the sensor-free relay role.
The five roles¶
| Role | Purpose | Sensor units enabled |
|---|---|---|
multi |
All pipelines (default) | ADS-B + AIS + drones |
air |
Aircraft only (ADS-B 1090/978) | <decoder>, dump978-fa, adsbcot, gdltak |
maritime |
Vessels only (AIS) | ais-catcher, aiscot |
cuas |
Counter-UAS (drones) | dronecot, sikw00fcot |
relay |
CoT routing only | (none) |
<decoder> is the 1090 MHz decoder chosen by ARYAOS_ADSB_DECODER: readsb (default) or dump1090-fa.
The exact unit sets, from aryaos-role:
| Group | Units |
|---|---|
ADS-B (air, multi) |
readsb or dump1090-fa, dump978-fa, adsbcot, gdltak |
AIS (maritime, multi) |
ais-catcher, aiscot |
Drones (cuas, multi) |
dronecot, sikw00fcot |
Units missing from your image are skipped
Applying a role enables the role's units and disables all other managed units. Optional units that are not installed on your image (for example a decoder you did not build) are simply skipped — not errors. The full managed set the helper touches is: readsb, dump1090-fa, dump978-fa, adsbcot, gdltak, ais-catcher, aiscot, dronecot, sikw00fcot.
The unused ADS-B decoder is always disabled
Applying a role also disables whichever 1090 MHz decoder you are not using. That is why re-applying the role is the way to make a decoder change in the site config take effect — see Radios & SDRs.
How switching works¶
Applying a role does three things, in order:
- Enable and start the role's sensor units (
systemctl enable --now). - Disable and stop every other managed sensor unit (
systemctl disable --now), so they do not come back at boot. - Persist the choice as
ARYAOS_ROLEin/etc/aryaos/aryaos-config.txt.
Because the units are disabled, the role sticks across reboots.
On the AryaOS Site page, choose a role from the Role drop-down. The card previews the exact units that will be enabled ("Sensor services for this role: …"). Press Apply role and confirm — services outside the role are stopped and disabled.
# See available roles, their units, and the current role (JSON)
sudo aryaos-role list
# Switch role
sudo aryaos-role set air
enable/disable action it takes. See CLI helpers.
Applying a role disables other sensors
Switching to air stops and disables the AIS and drone units; switching to relay stops all sensor units. This is intentional — pick the role that matches the mission. The CoT core keeps running regardless.
Persistence and precedence¶
- The current role lives in
ARYAOS_ROLEin the site config. When unset, the effective role ismulti. - Editing
ARYAOS_ROLEby hand does not change which units run — the enable/disable actions happen when you apply a role. Always apply through the card oraryaos-role setso systemd state and the config key stay in sync.
See also¶
- Multi-sensor COP — running all pipelines at once
- Relay & routing — the
relayrole in practice - Site configuration —
ARYAOS_ROLEand the decoder key - Radios & SDRs — decoder selection