feat: Raspberry Pi 5 host (Docker host + nginx reverse proxy) #32
Reference in New Issue
Block a user
Delete Branch "feat/rpi5-host"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Adds the framework for a Raspberry Pi 5 (
aarch64-linux) headless host,lyrathorpe-rpi5, serving two roles:virtualHosts.Closes #31.
Changes
system/machine/RPi5/—configuration.nix(boot, hostname, sshd,default-deny firewall),
docker.nix,reverse-proxy.nix, a placeholderhardware-configuration.nix, and install notes (README.md).system/modules/features.nix— new base module declaringfeatures.swayDesktop.enable; the option declaration was moved out oflyrathorpe/swaywm.nixso a headless host can omitswaywm.nixwithout aneval error. Wired into
baseModules.flake.nix— registerlyrathorpe-rpi5(noswaywm.nix;raspberry-pi-5profile + key-only sshd).
README.md— host table + greeter note.Docker socket — security
The daemon listens on plain TCP
2375, no TLS, no auth (chosen posture).Access is root-equivalent; the only protection is an nftables rule accepting
2375solely from the trusted LAN subnet (10.187.1.0/24, configurable).2375is deliberately not in
allowedTCPPorts. mTLS on2376is the documentedupgrade path; not wired.
nginx
Recommended proxy/TLS/optimisation/gzip settings + a declarative
virtualHoststable with one HTTP-only example vhost.
enableACME/forceSSLare present butcommented, to flip per-vhost once a DNS name + cert exist. Opens 80/443.
Verification
nix flake check— green (deadnix, statix, nixfmt, treefmt, pre-commit;x86 host evals).
nix evaloflyrathorpe-rpi5toplevel.drvPath— resolves (aarch64 eval,same gate CI uses). Spot-checked the rendered docker socket
ListenStream, thenginx
virtualHosts, the hostname, andfeatures.swayDesktop.enable = false.Not included (by design)
hardware-configuration.nixis a placeholder to keepCI eval green; it must be regenerated on the device with
nixos-generate-configbefore the Pi will boot. See
system/machine/RPi5/README.md.