nixfiles monorepo!! :3333
  • Nix 97.8%
  • Shell 2.2%
Find a file
Lain Iwakura 9467f7816c
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
feat: update wallpapers
2026-07-27 09:11:11 +03:00
hosts feat: update wallpapers 2026-07-27 09:11:11 +03:00
lib/partials
scripts chore: nocommitsync 2026-06-25 19:39:04 +03:00
secrets fix: i forgor 2026-07-02 17:13:39 +03:00
services
.gitignore
.sops.yaml feat: ok so initial 2026-07-02 14:56:32 +03:00
.woodpecker.yaml
flake.lock chore: sync Mon Jul 20 11:48:34 MSK 2026 2026-07-20 11:48:34 +03:00
flake.nix chore: sync Mon Jul 20 11:48:34 MSK 2026 2026-07-20 11:48:34 +03:00
logo.png
README.md feat: ok so initial 2026-07-02 14:56:32 +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
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)

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

cat in a readme 🐱

cat