wrolpi/controller
Roland e51e5fb2fb controller: group services into Core vs Optional & Maintenance
The Controller listed every wrolpi-* service in one flat table, which was
confusing for new users who couldn't tell always-on infrastructure from
one-off/dev/maintenance units.

Services are now split into two groups computed once in the backend and
exposed as `service.group`:

* Core Services      - persistent services enabled at boot (api, app, caddy,
                       kiwix, ...), the normal running system.
* Optional & Maintenance - one-off/dev/maintenance tasks (bootstrap, repair,
                       upgrade, *-dev, discovered wrolpi-*), plus persistent
                       services the user has disabled at boot (e.g. Samba with
                       no shares configured).

Rule: core iff kind == "persistent" and enabled; otherwise optional. Group
membership only changes when the user toggles Boot, never on start/stop or
polling, so rows stay put. Within each group, failed/stopped services sort
first so problems stay visible.

Feature parity across all three render paths: the React ControllerPage, the
server-side Jinja template, and the client-side poll refresh. Docker
containers have no group field and fall back to a single ungrouped list.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 19:46:13 -06:00
..
api Disks: mount the primary drive directly; clean phantom fstab.yaml entries. 2026-07-05 15:05:20 -06:00
lib controller: group services into Core vs Optional & Maintenance 2026-07-22 19:46:13 -06:00
templates controller: group services into Core vs Optional & Maintenance 2026-07-22 19:46:13 -06:00
test controller: group services into Core vs Optional & Maintenance 2026-07-22 19:46:13 -06:00
__init__.py Creating Controller service which will control WROLPi services, admin, SMART, disks, and status. nginx will fallback to Controller UI when React UI is unavailable (such as during upgrades). 2025-12-15 15:48:40 -07:00
conftest.py Controller: move hotspot settings to controller.yaml with WiFi device dropdown. 2026-07-04 09:03:58 -06:00
defaults.py controller: group services into Core vs Optional & Maintenance 2026-07-22 19:46:13 -06:00
main.py controller: group services into Core vs Optional & Maintenance 2026-07-22 19:46:13 -06:00
requirements.txt Bump safe dependencies (combined Dependabot updates) 2026-07-15 20:07:21 -06:00
serve.py Migrating Controller from port 8087 to 80 so that it is more discoverable. Reformatting Controller dashboard to make header at the top. Reformatting navigation bar to handle the new links which prevented Admin from being visible in some screens. 2026-04-09 15:01:05 -06:00