Systems Architecture
NixOS system configurations organized by hostname with shared modules in common/.
Channel Groups
Hosts use different nixpkgs channels. Changes to shared code (common/)
must work across both channels.
Unstable (nixpkgs — nixos-unstable)
- okinawa — x86_64-linux, laptop / LLM build server (ASUS G14)
- kyushu — x86_64-linux, work laptop
- aomi — x86_64-linux, server
- sakhalin — x86_64-linux, home server
Stable (nixpkgs-25_11 — nixos-25.11)
- rhea — aarch64-linux, media server (main)
- aion — aarch64-linux, XMPP / podcast server
- athena — aarch64-linux, Raspberry Pi 4
- demeter — aarch64-linux, Raspberry Pi 4
- aix — aarch64-linux, Raspberry Pi 4
- kerkouane — x86_64-linux, VPS server
- carthage — x86_64-linux, VPS server
Host File Layout
Each host has a directory in /systems/<hostname>/ containing:
boot.nix— bootloader, initrd, kernel moduleshardware.nix— hardware-specific settings, filesystem mountsextra.nix(optional) — additional host-specific NixOS configurationhome.nix(optional) — host-specific home-manager configuration
Build Verification
- Test current host:
make build - Test a specific host:
make host/<hostname>/build - Dry-build (eval only):
make host/<hostname>/dry-build - Direct nix:
nix build .#nixosConfigurations.<hostname>.config.system.build.toplevel