Some checks failed
Run nix flake check / flake-check (push) Failing after 4m12s
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
NixOS Infrastructure Improvements
This document contains planned improvements to the NixOS infrastructure that are not directly part of the automated deployment pipeline.
Planned
Custom NixOS Options for Service and System Configuration
Currently, most service configurations in services/ and shared system configurations in system/ are written as plain NixOS module imports without declaring custom options. This means host-specific customization is done by directly setting upstream NixOS options or by duplicating configuration across hosts.
The homelab.dns module (modules/homelab/dns.nix) is the first example of defining custom options under a homelab.* namespace. This pattern should be extended to more of the repository's configuration.
Goals:
- Define
homelab.*options for services and shared configuration where it makes sense, following the pattern established byhomelab.dns - Allow hosts to enable/configure services declaratively (e.g.
homelab.monitoring.enable,homelab.http-proxy.virtualHosts) rather than importing opaque module files - Keep options simple and focused — wrap only the parts that vary between hosts or that benefit from a clearer interface. Not everything needs a custom option.
Candidate areas:
system/modules (e.g. auto-upgrade schedule, ACME CA URL, monitoring endpoints)services/modules where multiple hosts use the same service with different parameters- Cross-cutting concerns that are currently implicit (e.g. which Loki endpoint promtail ships to)
Completed
- DNS Automation - Automatically generate DNS entries from host configurations