No description
  • Nix 82.9%
  • Python 16.4%
  • Shell 0.7%
Find a file
2026-10-02 23:18:52 +01:00
.gitea/workflows refactor(server): move the rootful containers out of settings.nix 2026-09-29 17:28:22 +01:00
config refactor: dedupe quadlet start timeout, drop dead config 2026-10-01 03:12:28 +01:00
home fix(caddy-local): overflowed loopback ports took down the whole proxy 2026-10-02 23:16:11 +01:00
hosts fix(caddy-local): overflowed loopback ports took down the whole proxy 2026-10-02 23:16:11 +01:00
scripts fix(librechat): mongo via rootless podman quadlet — drop the source-only nixpkgs mongodb 2026-10-02 18:53:25 +01:00
.gitignore chore(server): add temporary home-assistant test instance 2026-09-26 02:16:45 +01:00
AGENTS.md feat(caddy-local): backends via published loopback ports 2026-10-02 22:45:14 +01:00
flake.lock chore: drop home-manager-unstable, commit personal.nix, set chromium homepage 2026-09-24 01:12:15 +01:00
flake.nix feat(caddy-local): nspawn with declarative config; split the fleet by network 2026-10-02 20:16:52 +01:00
personal.nix chore: add personal.nix 2026-09-16 16:04:33 +01:00
personal.nix.example refactor: split podman containers into per-category modules 2026-09-15 18:55:29 +01:00
README.md docs: correct the readme and the agent notes 2026-09-28 00:23:05 +01:00

NixOS config

This flake includes the complete NixOS setup for all computers.

It includes the configuration of zsh, neovim, tmux, etc across all the machines. On Linux desktops it uses the Gnome desktop environment. On the main server it uses podman (docker drop-in replacement) containers for all the services.

Feel free to take a look and I hope it can be used for inspiration.

Personal configuration

Your identity (git name/email, domain) lives in personal.nix in the repo root. Copy personal.nix.example to it and fill in your values:

cp personal.nix.example personal.nix

personal.nix is committed rather than gitignored, so rebuilds need no --impure. The earlier guidance that it was gitignored and required --impure never worked: flake fetchers copy the repository from the git tree, which excludes gitignored files, so an ignored personal.nix would simply have been missing from the flake source.

To update the flake run:

sudo nix flake update

On nix-darwin for install run:

 sudo nix run nix-darwin/master#nix-darwin-rebuild -- switch --flake .#admins-MacBook-Air

To rebuild and switch to the configuration, first copy over the hardware.nix which by default on a NixOS install will be at /etc/nixos/hardware-configuration.nix and then run one of the following

sudo nixos-rebuild switch --flake .#desktop
sudo nix-darwin-rebuild switch --flake .#admins-MacBook-Air
sudo nixos-rebuild switch --flake .#nixos-server