No description
Find a file
2026-04-05 00:34:25 +02:00
configuration.nix initial nixos config 2026-04-05 00:10:54 +02:00
flake.lock dark theme, plasma-manager, papirus icons 2026-04-05 00:34:25 +02:00
flake.nix dark theme, plasma-manager, papirus icons 2026-04-05 00:34:25 +02:00
hardware-configuration.nix initial nixos config 2026-04-05 00:10:54 +02:00
home.nix dark theme, plasma-manager, papirus icons 2026-04-05 00:34:25 +02:00
packages.nix dark theme, plasma-manager, papirus icons 2026-04-05 00:34:25 +02:00
README.md README hinzugefügt 2026-04-05 00:15:08 +02:00

NixOS Konfiguration

Deklarative NixOS-Systemkonfiguration mit Flakes und Home-Manager.
Zielumgebung: Proxmox VM (später erweiterbar auf Bare-Metal mit Nvidia Optimus).

Dateistruktur

/etc/nixos/
├── flake.nix                  # Einstiegspunkt  Inputs (nixpkgs, home-manager) und Outputs
├── flake.lock                 # Lockfile  pinnt exakte Versionen (automatisch generiert)
├── configuration.nix          # System: Boot, Netzwerk, Desktop, Dienste, User
├── hardware-configuration.nix # Hardware-spezifisch (wird bei Installation generiert)
├── packages.nix               # Alle System-Pakete  getrennt für Übersichtlichkeit
└── home.nix                   # User-Konfiguration via Home-Manager (Shell, Git, Tools)

Voraussetzungen

  • Proxmox VE mit OVMF (UEFI) Support
  • NixOS Minimal ISO (oder Netboot.xyz)
  • Netzwerkzugang für Paket-Downloads

Installation (Proxmox VM)

1. VM in Proxmox erstellen

Einstellung Wert
OS Type Linux 6.x
BIOS OVMF (UEFI)
Disk 40+ GB, VirtIO SCSI
RAM 4+ GB
CPU 2+ Kerne, Typ host
Display VirtIO-GPU
Netzwerk VirtIO, Bridge

Nach der Installation eine EFI Disk hinzufügen (ohne Pre-Enroll Keys).

2. Ins Live-System booten

# Root-Shell starten
sudo -i

# Tastatur auf Deutsch setzen
loadkeys de

# Internetverbindung prüfen
ping -c 3 nixos.org

3. Disk partitionieren

# GPT-Partitionstabelle erstellen
parted /dev/vda -- mklabel gpt

# EFI-Partition (512 MB)
parted /dev/vda -- mkpart ESP fat32 1MiB 512MiB
parted /dev/vda -- set 1 esp on

# Root-Partition (Rest)
parted /dev/vda -- mkpart primary 512MiB 100%

4. Formatieren und mounten

# Formatieren
mkfs.fat -F32 /dev/vda1
mkfs.ext4 /dev/vda2

# Mounten
mount /dev/vda2 /mnt
mkdir -p /mnt/boot
mount /dev/vda1 /mnt/boot

5. Konfiguration erstellen

# Hardware-Konfiguration automatisch generieren
nixos-generate-config --root /mnt

# Config-Dateien anlegen/bearbeiten
nano /mnt/etc/nixos/flake.nix
nano /mnt/etc/nixos/configuration.nix
nano /mnt/etc/nixos/packages.nix
nano /mnt/etc/nixos/home.nix

6. System installieren

nixos-install --flake /mnt/etc/nixos#nixos-vm
# Root-Passwort setzen wenn gefragt

# Neustarten
reboot

7. Nach dem ersten Boot

# Passwort ändern falls nötig
passwd

# System aktualisieren
sudo nix flake update --flake /etc/nixos
sudo nixos-rebuild switch --flake /etc/nixos

Täglicher Workflow

Config ändern und anwenden

# 1. Datei bearbeiten (z.B. Paket hinzufügen)
sudo nano /etc/nixos/packages.nix

# 2. System neu bauen
rebuild

# 3. Änderungen committen und pushen
sudo git -C /etc/nixos add .
sudo git -C /etc/nixos commit -m "paket xyz hinzugefügt"
sudo git -C /etc/nixos push

Wichtige Befehle

Befehl Beschreibung
rebuild System neu bauen und aktivieren
rebuild-test Testen ohne permanent zu setzen (wird beim Reboot verworfen)
update Flake-Inputs (nixpkgs, home-manager) aktualisieren
garbage Alte Generationen und ungenutzten Store aufräumen

Pakete verwalten

# Paket suchen
nix search nixpkgs firefox

# Paket temporär nutzen (ohne Installation)
nix-shell -p python3

# Dev-Shell starten (aus flake.nix)
nix develop

Nützliche Konzepte

Generationen

NixOS speichert bei jedem rebuild eine neue Generation. Beim Booten kannst du jederzeit eine ältere Generation auswählen perfektes Rollback.

# Alle Generationen anzeigen
sudo nix-env --list-generations --profile /nix/var/nix/profiles/system

# Alte Generationen aufräumen
sudo nix-collect-garbage -d

Flake-Struktur

Der #nixos-vm Teil im Rebuild-Befehl referenziert den Namen in flake.nix:

nixosConfigurations.nixos-vm = nixpkgs.lib.nixosSystem { ... };

Für mehrere Rechner einfach weitere Einträge hinzufügen:

nixosConfigurations.nixos-vm = ...;
nixosConfigurations.gaming-laptop = ...;
nixosConfigurations.homeserver = ...;

Und mit --flake /etc/nixos#gaming-laptop das jeweilige System bauen.

Vorbereitung: Bare-Metal mit Nvidia

Für den Wechsel auf echte Hardware (Ryzen 5xxxH + RTX 3080 Laptop):

  1. Repo klonen
  2. hardware-configuration.nix neu generieren
  3. Nvidia-Block in configuration.nix einkommentieren und Bus-IDs anpassen:
# Bus-IDs finden (Dezimal, nicht Hex!)
lspci | grep -E "VGA|3D"
hardware.nvidia = {
  modesetting.enable = true;
  open = false;
  prime = {
    offload.enable = true;
    offload.enableOffloadCmd = true;
    amdgpuBusId = "PCI:x:x:x";   # anpassen
    nvidiaBusId = "PCI:x:x:x";   # anpassen
  };
};
services.xserver.videoDrivers = [ "nvidia" ];
hardware.graphics.enable = true;
hardware.graphics.enable32Bit = true;
  1. Gaming-Pakete in packages.nix einkommentieren (Steam, MangoHud, Gamemode, etc.)

Ressourcen