NixOS-konfiguration
Det här förrådet innehåller en flake-baserad NixOS-konfiguration för mina maskiner.
Just nu finns värden kronos.
Punktfiler förväntas att finns under ~/dotfiles, och hanteras med home manager
Flakes
Vi lever i framtiden, därför används flakes exklusivt.
För att installera
- Kontrollera att rätt disk (
installDisk) är vald ihosts/kronos/default.nix - Generera en
hardware-configuration.nix. Tag dock bort all information om filsystem. Disko sköter redan det åt oss. - Kontrollera
networking.hostId. Bör vara unikt för nätverket.
Applicera konfiguration
Sedan:
sudo -i
export NIX_CONFIG='experimental-features = nix-command flakes'
cd /tmp
git clone <repo-url> nixcfg
cd nixcfg
Applicera disk-layouten:
nix run github:nix-community/disko -- --mode disko .#kronos
Generera hårdvarufilen och kopiera in den i förrådet:
nixos-generate-config --root /mnt
cp /mnt/etc/nixos/hardware-configuration.nix ./hosts/kronos/hardware-configuration.nix
Kom ihåg att ta bort alla filesystemkonfiguration från hardware-configuration.nix.
Disko sköter ju redan det.
Kopiera också över konfigurationen till målenheten
rm -rf /mnt/etc/nixos
cp -r /tmp/nixcfg /mnt/etc/nixos
Installera systemet:
nixos-install --flake .#kronos
Registrera TPM-nyckeln:
nixos-enter --root /mnt
./systemd-cryptenroll.sh
Starta om:
reboot
Efter första uppstart
git clone <dotfiles-repo> ~/dotfiles
Vanligt underhåll
När systemet väl är installerat jobbar man oftast så här.
Uppdatera flake-låset:
nix flake update
Bygg och applicera ändringar på den lokala maskinen:
sudo nixos-rebuild switch --flake .#kronos
Testa en konfiguration utan att göra den permanent vid nästa boot:
sudo nixos-rebuild test --flake .#kronos
Bygg bara, utan att byta system direkt:
sudo nixos-rebuild build --flake .#kronos
Rensa gamla generationer och oanvända paket:
sudo nix-collect-garbage -d
Kontrollera ZFS-snapshots:
zfs list -t snapshot