feat(nix): matrix follows the swarm's shared-services toggle

Matrix is a swarm-wide service — one homeserver, not one per hive — so
its `enable` defaults from `swarm.enableRequiredServices` rather than
being flipped on its own. That toggle is off by default, so matrix is
off by default exactly as before; what changes is that a host declaring
"the swarm's services live here" gets the homeserver with it.

The forge needs no equivalent: it is mandatory and deploys with
hyperhive itself, so it has no enable to derive.
This commit is contained in:
atlas 2026-08-05 17:58:31 +02:00
commit 6ea43c1151

View file

@ -99,12 +99,19 @@ in
options.services.hyperhive.swarm.matrix = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
default = config.services.hyperhive.swarm.enableRequiredServices;
defaultText = lib.literalExpression "services.hyperhive.swarm.enableRequiredServices";
description = ''
Run hive-matrix a private matrix-tuwunel homeserver (in a
nixos-container) for hyperhive agents. Off by default while
the integration phases in; flip to `true` once the operator
has set `services.hyperhive.domain` and is ready to onboard agents.
nixos-container) for hyperhive agents.
Matrix is a swarm-wide service one homeserver, not one per
hive so this defaults from
`services.hyperhive.swarm.enableRequiredServices`, which says
the swarm's shared services live on this host. That is off by
default, so this is off by default, as before. Set it directly
to run the homeserver somewhere other than the host that holds
the rest of the swarm's services.
'';
};