A comprehensive Nix-based system configuration framework for managing multiple machines across different platforms (NixOS, macOS, and WSL).
-
🖥️ Multi-Platform Support
- NixOS (Linux) configuration
- nix-darwin (macOS) configuration
- NixOS-WSL support
- Hetzner Cloud deployment
-
🧩 Modular Design
- Reusable configuration modules
- Platform-specific features
- User environment management
- Service configurations
-
🛠️ Development Tools
- Modern shell environments (Fish, Nushell, Zsh)
- Development utilities
- Container tools (Docker, Kubernetes)
- Terminal enhancements
-
⚙️ System Management
- Declarative system configuration
- Reproducible environments
- Easy system updates
- Configuration rollbacks
-
Install Nix:
curl -L https://nixos.org/nix/install | sh
-
Clone the repository:
git clone https://github.com/yasinuslu/nepjua.git cd nepjua
-
Apply configuration based on your system:
nix run nix-darwin -- switch --flake .#$hostname
Replace $hostname
with one of: joyboy
, sezer
, chained
sudo nixos-rebuild switch --flake .#kaori
sudo nixos-rebuild switch --flake .#tristan --impure
.
├── flake.nix # Main entry point
├── hosts/ # Host-specific configurations
├── modules/ # Modular configuration components
│ ├── darwin/ # macOS-specific modules
│ ├── nixos/ # NixOS-specific modules
│ └── home-manager/ # User environment modules
├── my-lib/ # Custom Nix functions
└── docs/ # Documentation
Comprehensive documentation is available in the docs directory:
Set up authentication:
gh auth login
export NIX_CONFIG="extra-access-tokens = github.com=$(gh auth token -u yasinuslu)"
- Configuration inspiration from vimjoyer/nixconf
- Structure based on this excellent guide by @vimjoyer