hyperhive/nix/host-modules
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
..
hive-c0re refactor(nix): move the matrix host options under services.hyperhive.swarm 2026-08-05 13:45:09 +02:00
hive-forge fix(nix): keep the domain-derived defaults total 2026-08-05 15:56:49 +02:00
hive-gateway refactor(nix): move the matrix host options under services.hyperhive.swarm 2026-08-05 13:45:09 +02:00
lib feat(nix): issue each hive's CA under a swarm root CA 2026-08-05 15:57:50 +02:00
default.nix feat(nix): the swarm's authelia, in a swarm-authelia container 2026-08-05 17:56:51 +02:00
hive-ci.nix feat(nix): move the forge host options under services.hyperhive.swarm 2026-08-05 03:44:53 +02:00
hive-matrix.nix fix(nix): keep the domain-derived defaults total 2026-08-05 15:56:49 +02:00
hive-network.nix feat(nix): require swarm.domain and hiveName 2026-08-05 15:56:49 +02:00
hive-priv.nix fix(#2573): also add /etc/tmpfiles.d to hive-priv ReadWritePaths (same EROFS class) 2026-07-18 16:39:20 +02:00
hive-tls.nix feat(nix): make the swarm CA hierarchy opt-in 2026-08-05 15:57:50 +02:00
hyperhive.nix feat(nix): one switch for an all-on-one-host deployment 2026-08-05 17:50:46 +02:00
otel.nix refactor: nix/host-modules + nix/agent-modules layout, update doc paths 2026-07-13 22:05:49 +02:00
swarm-authelia.nix feat(nix): the swarm's authelia, in a swarm-authelia container 2026-08-05 17:56:51 +02:00
swarm-ca.nix feat(nix): one switch for an all-on-one-host deployment 2026-08-05 17:50:46 +02:00
swarm-controller.nix feat(nix): swarm-controller systemd unit, service user and socket 2026-08-05 14:59:37 +02:00
swarm-snapshot-store.nix refactor(#2862): keep the option at services.hyperhive.snapshotStore 2026-07-31 19:03:24 +02:00
swarm-wireguard.nix refactor(#2862): split the wireguard mesh out of swarm.nix 2026-07-31 19:03:24 +02:00
swarm.nix feat(nix): one switch for an all-on-one-host deployment 2026-08-05 17:50:46 +02:00