Nix Config
This is my interpretation of the perfect nix flake, this powers my desktops, laptops, servers, vms, containers, and all aspects of my computers.
Features
- Automated Discovery: Hosts and users are automatically configured from filesystem structure
- Automated Persistence: TempFS with persistable components using [Impermanence] or BTRFS snapshotting
- Secret Management: Encrypted secrets in [NixOS] ([sops-nix]) and [home-manager] ([sops-nix] with [sops])
- Automated Updates: Flake dependency updates through Github Actions using [Update-flake-lock]
- Hardware Acceleration: Automatic hardware acceleration support detection and configuration
- Modular Architecture: Custom modules and overlays for extensibility
Supported Configurations
- [NixOS]-managed systems with automatic configuration discovery:
- Desktops - Personal workstations and development environments
- Servers - Infrastructure services and automation
- Laptops - Portable systems with power management
Repository Structure
The repository uses an automatic discovery system that scans the filesystem to build configurations:
.
├─ home # Root for all user homes (auto-discovered)
│ ├─── {username} # User-specific configurations
│ └─── shared # Shared home-manager modules
├─ hosts # Root for all hosts (auto-discovered by device type)
│ ├─── shared # Auto-imported modules for all hosts
│ │ ├─── global # Core system configuration (locale, networking, etc.)
│ │ └─── optional# Optional modules for specific use cases
│ ├─── desktop # Desktop NixOS systems
│ │ ├─── shared # Auto-imported modules for desktops
│ │ ├─── {host} # Individual desktop host configurations
│ ├─── laptop # Laptop NixOS Systems
│ │ ├─── shared # Auto-imported modules for laptops
│ │ └─── {host} # Individual laptop host configurations
│ └─── server # Server NixOS Systems
│ ├─── shared # Auto-imported modules for servers
│ └─── {host} # Individual server host configurations
├─ lib # Extensions to nixpkgs lib and custom builders
│ └─── builders # System and home-manager configuration builders
├─ modules # Custom NixOS and home-manager modules
├─ overlays # NixPkgs overlays for package modifications
├─ pkgs # Custom packages not in nixpkgs
└─ docs # Additional documentation
Auto-Discovery Mechanism
The flake automatically discovers:
- Hosts: By scanning
hosts/{device-type}/directories (excludingshared/) - Users: By scanning
home/directories and matching with existing hosts - Hardware Acceleration: Support based on predefined host lists
Welcome to the docs!
Over to the left, you’ll find the sidebar. There you’ll see several sections including “User guides”, “Modules”, “Packages”, “Overlays”, “Hosts”, and “Lib”.
If you’re looking for a specific option you may find the dedicated RacciDev Option Search (at the bottom of the sidebar) has more relevant results.