nixos-config

My nixos configurations

BSD-3-CLAUSE License

Stars
3

NixOS Configuration Flake

My NixOS configuration flake.

This is my personal config, please be inspired and copy from it as needed!

Structure

  • home: Home manager configuration settings
  • hosts: Per host machine flake settings
  • modules: Custom module configuration imported by host, home, other modules

Secrets

Secrets are encrypted with sops-nix for deploying to multiple hosts.

Please see Vimjoyer's Excellent Video in addition to the sops-nix documentation.

Running

Deploying locally on a machine

Nix Helper makes running flake updates quick. nh os switch. Setting the flake in the config makes executing it direct. No need to specify the flake path. Read the example config for details.

Deploying to multiple machines

colmena is used to deploy to multiple machines either individually by host or by group of tags.

  • colmena apply switch --on <host>
  • colmena apply switch --on @tag

Adding a new host to the secrets access

  • For a new host run:
    • mkdir -p ~/.config/sops/age/keys.txt
    • nix-shell -p age --run "age-keygen -o ~/.config/sops/age/keys.txt"
  • Add public key returned to .sops.yaml
  • Update secrets/secrets.yaml with new keys:
    nix-shell -p sops --run "sops updatekeys secrets/secrets.yaml"

Credits

BonusPlay/sysconf, a random repo I found that had a nice layout, and used colemna for managing multiple hosts.