2025-07-23 04:27:38 +02:00
2025-07-23 04:27:38 +02:00
2025-07-23 04:27:38 +02:00
2025-07-23 04:27:38 +02:00
2025-07-23 04:27:38 +02:00
2025-07-23 04:27:38 +02:00
2025-07-23 04:27:38 +02:00

NixOS dotfiles

Structure des fichiers

  • hosts | | | + generic <- Iso minimal pour nixos-anywhere | | | + myhost <- Tout ce qui est unique à une machine vient ici |
  • modules | | | + core <- Modules partagés entre toutes les machines | | | + optionnal <- Modules pour au moins deux machines |
  • flake.nix |
  • custom.iso

Si un seul fichier nix, pas de sous dossier (openfortivpn) Si plusieurs fihchiers nix, un sous dossier (ex desktop)

Workflow

  1. Création d'une iso (push en ligne pour kexec)
  2. Copie de l'iso sur le repo
  3. nixos-anywhere (pour déployer une install minimale)
  4. copie du disk-config.nix et du hardware-config.nix dans le dossier host qui va bien
  5. deploy-rs pour push une config sur une image generic ou maj existant.

Création d'une iso

nixos-generate --format iso --configuration ./customiso.nix -o ~/Downloads/nixos.iso

si on veut utiliser kexec, il faut pousser l'iso en ligne pour que le serveur cible puisse la télécharger.

Nixos anywhere

On ajoute à ~/.ssh/config

nixos-anywhere --flake .#generic --target-host root@192.168.122.204 -i ~/.ssh/id_ed25519_beastie --generate-hardware-config nixos-generate-config ./hosts/generic/hardware-configuration.nix

si l'installation est en local, on peux créer le partitionnement avec la commande suivante :

sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --yes-wipe-all-disks --mode destroy,format,mount ./disko.nix

et faire une installation standard. Le mieux est de download le repo et de faire un nixos-anywhere en ssh sur localhost ou depuis un autre pc

Une fois la manipulation finie, on copie hosts/generic dans hosts/hostname. Ainsi, on garde le bon disk-config.nix et hardware-configuration.nix

déployer la bonne configuration

Avant de déployer la configuration, il faut ajouter la clé sops-nix


On édite hosts/hostname/default.nix et on inclus les bons modules.

On lance le rebuild :

nixos-rebuild switch --flake ~/dev#test-kvm --target-host beastie@192.168.122.204 --sudo
Description
No description provided
Readme 315 KiB
Languages
Nix 85.9%
Shell 5.7%
Lua 4.3%
CSS 4.1%