Skip to content

AddG0/nix-config

Repository files navigation

Lint Nix


Add's Nix-Config

Where am I?

You're in a rabbit hole.

How did I get here?

The door opened; you got in.


🚀 Highlights

  • 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-nix and a private nix-secrets repo
  • Remote Bootstrapping and ISO generation with nixos-anywhere
  • Automation Recipes to streamline setup and rebuilds

📦 Requirements

  • 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.


🗺️ Project Structure

.
├── 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 guides

🔐 Secrets Management

Secrets are pulled from a private flake input (nix-secrets) and decrypted using sops-nix. For more, read the Secrets Management Guide.


🧭 Roadmap & TODOs

Ongoing improvements are tracked in docs/TODO.md.

Completed features are noted in their respective stages.


📚 Resources


🙏 Acknowledgements

  • Ryan Yin — Flake structure and Darwin integration patterns
  • EmergentMind — Initial project architecture and modular design

About

Multi host/user Nix configuration

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors