hyperhive/nix/host-modules
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 16182c670e swarm-bao: write the first grant from the host, not the container
`swarm-bao-controller-policy` creates the `swarm-controller` policy and
cert-auth role — the credential every hive logs in with. It has never
succeeded on any deployment, and the reason is where it ran.

Inside the container it had neither of the two things the store demands.
Its `BAO_ADDR` was the public DNS name, which from that netns resolves to
the hive bridge: `dial tcp 10.42.0.1:8200: connect: connection refused`.
And every API listener carries `tls_require_and_verify_client_cert`, while
`tlsDir` holds the server's leaf and the CA that signs clients — no client
identity at all. Fixing only the address moves the failure one hop.

The comment above the unit asserted the opposite — that in there the store
is "reachable without a client certificate at all, which is the point". The
listener config decides that, and says otherwise. That belief is what put
the unit in the container, so it goes with it.

On the host all four coordinates already exist: `baoCli` carries the
address, the CA, the certificate and the key, so the unit needs no
`environment` block at all. `bootstrapTokenFile` was always a host path —
the container only saw it through a bind mount. Nothing new crosses the
boundary; the mount gets no wider.

The retry bound is resized with it. 10 attempts at 30s is five minutes,
and under `seal = "shamir"` an operator unseals by hand, so it would give
up before a human arrived — permanently, because `start-limit-hit` does
not self-heal. That is the same silent no-bootstrap this issue is about.
2880 × 30s covers a day, inside a 25h window.

module-eval follows the unit to the host and gains an arm asserting it is
NOT rendered inside the container: the move is the fix, so the side it
landed on is worth pinning.
2026-09-10 22:19:48 +02:00
..
hive-c0re hive-c0re: grant hive-admin group a polkit rule for choom 2026-09-07 23:27:15 +02:00
hive-forge forge: move the forgejo package to deploy — slice 10 complete 2026-09-07 20:46:38 +02:00
hive-gateway docs: matrix gateway vhost defaults to chat.<swarm-domain>, not matrix.<domain> 2026-09-07 16:53:22 +02:00
lib swarm: extract the name guards, so the module just says what is forbidden 2026-08-31 18:50:15 +02:00
swarm-grafana/dashboards grafana: show which sources are shipping, not just that the store is up 2026-09-08 00:43:23 +02:00
default.nix bao: mint the controller's leaf, and point the controller at it 2026-09-07 22:24:42 +02:00
deploy.nix forge: move the forgejo package to deploy — slice 10 complete 2026-09-07 20:46:38 +02:00
glue-bao-tls.nix swarm-bao-tls: drop the unreachable CN fallback 2026-09-10 00:25:07 +02:00
glue-controller-bao-identity.nix swarm-controller: hand the daemon the authority hives are issued from 2026-09-10 00:25:07 +02:00
glue-matrix-bao-token.nix deploy: split the homeserver's host decisions out of swarm.matrix 2026-09-07 14:24:52 +02:00
hive-ci.nix deploy: split the forge's host decisions out of swarm.forge 2026-09-07 14:24:52 +02:00
hive-matrix.nix swarm: move the matrix packages to deploy, where their enable already lives 2026-09-07 20:46:37 +02:00
hive-network.nix docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00
hive-priv.nix docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00
hive-tls.nix docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00
hyperhive.nix docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00
local-defaults.nix bao: write the swarm controller's policy from inside the store 2026-09-07 18:43:09 +02:00
otel.nix deploy: move authelia's three host paths out of swarm.authelia 2026-09-07 15:44:07 +02:00
stylix-theme.nix swarm-ui: apply the operator's stylix theme, same as the dashboard already does 2026-08-24 14:28:25 +02:00
swarm-authelia.nix swarm: move both authelia packages to deploy 2026-09-07 20:46:38 +02:00
swarm-bao.nix swarm-bao: write the first grant from the host, not the container 2026-09-10 22:19:48 +02:00
swarm-ca.nix swarm-ca: state the store-is-world-readable rule once, not three times 2026-09-02 09:03:35 +02:00
swarm-container-resolver.nix fix(#3363): swarm containers write their own resolver file 2026-08-17 17:30:15 +02:00
swarm-controller.nix swarm-controller: hand the daemon the authority hives are issued from 2026-09-10 00:25:07 +02:00
swarm-grafana.nix grafana: show which sources are shipping, not just that the store is up 2026-09-08 00:43:23 +02:00
swarm-nats.nix swarm: move the queue's responder package to deploy 2026-09-07 20:46:38 +02:00
swarm-otel.nix nix: split statusPublish and the otel secret into deploy.* 2026-09-07 16:54:23 +02:00
swarm-peers-removed.nix docs+nix: fix stale certFingerprint/HYPERHIVE_PEERS references (hyperhive#3294) 2026-08-15 19:56:11 +02:00
swarm-required-services.nix deploy: rename enableAllLocalDefaults to deploy.singleHostSwarm 2026-08-30 20:12:16 +02:00
swarm-snapshot-store.nix deploy: move the wireguard mesh out of the namespace hives read 2026-09-07 14:24:52 +02:00
swarm-ui.nix swarm: move the controller's two packages to deploy 2026-09-07 20:46:38 +02:00
swarm-victorialogs.nix swarm: move both metric stores' package to deploy, and cover their shims 2026-09-07 20:46:38 +02:00
swarm-victoriametrics.nix swarm: move both metric stores' package to deploy, and cover their shims 2026-09-07 20:46:38 +02:00
swarm-wireguard.nix deploy: move the wireguard mesh out of the namespace hives read 2026-09-07 14:24:52 +02:00
swarm.nix nix: split statusPublish and the otel secret into deploy.* 2026-09-07 16:54:23 +02:00