No description
Find a file
2026-05-03 18:56:13 +02:00
configuration.nix initial config 2026-05-03 18:56:13 +02:00
flake.lock initial config 2026-05-03 18:56:13 +02:00
flake.nix initial config 2026-05-03 18:56:13 +02:00
hardware-configuration.nix initial config 2026-05-03 18:56:13 +02:00
k3s.nix initial config 2026-05-03 18:56:13 +02:00
README.md initial config 2026-05-03 18:56:13 +02:00
wireguard.nix initial config 2026-05-03 18:56:13 +02:00

NixOS Configuration

Common Commands

Rebuild & Switch

Apply configuration changes to the running system:

sudo nixos-rebuild switch --flake /etc/nixos

Update Flake Inputs

Update all flake inputs (nixpkgs, vscode-server, nil, etc.) to their latest versions:

cd /etc/nixos && sudo nix flake update

Update a single input:

cd /etc/nixos && sudo nix flake update nixpkgs

Dry Run (test without applying)

Check what would change without switching:

sudo nixos-rebuild dry-activate --flake /etc/nixos

Build Without Switching

Build but don't activate:

sudo nixos-rebuild build --flake /etc/nixos

Roll Back

Roll back to the previous generation:

sudo nixos-rebuild switch --rollback

Or list and switch to a specific generation:

sudo nix-env --list-generations --profile /nix/var/nix/profiles/system
sudo nix-env --switch-generation <number> --profile /nix/var/nix/profiles/system
sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch

Garbage Collection

Remove old generations and free disk space:

sudo nix-collect-garbage -d

Keep the last N generations:

sudo nix-env --delete-generations +3 --profile /nix/var/nix/profiles/system
sudo nix-collect-garbage

WireGuard

Generate a WireGuard key pair (run on each k3s node):

sudo mkdir -p /etc/wireguard
wg genkey | sudo tee /etc/wireguard/wg0.key | wg pubkey

Show the public key of an existing private key:

sudo cat /etc/wireguard/wg0.key | wg pubkey

Check WireGuard interface status:

sudo wg show

k3s

Check cluster node status:

sudo k3s kubectl get nodes

Get kubeconfig (written to /etc/rancher/k3s/k3s.yaml):

sudo cat /etc/rancher/k3s/k3s.yaml

Check k3s service logs:

journalctl -u k3s -f

Flake Inputs

Input Source Purpose
nixpkgs github:nixos/nixpkgs/nixos-unstable Main package set
vscode-server github:nix-community/nixos-vscode-server VS Code server service
nil github:oxalica/nil Nix LSP (nil)

Files

File Purpose
flake.nix Flake definition, inputs and outputs
configuration.nix Main system configuration
hardware-configuration.nix Auto-generated hardware config
k3s.nix k3s 3-server HA embedded-etcd cluster config
wireguard.nix WireGuard mesh networking for k3s nodes