Installation eines einzellnen Hosts
  • Nix 55.3%
  • Shell 44.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-10-20 16:15:05 +02:00
hosts ss 2025-10-15 15:29:13 +02:00
modules Update default.nix 2025-09-22 16:08:17 +02:00
.gitignore dateien update 2025-09-22 11:09:31 +02:00
flake.nix Update flake.nix 2025-10-20 16:15:05 +02:00
nixos-setup.sh ddd 2025-09-22 11:46:10 +02:00
README.md ss 2025-10-15 15:44:49 +02:00

NixOS-Flakes-Infra

NixOS Flake Repo für einen Host.

NixOS-Flakes-Infra /  
├─ flake.nix  
├─ .gitignore  
├─ README.md  
└─ hosts/  
  └─ nix-host1/  
      ├─ configuration.nix  
      └─ hardware-configuration.nix  

Vorraussetzungen

  • eignes Git-Repo mit den Dateien
  • Anpassung der Dateien
      "ssh-ed25519 xxxxxx"
    ];
   initialHashedPassword = "xxxxxx";
  };

flake.nix

Die flake.nix stellt z.B. die Distro Version bereit. In dieser Datei werden auch weitere Host hinzufügt.

configuration.nix

Hier wird der Host und das OS konfiguriert, jede Änderung die man sich am System wünscht muss hier eingetragen werden. Es wird ein Benutzer erstellt Names "service" mit einem initialHashedPassword und einem SSH-Key.

NixOS Installation

  1. OS mittels ISO booten
  2. nixos-setup.sh ausführen curl https://xxx.install.sh | sh
  3. Festplatte wird formatiert und die Installation wird gestartet
  4. root PW vergeben & neustart

manuelle Schritte:

parted /dev/vdb -- mklabel gpt
parted /dev/vdb -- mkpart ESP fat32 1MiB 513MiB
parted /dev/vdb -- set 1 esp on
parted /dev/vdb -- mkpart primary 513MiB 100%
mkfs.vfat -F32 -n EFI /dev/vdb1
mkfs.ext4 -L nixos /dev/vdb2
mount /dev/disk/by-label/nixos /mnt
mkdir -p /mnt/boot
mount /dev/disk/by-label/EFI /mnt/boot
git clone https://xxx.git /mnt/etc/nixos
nixos-generate-config --show-hardware-config > hosts/nix-srv1/hardware-configuration.nix
nixos-install --flake /mnt/etc/nixos#nix-srv1

OS-Update/OS-Anpassungen

Will man ein neues Programm auf dem Server installieren muss wie folgt vorgagangen werden:

In der neuen VM

  1. aktuelle hardware-configuration.nix erstellen Diese wurde während der Installation automatisch für die VM erstellt, muss aber aktualisiert werden nixos-generate-config --show-hardware-config > hosts/nix-srv1/hardware-configuration.nix
  2. aktuelle hardware-configuration.nix auf sein eigenes Repo übertragen
  3. Editieren der configuration.nix in eurem Repo -> z.B. hinzufügen von duf
  4. Git pull
  5. NixOS aktualiseren: sudo nixos-rebuild switch --flake .
  6. DONE

Disko - Disk setup

  1. git clone des Repo
  2. sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount hosts/nix-srv1/disko-config.nix

Troubleshooting

  1. die hardware-configuration.nix muss im Repo eingechecked sein. Die dirty Files werden von NixOS nicht gesehen. Mit git add xxx hinzufügen und committen.