Réinstallation — RogueLeader
Informations de Référence
Section intitulée « Informations de Référence »| Paramètre | Valeur |
|---|---|
| Accès réseau local | 192.168.0.10 (alias rogueleader.home) |
| Disque | /dev/sda (BIOS/GPT via disko) |
| Architecture | x86_64, Intel KVM |
| SSH | Accessible directement (clé publique uniquement, pas de Tailscale) |
| sops | Clé age dérivée de /etc/ssh/ssh_host_ed25519_key |
Pré-Requis
Section intitulée « Pré-Requis »- Accès physique ou console au serveur
- Clé USB NixOS ISO prête
- Connexion réseau local (DHCP)
- Clé age de exampleHost disponible (pour re-chiffrer les secrets après install) Voir Sauvegarde & Restauration des Secrets
- Sauvegarde Borg vérifiée :
BORG_PASSPHRASE=... borg list ssh://backup@storage2.friloux.me/~/rogueleader.friloux.me
Résumé du Partitionnement (disko)
Section intitulée « Résumé du Partitionnement (disko) »Disque unique /dev/sda, GPT :
| Partition | Taille | Rôle |
|---|---|---|
| part1 | 1 Mo | GRUB BIOS boot |
| part2 | 4 Go | swap |
| part3 | reste | / ext4 |
Contrairement à clochette, disko gère les fileSystems NixOS — pas besoin de mettre
à jour des UUIDs manuellement après réinstallation.
Étape 1 — Démarrer sur l’ISO NixOS
Section intitulée « Étape 1 — Démarrer sur l’ISO NixOS »Brancher la clé USB, démarrer sur l’ISO NixOS.
Vérifier la connexion réseau (DHCP LAN) :
ip addr showping -c3 192.168.0.1Étape 2 — Récupérer le Dépôt
Section intitulée « Étape 2 — Récupérer le Dépôt »git clone https://github.com/gfriloux/nixos /tmp/nixoscd /tmp/nixosÉtape 3 — Partitionnement et Formatage avec disko
Section intitulée « Étape 3 — Partitionnement et Formatage avec disko »sudo nix run github:nix-community/disko/latest -- \ --mode destroy,format,mount \ --flake /tmp/nixos#RogueLeaderdisko partitionne /dev/sda, formate en ext4 et monte tout sous /mnt.
Vérifier :
df -h /mntmount | grep /mntÉtape 4 — Installation NixOS
Section intitulée « Étape 4 — Installation NixOS »sudo nixos-install --flake /tmp/nixos#RogueLeader --no-root-passwdÉtape 5 — Premier Démarrage
Section intitulée « Étape 5 — Premier Démarrage »rebootRetirer la clé USB. Le système démarre sur GRUB → NixOS.
SSH est accessible directement depuis le réseau local via la clé publique déclarée dans users.nix :
# Depuis exampleHostssh guillaume@rogueleader.homeÉtape 6 — Mise à Jour de la Clé Age dans sops
Section intitulée « Étape 6 — Mise à Jour de la Clé Age dans sops »La nouvelle installation a généré une nouvelle clé SSH host → nouvelle clé age. Sans cette mise à jour, sops ne pourra pas déchiffrer les secrets depuis RogueLeader.
Depuis RogueLeader (connecté via SSH) :
nix run nixpkgs#ssh-to-age -- -i /etc/ssh/ssh_host_ed25519_key.pubDepuis exampleHost, mettre à jour .sops.yaml avec la nouvelle clé publique :
cd ~/Apps/github/gfriloux/nixosnano .sops.yaml# Remplacer la valeur de &server_rogueleader par la nouvelle clé ageRe-chiffrer secrets/RogueLeader.yaml :
sops updatekeys secrets/RogueLeader.yaml# Confirmer avec 'y'
# Vérifiersops -d secrets/RogueLeader.yamlCommitter et pousser :
git add .sops.yaml secrets/RogueLeader.yamlgit commit -m "chore(secrets): rotate RogueLeader age key after reinstall"git pushÉtape 7 — Déploiement Complet depuis exampleHost
Section intitulée « Étape 7 — Déploiement Complet depuis exampleHost »just install_rogueleader --ask-sudo-passwordCette commande déploie la configuration complète avec les secrets désormais déchiffrables par la nouvelle clé SSH host.
Pour déployer Home Manager :
just home_rogueleaderÉtape 8 — Restauration des Données depuis Borg (si Nécessaire)
Section intitulée « Étape 8 — Restauration des Données depuis Borg (si Nécessaire) »# Depuis RogueLeader en rootsudo -i
# Lister les archivesBORG_PASSPHRASE=$(cat /run/secrets/services/borg/passphrase) \BORG_RSH="ssh -i /run/secrets/services/borg/key/private" \borg list ssh://backup@storage2.friloux.me/~/rogueleader.friloux.me
# Arrêter les containerssystemctl stop docker-papra docker-uptime-kuma docker-mealie docker-borg-ui \ docker-wow-cp-bookstack docker-wow-cp-mariadb docker-wow-cp-mysqldump
# Restaurer depuis /cd /BORG_PASSPHRASE=$(cat /run/secrets/services/borg/passphrase) \BORG_RSH="ssh -i /run/secrets/services/borg/key/private" \borg extract --progress \ ssh://backup@storage2.friloux.me/~/rogueleader.friloux.me::ARCHIVE_NAME
# Redémarrer les servicessystemctl start docker-papra docker-uptime-kuma docker-mealie docker-borg-ui \ docker-wow-cp-bookstack docker-wow-cp-mariadb docker-wow-cp-mysqldumpÉtape 9 — Vérification Finale
Section intitulée « Étape 9 — Vérification Finale »# Containers en cours d'exécutiondocker ps --format "table {{.Names}}\t{{.Status}}"
# Secrets déchiffrésls /run/secrets/
# Backup Borgsystemctl status borgbackup-job-remote