MOS
MOS is a self-hosted homelab/server OS, similar in spirit to Unraid. Athena monitors and controls a MOS server over its own local REST API, authenticated with an admin API token you create in the MOS web UI under User Settings → Admin API Tokens.
Adding a server
MOS doesn't advertise itself on the network, so a server is always added by hand from Devices & Services > MOS - address, port, and the API token. Live updates are a background poll of MOS's own REST API every 5 seconds.
What you get
The server-detail page groups monitoring into MOS's own resource categories rather than a generic sensor/switch list:
- System - CPU load/temperature, memory/swap usage, per-consumer RAM share, a more detailed memory breakdown (actually-used RAM vs. reclaimable page cache, swap totals), version/kernel/uptime.
- Disks - power status, model, size, plus a sleep/wake toggle per disk and a "SMART Info" button that opens a popup with SMART status, temperature, power-on hours, power cycle count, and error count.
- Storage pools - health, usage, scrub/balance/parity activity.
- Docker and Docker Compose - separate cards, since MOS controls plain container groups and Compose stacks through genuinely different endpoints. Per-container version and update-available status, plus an "Update" button on each group/stack that triggers the upgrade directly from Athena - turns green when MOS reports an update is available (though it's always clickable, even when it isn't - MOS's own update-check can lag behind reality) and yellow, reading "Updating", while the upgrade is running. Clicking it opens a live output log - the same "watch it happen" view as ESPHome's own compile/flash log - that streams what MOS is actually doing (stopping the stack, pulling any newer images, starting it back up) as it happens, then shows a clear success/failure result.
- Virtual machines / LXC containers - per-item CPU%/memory.
- Services - Docker/LXC/VM/SSH/Samba/NFS/Tailscale/Netbird status.
- Hardware sensors - fan/temperature/voltage readings.
- UPS - status, load, battery charge/runtime, input voltage - only appears once a UPS actually answers.
Control covers Docker (by container group or Compose stack - MOS has no per-container stop of its own, only per-group/per-stack), virtual machines, and LXC containers, each a controllable entity you can start/stop/restart from a Dashboard card or automation action (automations only ever need on/off). Restart and Update are available both from the server-detail page and from a Dashboard card - add a Docker container group/Compose stack's own switch to a card and its Update/Restart buttons come along with it, right next to the on/off toggle. Each disk's own power state is also controllable the same way, for sleep/wake.