My NixOS, nix-on-droid and nix-darwin configs.
Last updated Jun 14, 2026
35
Stars
2
Forks
0
Issues
0
Stars/day
Attention Score
36
Topics
Language breakdown
No language data available.
โธ Files
click to expand
README
Structure
- Everything is built upon flake-parts, with flake modules for automatic stuff extraction
description, nixConfig) is managed by flake-file via a dedicated flake-parts module โ flake.nix is an auto-generated artifact (regenerated with nix run .#write-flake), keeping it a dumb dependency manifest while all real logic lives in the module tree
- Automatic nixos, nix-darwin, nix-on-droid and home-manager configurations extraction
- Automatic nixos, nix-darwin, nix-on-droid, home-manager and flake modules extraction
- Automatic classic (callPackage) and dream2nix packages extraction
- Automatic apps extraction
- Automatic overlays extraction
- Automatic devShells extraction
- Automatic flake templates extraction from ./templates/*/flake.nix
- Hosts can be found under
./hosts/${config-type}/${system}/${hostname}/...
./modules/flake/configurations for more info on what is extracted from those directories
- Modules can be found under
./modules/${config-type}/...
./modules/flake/modules for more info on what is extracted from that directory
- Packages can be found under
./pkgs/...
./modules/flake/packages for more info on what is extracted from that directory
- Apps can be found under
./apps/...
*.nix files and directories containing default.nix are exposed as flake.apps
- Check ./modules/flake/apps for more info on what is extracted from that directory
- Overlays can be found under
./overlays/...
./modules/flake/overlays for more info on what is extracted from that directory
- Shells can be found under
./shells/...
./modules/flake/shells for more info on what is extracted from that directory
- Default one puts a recent nix together with some other useful tools for working with the repo (deploy-rs, rage, agenix-rekey, etc.), see ./shells/default/default.nix for more info
- Templates can be found under
./templates/...
flake.nix are exposed as flake.templates
- Optional description.nix and welcomeText.nix files can add template metadata
- Check ./modules/flake/templates for more info on what is extracted from that directory
Topology
You can see the overall topology of the hosts by running
nix build ".#topology"
And opening the resulting ./result/main.svg and ./result/network.svg
Secrets
Secrets are managed by agenix and agenix-rekey
[!NOTE]
Secrets are defined by the hosts themselves, agenix-rekey just collects what secrets are referenced by them and lets you generate, edit and rekey them
# To put rage, agenix-rekey and friends in $PATH
nix develop
Edit secret
# Select from fzf menu
agenix edit
Rekey all secrets
agenix rekey
Generate missing keys (with the defined generators)
agenix generate
Setups
NixOS setup
# Initial setup
nix run nixpkgs#nixos-anywhere -- --flake ".#${HOSTNAME}" --build-on-remote --ssh-port 22 "root@${HOSTNAME}" --no-reboot
Deploy
deploy ".#${HOSTNAME}" --skip-checks
MacOS / Darwin (silicon) setup
# Setup system tools
softwareupdate --install-rosetta --agree-to-license
sudo xcodebuild -license
Install nix
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
Apply configuration
git clone https://www.github.com/reo101/rix101 ~/.config/rix101
cd ~/.config/rix101
nix build ".#darwinConfigurations.${HOSTNAME}.system"
./result/sw/bin/darwin-rebuild switch --flake .
System setup for yabai (in system recovery)
NOTE: <https://support.apple.com/guide/mac-help/macos-recovery-a-mac-apple-silicon-mchl82829c17/mac>
csrutil enable --without fs --without debug --without nvram
Credits
Misterio77for his amazingnix-starter-configs, on which this was based originallydiskofor making disk partioning a breezeoddlamafor creating the amazingagenix-rekeyandnix-topologyprojects
๐ More in this category