nixfiles monorepo!! :3333
  • Nix 98.5%
  • Shell 1.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Lain Iwakura bdf0e265be
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
feat: wheelchair meow
2026-09-14 13:03:56 +03:00
hosts feat: wheelchair meow 2026-09-14 13:03:56 +03:00
lib feat: wheelchair meow 2026-09-14 13:03:56 +03:00
scripts chore: nocommitsync 2026-06-25 19:39:04 +03:00
secrets feat: movin to xray 2026-09-14 12:00:23 +03:00
services chore: fmt 2026-06-24 12:01:04 +03:00
.gitignore feat: 67 hours later 2026-06-18 16:05:20 +03:00
.sops.yaml feat:tun mihomo + feat: alphys is back 2026-08-12 20:01:40 +03:00
.woodpecker.yaml fix: :ci: whoops 2026-06-20 00:51:18 +03:00
flake.lock feat: move to zen 2026-09-07 17:43:40 +03:00
flake.nix feat: move to zen 2026-09-07 17:43:40 +03:00
logo.png fix: nixos logo 2026-06-18 19:54:27 +03:00
README.md feat(puppy): move to 26.05 and srvos 2026-08-31 23:33:13 +03:00
topology.nix feat: topology! 2026-08-13 20:44:35 +03:00

nixfiles :3

ok hi this is my one big flake for every machine i own. used to be eight separate per-host repos, now it's a monorepo. the code is a bit of a zoo (every host pins its own nixpkgs) but welp, it works :3

the machines

attr what nixpkgs
m68k (darwin) macbook air m3, my main laptop 26.05
macvm (darwin) x86 macos vm, also hydra runner 25.11
macmini mac mini server unstable
nixvm linux vm 25.11
playground1 hostkey vds, runs a pile of services 25.11
playground2 hostkey vds, minecraft mostly 25.11
puppy vds, serves a lil website (srvos server profile) 26.05
eva01 thinkpad x230, secondary laptop unstable
alphys surface laptop 3 (linux-surface kernel, disko) unstable
default (nix-on-droid) phone (pixel 3a) 24.05

how its wired

  • hosts/<name>/ - per-host config
  • hosts/nixos-common.nix - baseline auto-imported into every nixos host
  • lib/partials/ - opt-in feature modules. every config gets a partials attrset so you just write imports = [ partials.boot-efi partials.chrony ];
  • services/ - reusable service modules, pulled in with abs (e.g. (abs "services/tailscale-exit-node.nix"))
  • secrets/ - sops secrets, one .sops.yaml at the root
  • scripts/ - little helpers (cpr, lmg, cmg, sops)

other goodies handed to each module via specialArgs: inputs, outputs (= self), and abs "path" (absolute path from the repo root).

impure dependencies

note to self on what has to exist on the host manually:

  • /home/lain/.ssh/agenix_key - private age key for sops decryption (needed on playground2, eva01 and alphys)
  • ~/.ssh/puppy_host_ed25519_key (on m68k) - puppys ssh host key, generated here and pushed to the box at install time. its what decrypts secrets/puppy.yaml, so losing it means reinstalling puppy

setting up

# nixos
sudo nixos-rebuild switch --flake .#playground1

# darwin
darwin-rebuild switch --flake .#m68k

# phone
nix-on-droid switch --flake .#default

# just check everything evaluates
nix flake check --all-systems

for puppy pls see its readme:

nix run .#nixos-anywhere -- --flake .#puppy root@<ip>

cat in a readme 🐱

cat