No description
Find a file
Mohammad Rafiq c85db031dc
feat(nix): add dynamic DNS module using godns
Adds support for updating Cloudflare DNS records using godns.
2025-07-09 02:09:19 +08:00
docs refactor: move readme to docs dir, update nix file 2025-07-07 17:42:30 +08:00
nix feat(nix): add dynamic DNS module using godns 2025-07-09 02:09:19 +08:00
secrets feat(nix): add dynamic DNS module using godns 2025-07-09 02:09:19 +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 stylix and base16 theming flakes 2025-07-09 00:57:01 +08:00
flake.nix feat(flake): add stylix and base16 theming flakes 2025-07-09 00:57:01 +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