nixConfig

This is a modular, flake-based Nix configuration repository for managing all personal machines and environments in one place. It supports:

  • Full system configuration for NixOS laptop.
  • Home Manager user environments on all machines (NixOS, Ubuntu, WSL, servers).
  • Reusable modules for programs and services.
  • Declarative configuration and reproducible builds.

Repository Structure

nixConfig/
├── flake.nix               # Flake entry point with all system and user configs
├── flake.lock              # Input versions for reproducibility
├── hosts/                  # Per-host system-level configs
│   ├── t440p               # NixOS system config for laptop
│   │    ├── configuration.nix             # NixOS system config
│   │    └── hardware-configuration.nix    # Hardware config generated by NixOS
│   ├── steamdeck           # NixOS system running on Valve Steamdeck
│   ├── xaorus              # home-manager on Ubuntu 
│   └── vps04_08            # services running on Ubuntu VPS
├── home/                   # Home Manager configs (user environments)
│   └── home.nix            # Shared user config for 'wieerwill'
├── modules/                # Shared program/service modules
│   └── ...

Usage

Rebuild the system

use the systems name at the end. Example:

sudo nixos-rebuild switch --flake ~/nixConfig#t440p

Rebuild Home Manager only (e.g. on non-NixOS systems)

home-manager switch --flake ~/nixConfig#<username>@<hostname>

Update flake inputs

nix flake update

or use the scripts in /scripts. The script is build for on-system execution and will clean up afterwards:

chmod +x ./scripts/nix-maintain.sh
./scripts/nix-maintain.sh

Setup

  • /etc/nixos is a symlink to ~/nixConfig so NixOS can find configuration files (sudo ln -s /home/$USER/nixConfig /etc/nixos).
  • Uses matching Home Manager and Nixpkgs versions (release-25.05) to avoid compatibility warnings.
  • Home Manager is integrated via NixOS modules for system-wide user config.

Modules

The home/ and modules/ directory will contain reusable modules such as:

  • neovim.nix editor configuration
  • firefox.nix browser preferences
  • git.nix shared Git settings
  • traefik.nix server services

These modules will be selectively included in each host config or enabled conditionally.

Secrets & Private Data

Do not store secrets or passwords in this repository! SOPS with age is provided in the configuration as secure method for secrets management.

Description
No description provided
Readme 154 KiB
Languages
Nix 93.6%
Shell 6.4%