Files
nixos-servers/docs/plans/nixos-improvements.md
Torjus Håkestad a2a55f3955
Some checks failed
Run nix flake check / flake-check (push) Failing after 4m12s
docs: add docs directory info and nixos options improvement plan
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 22:27:11 +01:00

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 by homelab.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