hyperhive/nix
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 316cef94d1 feat(nix): the swarm's authelia, in a swarm-authelia container
One SSO provider per swarm, and a hive is a client of it by default:
`url` exists everywhere so a hive knows where to send people, while the
container only exists where `swarm.enableRequiredServices` says the
swarm's shared services live.

Operator and agents are both subjects of the same provider,
differentiated by roles/claims rather than by mechanism. The users store
is therefore written by swarm-controller rather than maintained by hand
— agents are created and destroyed continuously, so the subject set is
dynamic. This module only guarantees the file exists and parses, so
authelia starts with nobody in it instead of failing to start; a
placeholder account would be a credential nobody meant to create.

Small-deployment defaults, with scope as the justification rather than
preference: file users backend, local sqlite storage (redis buys shared
session state across replicas and there is one instance), filesystem
notifier (SMTP mails humans; provisioning is programmatic).

Secrets are generated in-container on first boot, sharing the authelia
unit's user/group/StateDirectory so systemd creates the directory owned
by the account that reads them. Nothing outside the container reads
these keys, which is what makes that right rather than merely easier —
hive-matrix generates its token host-side only because hive-c0re has to
read that one.

Per-service integration (authelia's auth_request in front of the
gateway's existing auth_basic locations) is deliberately not here:
standing an SSO provider up is reversible, cutting every operator-facing
vhost over to it is not.
2026-08-05 17:56:51 +02:00
..
agent-modules docs: name the swarm display name by its new path 2026-08-05 11:15:41 +02:00
docs refactor(nix): move the matrix host options under services.hyperhive.swarm 2026-08-05 13:45:09 +02:00
host-modules feat(nix): the swarm's authelia, in a swarm-authelia container 2026-08-05 17:56:51 +02:00
packages fix(nix): swarm-controller is not a core binary, and it needed a README 2026-08-05 14:59:37 +02:00
templates refactor: nix/host-modules + nix/agent-modules layout, update doc paths 2026-07-13 22:05:49 +02:00
checks.nix fix(#2550): make pedantic clippy lints a hard error, fix stale checks.nix comment 2026-07-17 01:58:27 +02:00
devshell.nix refactor: slim flake.nix into nix/ entry files 2026-07-13 20:55:43 +02:00
rust.nix fix: select rust sources via filesets so new dirs keep the cargo cache 2026-07-13 21:16:29 +02:00
sources.nix refactor: slim flake.nix into nix/ entry files 2026-07-13 20:55:43 +02:00
treefmt.nix refactor: slim flake.nix into nix/ entry files 2026-07-13 20:55:43 +02:00