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.
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.
just full-install myserver✳️ 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>
Section intitulée « ✳️ configure <hôte> »Enchaîne copy-id → copy-hw → push-key.
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✳️ 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>.
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✳️ 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 |