Skip to content

yasinuslu/nepjua

Repository files navigation

Nepjua Nix Configuration

A comprehensive Nix-based system configuration framework for managing multiple machines across different platforms (NixOS, macOS, and WSL).

Features

  • 🖥️ 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

Quick Start

  1. Install Nix:

    curl -L https://nixos.org/nix/install | sh
  2. Clone the repository:

    git clone https://github.com/yasinuslu/nepjua.git
    cd nepjua
  3. Apply configuration based on your system:

macOS Configuration

nix run nix-darwin -- switch --flake .#$hostname

Replace $hostname with one of: joyboy, sezer, chained

NixOS Configuration

sudo nixos-rebuild switch --flake .#kaori

NixOS-WSL Configuration

sudo nixos-rebuild switch --flake .#tristan --impure

Repository Structure

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

Documentation

Comprehensive documentation is available in the docs directory:

Common Tasks

GitHub Rate Limiting

Set up authentication:

gh auth login
export NIX_CONFIG="extra-access-tokens = github.com=$(gh auth token -u yasinuslu)"

Credits