My personal NixOS configurations, managed as a flake and deployed with colmena. You are welcome to use anything here.
- flake.nix
- Flake inputs, the colmena hive, the dev shell, and the installer ISOs.
- cli.nix
- The
clicommand available in the dev shell (deployments, tests, etc). - config/
- The system configurations.
- config/machines/<hostname>
- Machine-specific configuration, one directory per host.
- config/profiles
- Collections of modules packaged into common configuration sets. Machine configs import profiles, which import modules.
- config/modules
- The bulk of the configuration: modules for the OS, services, and applications.
- config/iot
- ESPHome device configurations.
- modules/
- Custom NixOS and home-manager modules for things that don’t exist upstream (e.g. configuring the whole system’s color theme in one place).
- lib/
- Utility functions used throughout the codebase.
- pkgs/
- Custom packages and overlays.
- isos/
- Installer ISO configurations.
Enter the dev shell (this happens automatically with direnv):
nix developThen use cli:
cli deploy # deploy all machines
cli deploy --on lyra # deploy one machine
cli test lint # statix
cli test dead-code # deadnix
cli test format # alejandra
cli fix format # auto-format the repo
nix build .#installer # build a NixOS installer ISO