This repo stores nix configuration to manage my hosts running NixOS and macOS.
The configuration is very specific to my own machines and setup, but it may be a useful reference for anyone else learning or experimenting with nix, whether it be on a personal workstation or a server environment.
❯ macchina
a8888b. Host - dave@hephaestus
d888888b. Machine - Micro-Star International Co., Ltd MS-7C02 1.0
8P"YP"Y88 Kernel - 6.12.81
8|o||o|88 Distro - NixOS 25.11 (Xantusia)
8' .88 DE - Niri
8`._.' Y8. Packages - 1 (cargo), 6 (flatpak), 9299 (nix)
d/ `8b. Shell - fish
dP Y8b. Terminal - .ghostty-wrappe
d8: ::88b. Resolution - 3840x2160
d8" 'Y88b Uptime - 11h 32m
:8P :888 CPU - AMD Ryzen 7 5700X 8-Core Processor (16)
8a. _a88P CPU Load - 3%
._/"Yaa .| 88P| Memory - 10.2 GB / 32.8 GB
\ YP" `| `.
/ \.___.d| .'
`--..__) `._.'To run a build/rebuild:
just rebuildTo update nixpkgs defined in flake.nix, run:
just updateIf there are updates, they should be reflected in flake.lock.
To rollback to the previous generation:
just rollbackTo cleanup previous files, run nix garbage collection:
just cleanIf the bootloader for some reason breaks (i.e. motherboard firmware upgrade), restore it from a live USB by running the following commands:
$ sudo cryptsetup luksOpen /dev/nvme0n1p2 crypted-nixos
Enter passphrase for /dev/nvme0n1p2: ********
$ sudo mount /dev/vg/root /mnt
$ sudo mount /dev/nvme0n1p1 /mnt/boot/efi
$ sudo nixos-enter --root /mnt
$ hostname <hostname>Navigate to the nix-config directory and run:
just rebuild-boot