- Multi-Platform support for both NixOS and Darwin (macOS)
- Flake-based multi-host, multi-user NixOS and Home-Manager configuration
- Modular & Composable configs for both system and user layers
- Secrets Management via
sops-nixand a privatenix-secretsrepo - Remote Bootstrapping and ISO generation with
nixos-anywhere - Automation Recipes to streamline setup and rebuilds
- NixOS 23.11 or later
- Strong understanding of Nix and NixOS concepts
- Experience with flakes and home-manager
- Familiarity with system administration and Linux
- Patience and persistence
- A good chunk of disk space
This is my personal NixOS configuration that I use to manage my systems. It's not designed to be a drop-in solution - you'll need to understand the code to adapt it for your needs. The configuration assumes you're comfortable with Nix expressions, flakes, and system administration.
Looking for a well-documented configuration? Check out EmergentMind's Nix config.
.
├── flake.nix # Flake inputs and configuration
├── hosts/
│ ├── common/ # Shared configurations
│ │ ├── core/ # Essential system configs
│ │ │ ├── darwin/ # macOS-specific core
│ │ │ └── nixos/ # NixOS-specific core
│ │ ├── desktops/ # Desktop environment configs
│ │ ├── disks/ # Disk configuration templates
│ │ ├── optional/ # Optional system modules
│ │ └── users/ # User configurations
│ ├── darwin/ # macOS-specific host configs
│ └── nixos/ # NixOS-specific host configs
├── home/ # Home-manager configurations
│ └── primary/ # Primary user config
│ ├── common/ # Shared home configs
│ │ ├── core/ # Essential home setup
│ │ ├── darwin/ # macOS-specific core
│ │ └── nixos/ # NixOS-specific core
│ ├── optional/ # Optional home modules
│ └── desktops/ # Desktop customization
├── modules/ # Custom modules
│ ├── common/ # Shared modules
│ ├── darwin/ # macOS-specific modules
│ ├── home/ # Home-manager modules
│ └── nixos/ # NixOS-specific modules
├── lib/ # Helper functions and utilities
├── pkgs/ # Custom packages
│ ├── common/ # Cross-platform packages
│ ├── darwin/ # macOS-specific packages
│ └── nixos/ # NixOS-specific packages
├── scripts/ # Automation and helper scripts
├── templates/ # Project templates
├── assets/ # Static assets (wallpapers, etc.)
└── docs/ # Documentation and guidesSecrets are pulled from a private flake input (nix-secrets) and decrypted using sops-nix. For more, read the Secrets Management Guide.
Ongoing improvements are tracked in docs/TODO.md.
Completed features are noted in their respective stages.
- Nix.dev Docs
- Noogle - Nix API Search
- NixOS Wiki
- NixOS & Flakes Book by Ryan Yin
- Impermanence
- YubiKey:
- Ryan Yin — Flake structure and Darwin integration patterns
- EmergentMind — Initial project architecture and modular design