My configs for NixOS, MacOS, and Home Manager dotfiles. I use flake-parts and the dendritic pattern to manage my development/gaming machine, laptop, and a self-hosted server.
hosts/- per-machine entrypointsmodules/- everything else, organized by topicflake/- internal flake plumbingoverlays/- package overridestemplates/- devenv templates (see below)
- Compositors: Niri and Paneru
- Shell: Dank Material Shell with my own Hue manager plugin and Outlook calendar integration
- Development: My neovim flake, Claude Code w/ MCPs, AWS and Jira CLIs, Bruno
- Gaming: CachyOS kernel, low-latency audio, Steam, PrismLauncher, Sober, modding tools
- Storage: BTRFS impermanence with root rollback, LUKS, encrypted secrets pulled from my private repo
- Self-hosting: Rootless Podman containers integrated with fully declarative restic backup/restore and caddy modules, Gatus dashboard, and ntfy-backed notification system
Common operations are managed via just. Run
just at the repo root to see all available commands, organized into
subcommands. Everything from rebuilding to secret management to backup
restoration to linting has a recipe.
I use devenv to manage my environments. Each of these templates supply project
management or development tooling for a specific language. Copy one into a
project with:
nix flake init -t github:derethil/nix-config#<name>
fullstack-node-go- tooling for golang+node projects with AWS SSO authenticationnode- standalone Node.js tooling managed viapnpmpython-uvbased python environmentrust- ahello_worldCargo project
- Boot: Boot the target machine using the minimal NixOS ISO and give root a password.
- Configure: If provisioning a new host, create in
hosts/, import modules as desired, and ensure it includes a_disko.nixconfiguration file._hardware.nixwill be generated automatically. If using LUKS disk encryption, set the new host's LUKS encryption key withjust secrets edit. - Bootstrap: Run the following:
just bootstrap <hostname> <target-ip>