experimenting nix infrastructure https://experimenting.website
  • Nix 84.2%
  • CSS 12.8%
  • Scheme 1.3%
  • Shell 0.7%
  • Python 0.7%
  • Other 0.2%
Find a file
2026-05-16 15:20:03 +07:00
aspect squashed :P 2026-05-16 15:20:03 +07:00
dotfile squashed :P 2026-05-16 15:20:03 +07:00
flake squashed :P 2026-05-16 15:20:03 +07:00
package squashed :P 2026-05-16 15:20:03 +07:00
puter squashed :P 2026-05-16 15:20:03 +07:00
secret squashed :P 2026-05-16 15:20:03 +07:00
user squashed :P 2026-05-16 15:20:03 +07:00
.gitignore squashed :P 2026-05-16 15:20:03 +07:00
.sops.yaml squashed :P 2026-05-16 15:20:03 +07:00
AGENTS.md squashed :P 2026-05-16 15:20:03 +07:00
flake.lock squashed :P 2026-05-16 15:20:03 +07:00
flake.nix squashed :P 2026-05-16 15:20:03 +07:00
justfile squashed :P 2026-05-16 15:20:03 +07:00
README.md squashed :P 2026-05-16 15:20:03 +07:00

EXPERIMENTING

Infrastructure

Nix Asylum

My programming skill has always been googoogaagaa...
So I like to squash commit in published repo for my peace of mind hehehe

How it fits together

  • flake.nix generated by flake-file
  • flake/system/ defines flake inputs, systems, and wiring.
  • aspect/ reusable NixOS and Home Manager aspects.
  • puter/ hosts, computers, machines.
  • user/ user aspects and user-owned metadata.
  • package/ local package definitions exposed through pkgs.local.
  • dotfile/ live dotfiles linked with local symlink-scanner flake.
  • resource/ gitignored notes, boilerplates, reference material.
  • secret/ SOPS-encrypted data.
  • private/ gitignored local-only config used during impure evaluation.
  • zzz-sleep/ parked or unused machine configs.

Common commands

Evaluate a host without building:

nix flake check --impure

My preferred way to rebuild system:

 nh os boot ./ -H <hostname> --impure

For rebuild the VPS:

deploy .#<hostname> --impure

Regenerateflake.nix

nix run ./#write-flake --impure

Gotchas

  • Use --impure for most repo evaluation. Some config imports gitignored files from private/ through builtins.getEnv "PWD".
  • Run evaluation commands from the repo root unless you are intentionally testing path behavior.
  • abort-on-warn = true is enabled, so Nix warnings can become hard failures.
  • secret/secret.yaml is encrypted, but still avoid documenting secret values.