My NixOS configuration
- Nix 86.1%
- Lua 9.5%
- Nushell 3%
- Shell 1.4%
|
All checks were successful
Test / tests (push) Successful in 4m51s
Mullvad is retiring its public encrypted DNS servers on 2026-11-02 and points users at Quad9 instead. Use the no-threat-blocking variant (dns10.quad9.net / 9.9.9.10) to keep the previous unfiltered semantics: AdGuard Home already applies its own blocklists, and upstream blocking only hides the cause of a block from the query log. |
||
|---|---|---|
| .forgejo/workflows | ||
| desktop | ||
| hardware | ||
| home | ||
| hosts | ||
| lib | ||
| modules | ||
| overlays | ||
| pkgs | ||
| scripts | ||
| secrets | ||
| services | ||
| system | ||
| templates | ||
| virtualisation | ||
| .editorconfig | ||
| .env.example | ||
| .envrc | ||
| .gitignore | ||
| AGENTS.md | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
felschr's NixOS configuration
Installation
- Create config for new host in
hosts/<host>/1.1. thehosts/<host>/hardware.nixwill be generated in the following step - Install NixOS via
disko-install:
1.1. When asked enter the LUKS passphrase 1.1. When asked enter the user passwordsudo nix --experimental-features 'nix-command flakes' \ run 'git.felschr.com/nixos-config#install' -- \ --flake .#<host> \ --disk <disk-name> <disk-device>
Now set up a device key that will be used by agenix.
Create a new key and re-encrypt the secrets on an existing device & pull the changes.
To create a new key run:
mkdir -p /mnt/etc/secrets/initrd
ssh-keygen -t ed25519 -N "" -f /mnt/etc/secrets/initrd/ssh_host_ed25519_key
You will likely need to temporarily set age.identityPaths for the installation to succeed:
age.identityPaths = "/etc/secrets/initrd/ssh_host_ed25519_key";
To install run the following command where <host> matches outputs.nixosConfigurations.<host> in flake.nix:
nixos-install --flake '/mnt/etc/nixos#<host>'
After the installation finished, set a password for the user:
passwd <user>
Updating
Update all flake inputs:
nix flake update
Update a specific flake input:
nix flake lock --update-input <input>
Rebuilding the system
Rebuild the system:
sudo nixos-rebuild switch
Rebuild the system for a remote machine:
sudo nixos-rebuild switch --flake '/etc/nixos#<host>' --target-host user@hostname --use-remote-sudo