Files
nix/README.md
2026-03-26 23:19:13 +01:00

119 lines
2.1 KiB
Markdown

# 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
1. Kontrollera att rätt disk (`installDisk`) är vald i `hosts/kronos/default.nix`
2. Generera en `hardware-configuration.nix`. Tag dock bort all information om filsystem. Disko sköter redan det åt oss.
3. Kontrollera `networking.hostId`. Bör vara unikt för nätverket.
### Applicera konfiguration
Sedan:
```bash
sudo -i
export NIX_CONFIG='experimental-features = nix-command flakes'
cd /tmp
git clone <repo-url> nixcfg
cd nixcfg
```
Applicera disk-layouten:
```bash
nix run github:nix-community/disko -- --mode disko .#kronos
```
Generera hårdvarufilen och kopiera in den i förrådet:
```bash
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
```bash
rm -rf /mnt/etc/nixos
cp -r /tmp/nixcfg /mnt/etc/nixos
```
Installera systemet:
```bash
nixos-install --flake .#kronos
```
Registrera TPM-nyckeln:
```bash
nixos-enter --root /mnt
./systemd-cryptenroll.sh
```
Starta om:
```bash
reboot
```
## Efter första uppstart
```bash
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:
```bash
nix flake update
```
Bygg och applicera ändringar på den lokala maskinen:
```bash
sudo nixos-rebuild switch --flake .#kronos
```
Testa en konfiguration utan att göra den permanent vid nästa boot:
```bash
sudo nixos-rebuild test --flake .#kronos
```
Bygg bara, utan att byta system direkt:
```bash
sudo nixos-rebuild build --flake .#kronos
```
Rensa gamla generationer och oanvända paket:
```bash
sudo nix-collect-garbage -d
```
Kontrollera `ZFS`-snapshots:
```bash
zfs list -t snapshot
```