1.9 KiB
1.9 KiB
ECP-0084: Sovereign ecp-forge Host Deploy from every.channel
Status: Implemented
Context
git.every.channel (Hetzner 300TB host) has been operated from external infra repos. That creates coupling and weakens operational independence for every.channel infrastructure changes, especially netboot/PXE and archive workflows.
The constitutional direction is explicit repository ownership over its infrastructure path. every.channel should be able to deploy its own forge host from this repository, with age/agenix material stored here.
Decision
- Add a sovereign
nixosConfigurations.ecp-forgetarget to this repository. - Keep the forge role (
services.forgejo,services.caddy) and archive role (services.every-channel.ec-node) in that host target. - Enable persistent netboot from this repository using
services.every-channel.netboot, with local sovereign tarball staging as the default source path. - Keep UniFi-only mode as default (
proxyDhcp.enable = false) to avoid cross-domain DHCP coupling. - Store host-consumed runtime secrets in this repository (
secrets/*.age) and decrypt on-host viaagenix. - Deploy directly from this repository to
git.every.channel.
Alternatives considered
- Continue deploying
git.every.channelfrom shared infra repos. Rejected due ownership/coupling drift. - Keep runtime-only netboot scripts on host. Rejected because boot resilience should survive reboot and config rebuilds.
- Move to ProxyDHCP-first by default. Rejected for now to keep DHCP authority in UniFi.
Rollout / teardown plan
- Rollout:
- build/evaluate
.#nixosConfigurations.ecp-forge, - deploy from every.channel to
git.every.channel, - verify
every-channel-netboot-stageandevery-channel-netboot.
- build/evaluate
- Teardown:
- disable
services.every-channel.netboot.enableinnix/nixos/ecp-forge.nix, - redeploy,
- fall back to manual script flow (
docs/NUC_UNIFI_NETBOOT.md) if required.
- disable