No description
Find a file
2025-07-15 22:54:06 +08:00
docs refactor: move readme to docs dir, update nix file 2025-07-07 17:42:30 +08:00
nix refactor(flake-parts): consolidate modules into one file 2025-07-15 22:54:06 +08:00
secrets feat(nix): add openrouter key and enable for server 2025-07-09 04:58:29 +08:00
.gitignore feat(git): add .gitignore and pre-commit config to gitignore 2025-07-07 17:42:30 +08:00
.sops.yaml feat(nixos): add sops module for secrets 2025-07-07 17:42:31 +08:00
flake.lock feat(flake): add manifest input and module import 2025-07-15 22:51:00 +08:00
flake.nix feat(flake): add manifest input and module import 2025-07-15 22:51:00 +08:00

Pantheon

This flake serves as a monorepo for my systems (using IaC), dotfiles, and scripts. It's hosted at https://git.rrv.sh/rrvsh/pantheon, and mirrored to https://github.com/rrvsh/pantheon.

Structure

The system configurations are defined in flake.manifest. flake.manifest.owner provides the attributes for the administrator user, including username and pubkey. flake.manifest.hosts provides the specifications for the system configurations that should be exposed by the flake as nixosConfigurations. flake.modules.nixos.* provide NixOS options and configurations. The attribute flake.modules.nixos.default provides options that will be applied to every system of that class. You can use it as seen here:

flake.modules.nixos.default.imports = [ inputs.home-manager.nixosModules.default ];

The other attributes under flake.modules.nixos should be opt-in, i.e. provide options that will be set in the profiles. flake.profiles.nixos provides profiles which use the options defined in flake.modules.nixos to define different roles for each system, such as graphical, laptop, headless, etc. Options should not be defined here. flake.contracts.nixos.* will provide contracts, such as reverse proxies or databases, which will configure options on the provider and receiver host.

Acknowledgements

Thanks to the following for inspiring this configuration. I highly recommend you look through their writings and configurations.

  • ornicar which is where I first heard of NixOS
  • No Boilerplate for making me finally try the OS
  • ryan4yin for being an amazing introduction to NixOS, home-manager, and flakes
  • NotAShelf for their blog and for the wonderful NVF
  • mightyiam for their infrastructure repo using flake-parts
  • drupol for this blog post which convinced me to rebase my infra to use flake-parts