hyperhive/nix/host-modules
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 81b9ddd189 deploy: move the queue's callout identity out of swarm.nats
`swarm.*` is what a hive needs to be a *client* of the swarm. For the
queue that is the ports it answers on, the client id it is registered
under, and the responder package. Whether this host mints its own
auth-callout keypairs and where the seeds sit are decisions of the
machine running it, so autoGenerateCallout, both seed files and both
public keys move to `deploy.nats.*`.

The two PUBLIC keys are the non-obvious half, so the reasoning is here
rather than in a comment nobody re-reads. A public key looks swarm-wide,
and docs/swarm/secrets.md says the user key "is published to every
client that connects" — which is true and does not make it swarm
config: peers RECEIVE it over the wire at connect time, they never
configure it. What decides the placement is that its seed is
unambiguously host-side, and splitting a keypair across two namespaces
is worse than either placement.

local-defaults.nix set `nats.autoGenerateCallout` from INSIDE
`config.services.hyperhive.swarm = { ... }`, so the bare prefix meant
`swarm.nats` and no full-path grep could see it. It moves out of that
block into a `deploy` statement rather than being rewritten in place.

swarm-controller.nix bound `natsCfg` and never used it — one mention,
no bare pass, while its sibling bindings have 5 and 10. Pre-existing
dead code, found by this slice's own alias sweep, removed with it.

Four assertion messages and five doc lines named moved options by a
short form (`nats.calloutUserSeedFile`) that is ambiguous now that both
`swarm.nats` and `deploy.nats` exist; one opened with
"services.hyperhive.swarm.nats has callout public keys", which the split
makes false. Prose that names a VALUE rather than a path — the `nk`
pipeline's `# -> calloutUserPublicKey` — is left bare on purpose.

module-eval configures a hive through all five OLD paths and asserts the
responder's delivery unit exists and interpolates the seed path.
`autoGenerateCallout` is deliberately FALSE there: that is what makes
the seed options decide `responderConfigured`, so the assertion is about
the seeds rather than about the auto-mint branch.
2026-09-07 14:24:52 +02:00
..
hive-c0re deploy: split the homeserver's host decisions out of swarm.matrix 2026-09-07 14:24:52 +02:00
hive-forge deploy: split the forge's host decisions out of swarm.forge 2026-09-07 14:24:52 +02:00
hive-gateway deploy: split the homeserver's host decisions out of swarm.matrix 2026-09-07 14:24:52 +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 treefmt: apply prettier 2026-09-02 15:25:07 +02:00
default.nix glue-matrix-bao-token: the store's first reader 2026-08-30 19:01:10 +02:00
deploy.nix deploy: move the queue's callout identity out of swarm.nats 2026-09-07 14:24:52 +02:00
glue-bao-tls.nix swarm-bao: ship the store's logs and metrics 2026-08-31 21:25:00 +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 deploy: split the homeserver's host decisions out of swarm.matrix 2026-09-07 14:24:52 +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 deploy: move the queue's callout identity out of swarm.nats 2026-09-07 14:24:52 +02:00
otel.nix deploy: move the hive CA's knobs to deploy.hive-controller.tls 2026-08-30 20:52:00 +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 deploy: split the forge's host decisions out of swarm.forge 2026-09-07 14:24:52 +02:00
swarm-bao.nix swarm-bao: the reader's identity is not a store-runner option 2026-09-03 00:29:52 +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 deploy: move the queue's callout identity out of swarm.nats 2026-09-07 14:24:52 +02:00
swarm-grafana.nix containers: put journal files on the host, where the collector looks 2026-09-02 23:00:30 +02:00
swarm-nats.nix deploy: move the queue's callout identity out of swarm.nats 2026-09-07 14:24:52 +02:00
swarm-otel.nix containers: put journal files on the host, where the collector looks 2026-09-02 23:00:30 +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: remove swarm.ui.domain, serve the UI on the swarm domain 2026-08-31 19:00:52 +02:00
swarm-victorialogs.nix containers: put journal files on the host, where the collector looks 2026-09-02 23:00:30 +02:00
swarm-victoriametrics.nix containers: put journal files on the host, where the collector looks 2026-09-02 23:00:30 +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 deploy: move the wireguard mesh out of the namespace hives read 2026-09-07 14:24:52 +02:00