Commandes Just
Les commandes ci-dessous sont toutes exécutées avec just 🡕.
just <commande> <arguments>Chaque commande est préfixée d’une icône indiquant son contexte d’utilisation :
- 💠 Commun : disponible dans le projet comme dans le framework.
- 🔆 Framework : spécifique au framework DNF amont (
dnf/). - ✳️ Projet : spécifique au projet consommateur (mon réseau).
Commandes GIT
Section intitulée « Commandes GIT »Ces commandes travaillent sur tous les dépôts du projet (par défaut
src/*/, dnf, doc, et la racine). L’alias court est g.
✳️ git <cmd> [projet]
Section intitulée « ✳️ git <cmd> [projet] »Exécute n’importe quelle commande git sur un ou tous les projets.
just git "log --oneline -5" # derniers commits de tous projetsjust git "status" dnf # git status sur dnf/ seulementjust git "remote -v" # remotes de tous les projets✳️ commit <message> [projet] ⭐
Section intitulée « ✳️ commit <message> [projet] ⭐ »add -A + commit -m sur un ou tous les projets. Si le message est
identique au dernier commit, la recette amende au lieu de créer un nouveau
commit.
just commit "fix(net): update dns config"just commit "fix(net): update dns config" dnf # dnf/ seulement✳️ amend [projet] ⭐
Section intitulée « ✳️ amend [projet] ⭐ »Ajoute les modifications en cours au dernier commit (--no-edit, --allow-empty).
just amend✳️ status [projet] ⭐
Section intitulée « ✳️ status [projet] ⭐ »Affiche le statut git d’un ou tous les projets.
just status✳️ diff [projet]
Section intitulée « ✳️ diff [projet] »Affiche le diff git d’un ou tous les projets.
just diff✳️ push [projet] ⭐
Section intitulée « ✳️ push [projet] ⭐ »Vérifie la présence d’une branche amont et de commits en avance avant de pousser.
just push✳️ pull [projet]
Section intitulée « ✳️ pull [projet] »Tire les dernières modifications d’un ou tous les projets.
just pull✳️ git-last-log
Section intitulée « ✳️ git-last-log »Affiche le dernier message de commit de tous les projets, formaté et aligné.
just git-last-log✳️ git-show-repos
Section intitulée « ✳️ git-show-repos »Affiche la liste des dépôts sur lesquels les commandes git itèrent.
just git-show-repos✳️ update-flake
Section intitulée « ✳️ update-flake »Met à jour les entrées flake de dnf/ puis de la racine. Si le dernier commit
de dnf/ est déjà un update(flake):, il l’amende.
just update-flake✳️ update-dnf
Section intitulée « ✳️ update-dnf »Synchronise flake.lock avec le HEAD local de dnf/ (co-développement).
just update-dnfCommandes de développement
Section intitulée « Commandes de développement »Ces commandes aident à maintenir le code, générer les fichiers déclaratifs et travailler sur le générateur Rust.
💠 develop / d
Section intitulée « 💠 develop / d »Lance nix develop -c zsh pour obtenir un shell avec les outils du projet.
just develop💠 clean / c ⭐
Section intitulée « 💠 clean / c ⭐ »Exécute la chaîne complète : fix → check → generate → format → _fix_fs_permissions.
just clean💠 format
Section intitulée « 💠 format »Lance treefmt sur tous les fichiers avec la config partagée du framework.
just formatCorrige automatiquement les problèmes détectés par statix.
just fix💠 generate
Section intitulée « 💠 generate »Régénère les default.nix des dossiers de modules ainsi que les fichiers
var/generated/*.nix depuis etc/config.yaml.
just generate✳️ gen-build
Section intitulée « ✳️ gen-build »Construit le binaire du générateur (src/generator/).
just gen-build✳️ gen-test
Section intitulée « ✳️ gen-test »Lance les tests unitaires du générateur.
just gen-test✳️ cat <hôte> ⭐
Section intitulée « ✳️ cat <hôte> ⭐ »Enchaîne clean → amend → apply-local (ou apply-verbose <hôte>).
just cat # applique en localjust cat myserver # applique sur myserverCommandes de vérification
Section intitulée « Commandes de vérification »Lancez ces vérifications avant de déployer pour détecter les régressions.
Lance deadnix récursivement sur tous les fichiers *.nix.
just check💠 check-flake
Section intitulée « 💠 check-flake »Lance nix flake check en filtrant les avertissements connus des outputs
non standards de DNF (colmena, colmenaHive, homeManagerModules, libTests).
just check-flake💠 check-statix
Section intitulée « 💠 check-statix »Analyse statique du code Nix avec statix.
just check-statix✳️ check-all
Section intitulée « ✳️ check-all »Enchaîne les tests unitaires DNF, la vérification du flake DNF et la vérification du flake réseau.
just check-all🔆 unit-tests ⭐
Section intitulée « 🔆 unit-tests ⭐ »Lance nix-unit sur .#libTests.
just unit-tests🔆 simulate [scénario]
Section intitulée « 🔆 simulate [scénario] »Lance les scénarios de test NixOS (NixOS Test Driver).
| Argument | Effet |
|---|---|
| (vide) | Liste les scénarios disponibles |
all | Exécute tous les scénarios (nix flake check) |
full | Régénère les fixtures puis exécute tout |
<nom> | Exécute un scénario nommé |
just simulate # listerjust simulate all # tout exécuterjust simulate modules-node-console-git🔆 simulate-debug <scénario>
Section intitulée « 🔆 simulate-debug <scénario> »Lance le driver interactif d’un scénario (REPL Python).
just simulate-debug modules-node-console-git🔆 fixtures <action>
Section intitulée « 🔆 fixtures <action> »Gère les fixtures de test : génération, vérification d’absence de dérive, régénération des clés et secrets jetables.
| Action | Effet |
|---|---|
generate | Régénère var/generated/ pour tous les espaces de test |
check | Vérifie l’absence de dérive sans modifier l’arbre |
gen-secrets | Régénère les clés et secrets de test (jetables) |
just fixtures checkCommandes d’installation
Section intitulée « Commandes d’installation »L’installation d’un nouvel hôte suit un enchaînement précis.
✳️ install <hôte> [user] [ip]
Section intitulée « ✳️ install <hôte> [user] [ip] »Formate les disques via disko et installe NixOS via nixos-anywhere.
L’argument ip vaut auto par défaut : l’adresse est calculée comme pour
full-install, inutile de la relever.
just install myserverjust install myserver nixos 10.0.0.5 # IP personnaliséejust install myserver do=test # VM test uniquement✳️ full-install <hôte> [user] [ip] ⭐
Section intitulée « ✳️ full-install <hôte> [user] [ip] ⭐ »Chaîne complète : install + attente reboot + configure + apply + gc + reboot.
L’adresse est calculée toute seule : nom de l’hôte dans sa propre zone, adresse de passage réservée s’il est branché ailleurs. Voir Machines hors de leur zone.
just full-install myserverjust full-install myserver nixos 10.0.3.42 # adresse forcée✳️ install-key <hôte>
Section intitulée « ✳️ install-key <hôte> »Formate un périphérique USB avec disko et installe NixOS dessus.
just install-key myusbhost✳️ configure <hôte> [ip]
Section intitulée « ✳️ configure <hôte> [ip] »Enchaîne copy-id → copy-hw → push-key → luks (ce dernier ne fait rien
sur un hôte non chiffré).
L’adresse est résolue une fois et transmise à toute la chaîne. Si l’hôte est
branché hors de sa zone, la redirection SSH est posée dans la foulée, pour que
l’apply qui suit l’atteigne : just roaming-clear <hôte> une fois la
machine revenue chez elle.
just configure myserver✳️ copy-id <hôte>
Section intitulée « ✳️ copy-id <hôte> »Copie la clé publique de l’utilisateur nix vers l’hôte cible.
just copy-id myserver✳️ copy-hw <hôte>
Section intitulée « ✳️ copy-hw <hôte> »Exécute nixos-generate-config --show-hardware-config à distance et sauvegarde
le résultat dans usr/machines/<hôte>/hardware-configuration.nix.
just copy-hw myserver✳️ push-key <hôte>
Section intitulée « ✳️ push-key <hôte> »Transfère la clé age /etc/sops/age/infra.key vers l’hôte cible.
just push-key myserver✳️ luks <hôte> [action] [ip]
Section intitulée « ✳️ luks <hôte> [action] [ip] »Provisionne le chiffrement d’un hôte : passphrases partagée et par hôte dans
sops, manifeste usr/secrets/luks.json, clé SSH de l’initrd sur la cible,
IP WAN des passerelles. action=passwd fait tourner la passphrase par hôte.
Voir Chiffrement des disques (LUKS).
just luks myserverjust luks myserver passwd✳️ roaming [hôte] [ip]
Section intitulée « ✳️ roaming [hôte] [ip] »Redirige SSH vers un hôte branché hors de sa zone, le temps de l’installation. Colmena s’adresse à un nœud par son nom, qui désigne son adresse d’origine ; cette redirection le renvoie là où la machine se trouve vraiment.
Posée par just configure quand c’est nécessaire, retirée par full-install
en fin de course. Sans argument, affiche les redirections en cours.
just roaming # afficherjust roaming myserver # rediriger (adresse calculée)✳️ roaming-clear [hôte]
Section intitulée « ✳️ roaming-clear [hôte] »Retire la redirection d’un hôte, ou toutes si aucun n’est donné.
just roaming-clear myserverjust roaming-clear✳️ configure-admin-host ⭐
Section intitulée « ✳️ configure-admin-host ⭐ »Configure la machine d’administration : clés SSH, clés age SOPS,
.sops.yaml, secrets par défaut, clé de signature Harmonia.
just configure-admin-host💠 build-iso [arch]
Section intitulée « 💠 build-iso [arch] »Construit l’image ISO du framework pour l’architecture donnée.
just build-iso # x86_64-linux (défaut)just build-iso "aarch64-linux"Commandes de déploiement
Section intitulée « Commandes de déploiement »L’outil de déploiement est colmena 🡕.
Toutes les commandes d’application rafraîchissent d’abord le verrou DNF via
update-dnf.
✳️ apply <cible> [action] / a ⭐
Section intitulée « ✳️ apply <cible> [action] / a ⭐ »Déploie la configuration sur une ou plusieurs cibles.
| Paramètre | Description |
|---|---|
cible | Nom d’hôte, motif ('*'), liste (a,b), tag colmena (@server) |
action | switch (défaut), boot, test, build |
just apply @all # tous les hôtesjust apply myserver # switch (défaut)just apply myserver boot # bootjust apply 'db-*' # tous les hôtes commençant par db-✳️ apply-verbose <c> [a] / av ⭐
Section intitulée « ✳️ apply-verbose <c> [a] / av ⭐ »Idem apply avec --verbose --show-trace.
just apply-verbose myserver✳️ apply-local [action] / al ⭐
Section intitulée « ✳️ apply-local [action] / al ⭐ »Applique la configuration sur la machine courante.
just apply-local✳️ apply-silenced <cible> [action]
Section intitulée « ✳️ apply-silenced <cible> [action] »Active le mode maintenance Alertmanager avant d’appliquer, le désactive après.
just apply-silenced myserverCommandes d’administration
Section intitulée « Commandes d’administration »Ces commandes permettent d’interagir avec les hôtes du parc : maintenance, redémarrage, nettoyage et réparation du boot.
✳️ enter <hôte> / e ⭐
Section intitulée « ✳️ enter <hôte> / e ⭐ »Ouvre une session SSH interactive en tant que nix@<hôte>. Si l’hôte attend
sa passphrase LUKS au démarrage (port 22 fermé), bascule sur le sshd de son
initrd (port 2222, avec repli sur l’IP WAN du manifeste pour une passerelle)
et présente la demande de passphrase. Voir
Chiffrement des disques (LUKS).
just enter myserver✳️ reboot <hôte>
Section intitulée « ✳️ reboot <hôte> »Redémarre l’hôte via colmena exec.
just reboot myserverjust reboot 'web-*' # tous les web-*✳️ halt <hôte>
Section intitulée « ✳️ halt <hôte> »Arrête (poweroff) l’hôte via colmena exec.
just halt myserver✳️ gc <hôte> ⭐
Section intitulée « ✳️ gc <hôte> ⭐ »Exécute nix-collect-garbage -d puis switch-to-configuration boot sur l’hôte.
just gc myserver✳️ fix-boot <hôte>
Section intitulée « ✳️ fix-boot <hôte> »Réinstalle le bootloader avec NIXOS_INSTALL_BOOTLOADER=1.
just fix-boot myserver✳️ fix-zsh <hôte>
Section intitulée « ✳️ fix-zsh <hôte> »Supprime .zshrc.bkp sur l’hôte cible.
just fix-zsh myserverCommandes de gestion des secrets
Section intitulée « Commandes de gestion des secrets »Les mots de passe et clés sont chiffrés avec SOPS. Ces commandes les gèrent sans manipuler les fichiers chiffrés à la main.
✳️ sops ⭐
Section intitulée « ✳️ sops ⭐ »Ouvre usr/secrets/secrets.yaml dans vim (via l’utilisateur nix).
just sops✳️ passwd-default
Section intitulée « ✳️ passwd-default »Définit le mot de passe par défaut des postes DNF (chiffré SOPS, hashé bcrypt).
just passwd-default✳️ passwd <utilisateur> ⭐
Section intitulée « ✳️ passwd <utilisateur> ⭐ »Met à jour le mot de passe d’un utilisateur spécifique.
just passwd darkone✳️ passwd-restic
Section intitulée « ✳️ passwd-restic »Génère un mot de passe REST par hôte et un mot de passe de dépôt par zone.
just passwd-restic✳️ passwd-mas
Section intitulée « ✳️ passwd-mas »Génère les trois secrets du Matrix Authentication Service : clé de chiffrement interne, secret partagé avec Synapse et clé RSA de signature.
just passwd-mas✳️ passwd-livekit
Section intitulée « ✳️ passwd-livekit »Génère le secret partagé de la pile MatrixRTC : le SFU LiveKit valide avec lui les jetons que son service d’autorisation signe.
just passwd-livekit✳️ yubikey <utilisateur> [clé] [action]
Section intitulée « ✳️ yubikey <utilisateur> [clé] [action] »Enrôle une YubiKey (main par défaut, ou backup) pour un utilisateur : PAM
(session/sudo), LUKS et lien d’enrôlement Kanidm, en un seul passage sur le
poste admin. action=revoke révoque la clé sur tout le parc au prochain
déploiement. Voir Authentification forte.
just yubikey darkone # enrôle la clé principalejust yubikey darkone backup # enrôle la clé de secoursjust yubikey darkone main revoke✳️ rotate init|push-keys|finalize
Section intitulée « ✳️ rotate init|push-keys|finalize »Rotation de la clé age /etc/sops/age/infra.key en 3 étapes avec vérifications
d’intégrité.
| Étape | Action |
|---|---|
init | Génère une nouvelle clé, conserve l’ancienne, rechiffre les secrets |
push-keys | Pousse la clé combinée (nouvelle + ancienne) vers tous les hôtes |
finalize | Vérifie que tous les hôtes ont la nouvelle clé, supprime l’ancienne |
just rotate initjust rotate push-keysjust rotate finalizeCommandes avancées
Section intitulée « Commandes avancées »Ces commandes couvrent des fonctionnalités spécifiques : provisionnement du bot d’alertes Matrix et gestion de la réplication Kanidm.
✳️ configure-alert-bot
Section intitulée « ✳️ configure-alert-bot »Crée ou rafraîchit le bot Matrix, le secret webhook et les salons d’alertes
et d’incidents depuis la section network.matrix de config.yaml.
just configure-alert-bot✳️ idm-sync-certs
Section intitulée « ✳️ idm-sync-certs »Collecte les certificats de réplication Kanidm de tous les nœuds du parc
vers usr/secrets/replication/.
just idm-sync-certs✳️ idm-fix-replica <suppl> <cons>
Section intitulée « ✳️ idm-fix-replica <suppl> <cons> »Analyse la santé de la réplication Kanidm sans rien modifier. Prend le nœud supplier (HCS) et la liste des consumers (gateways, séparés par des virgules).
just idm-fix-replica hcs agate,gwRécapitulatif des alias
Section intitulée « Récapitulatif des alias »| Alias | Commande |
|---|---|
a | apply |
al | apply-local |
av | apply-verbose |
c | clean |
d | develop |
e | enter |
g | git |
amend | git-amend |
commit | git-commit |
diff | git-diff |
pull | git-pull |
push | git-push |
status | git-status |