b882adc7eaa20ba20d5fa69ffc2947a07f464608
NixOS Config
Personal Nix flake for four machines:
michael- x86_64 Linux servertahani- x86_64 Linux home server / workstationchidi- aarch64 Darwin work laptopjason- aarch64 Darwin personal laptop
Repository Map
modules/- flake-parts modules, auto-imported viaimport-treemodules/_hosts/- host-specific submodules like hardware, disks, and servicesmodules/_lib/- local helper functionsapps/- Nushell apps exposed through the flakesecrets/- SOPS-encrypted secretsflake.nix- generated flake entrypointmodules/dendritic.nix- source of truth for flake inputs andflake.nixgeneration
How It Is Structured
This repo uses den and organizes configuration around aspects instead of putting everything directly in host files.
- shared behavior lives in
den.aspects.<name>.<class>modules - hosts are declared in
modules/hosts.nix - host composition happens in
modules/<host>.nix - user-level config mostly lives in Home Manager aspects
Common examples:
modules/core.nix- shared Nix and shell foundationmodules/dev-tools.nix- VCS, language, and developer toolingmodules/network.nix- SSH, fail2ban, and tailscale aspectsmodules/michael.nix- server composition formichaelmodules/tahani.nix- server/workstation composition fortahani
Common Commands
nix run .#build
nix run .#build -- michael
nix run .#apply
nix run .#deploy -- .#tahani
nix flake check
alejandra .
Updating The Flake
flake.nix is generated. Update inputs in modules/dendritic.nix, then regenerate:
nix run .#write-flake
alejandra .
Description
Languages
Nix
66.5%
TypeScript
29.9%
Nushell
3.6%