hyperhive/nix/host-modules
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 5aef2d1afc swarm: remove swarm.ui.domain, serve the UI on the swarm domain
The UI and the swarm-controller it fronts are one service to a reader and to a
certificate, so a separate option only ever created two spellings of one
address — and the controller's own public URL was built from one of them while
an allow-list entry named the other.

Removed rather than aliased. A config still setting it was pinning a name the
controller never used; an alias would preserve exactly that mismatch, so
`mkRemovedOptionModule` says so and fails the build.

⚠️ The option was TOTAL and `swarm.domain` is NULLABLE. That is not incidental:
`ui.domain` fell back to `swarm.invalid` so hive-network.nix's required-domain
assertion is what an operator sees, rather than a coercion error from a
consumer. Each site keeps that property its own way — swarm-ui binds a local
total (the idiom swarm-otel.nix already uses as `domainBase`), and the three
sites already gated on `deploy.swarm-ui.enable` gain `&& domain != null`, which
is stricter than a placeholder and puts no invented name into rendered config.

One behaviour change worth naming: `swarm.nix`'s certificate SAN list used to
receive the placeholder `swarm.invalid` on a null domain and now receives
nothing. `lib.optional` would otherwise have put a literal `null` in it.

Verified with `checks.module-eval` rather than `nix-instantiate --parse`: parse
proves syntax, and every failure this change could plausibly cause — a dead
binding, a renamed reference — is an evaluation error.
2026-08-31 19:00:52 +02:00
..
hive-c0re otel: ship the journals the dashboard can already show 2026-08-31 12:51:51 +02:00
hive-forge swarm: remove swarm.ui.domain, serve the UI on the swarm domain 2026-08-31 19:00:52 +02:00
hive-gateway deploy: move the hive CA's knobs to deploy.hive-controller.tls 2026-08-30 20:52:00 +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: rank the by-label panel as bars, and stop calling it open issues 2026-08-28 13:23:25 +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 hive CA's knobs to deploy.hive-controller.tls 2026-08-30 20:52:00 +02:00
glue-bao-tls.nix glue-bao-tls: mint the store an identity it can hold before it is up 2026-08-30 19:01:10 +02:00
glue-matrix-bao-token.nix glue-matrix-bao-token: state the bound the comment claims 2026-08-30 19:10:48 +02:00
hive-ci.nix otel: ship the journals the dashboard can already show 2026-08-31 12:51:51 +02:00
hive-matrix.nix docs: M4TR1X page is reached via swarm-ui's LinksMenu, not opened directly 2026-08-31 12:55:40 +02:00
hive-network.nix require network isolation, deleting the residual non-isolated branch 2026-08-30 03:32:08 +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 deploy: move the hive CA's knobs to deploy.hive-controller.tls 2026-08-30 20:52:00 +02:00
hyperhive.nix deploy: rename enableAllLocalDefaults to deploy.singleHostSwarm 2026-08-30 20:12:16 +02:00
local-defaults.nix deploy: rename enableAllLocalDefaults to deploy.singleHostSwarm 2026-08-30 20:12:16 +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 swarm: remove swarm.ui.domain, serve the UI on the swarm domain 2026-08-31 19:00:52 +02:00
swarm-bao.nix swarm-bao: keep the raft state in the container, bind only the TLS material 2026-08-31 00:33:37 +02:00
swarm-ca.nix deploy: move the hive CA's knobs to deploy.hive-controller.tls 2026-08-30 20:52:00 +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: remove swarm.ui.domain, serve the UI on the swarm domain 2026-08-31 19:00:52 +02:00
swarm-grafana.nix deploy: name the swarm collector swarm-otel, not otel 2026-08-30 04:23:22 +02:00
swarm-nats.nix deploy: move the hive CA's knobs to deploy.hive-controller.tls 2026-08-30 20:52:00 +02:00
swarm-otel.nix swarm: extract the name guards, so the module just says what is forbidden 2026-08-31 18:50:15 +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 refactor(#2862): keep the option at services.hyperhive.snapshotStore 2026-07-31 19:03:24 +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 deploy: retention is the store host's decision, not the swarm's 2026-08-30 16:23:48 +02:00
swarm-victoriametrics.nix deploy: retention is the store host's decision, not the swarm's 2026-08-30 16:23:48 +02:00
swarm-wireguard.nix docs+nix: fix stale certFingerprint/HYPERHIVE_PEERS references (hyperhive#3294) 2026-08-15 19:56:11 +02:00
swarm.nix swarm: remove swarm.ui.domain, serve the UI on the swarm domain 2026-08-31 19:00:52 +02:00