No description
- Nix 100%
| configuration.nix | ||
| flake.lock | ||
| flake.nix | ||
| hardware-configuration.nix | ||
| k3s.nix | ||
| README.md | ||
| wireguard.nix | ||
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 |