System configuration flake for NixOS / nix-darwin hosts:
- 🗿
glyph: NAS and homelab - 🌿
Rhizome: personal laptop / 14-inch MacBook Pro - 🍄
spore: VPS hosted on CloudCone - 🌀
zeta: ARM server / Raspberry Pi 4 Model B
Command reference
nh is used for both Linux and macOS:
nh os switch github:stackptr/rc # Linux
nh darwin switch github:stackptr/rc # macOS🗿 glyph can build to 🍄 spore to work around memory requirements:
nixos-rebuild switch --flake .#spore --target-host root@spore --build-host localhostCI and deployments
CI builds all host configurations on every push and PR. On pushes to main, the deploy workflow runs automatically after CI succeeds, deploying only the hosts affected by the change:
- Changes under
hosts/{name}/deploy only that host - Changes to shared paths (
modules/,home/,lib/,overlays/,packages/,flake.nix,flake.lock) deploy all hosts
Deploy all hosts manually:
gh workflow run DeployDeploy a specific host:
gh workflow run Deploy -f hosts=glyph
gh workflow run Deploy -f hosts=spore
gh workflow run Deploy -f hosts=zeta