Modules d'administration
👑 darkone.admin.fleet-update
Section intitulée « 👑 darkone.admin.fleet-update »Outil de mise à jour de la flotte (fleet-update) et son exécution quotidienne sans surveillance.
enable installe l’outil sur un hôte de déploiement ; just fleet-update l’exécute ensuite.
timer.enable ajoute une exécution quotidienne fleet-update --no-ui : mise à jour du
flake, build, tests par vagues, switch.
-
enable
boolfleet-update, l’outil de mise à jour et de déploiement de la flotte -
package
packageLe paquet fleet-update. Sonnix-eval-jobsest aligné sur le Nix du système : l’outil évalue le flake consommateur avec celui-ci. -
aiPackages
listOf packageOutils IA accessibles depuis l’exécution non supervisée (--ai-model). Facultatif : l’outil avertit et continue sans IA quand aucun n’est trouvé.Ce n’est pas une dépendance du paquet, car
pkgs.claude-codeest non libre et imposeraitallowUnfreeà chaque consommateur.pkgs.opencodeest en MIT. -
aiContext
nullOr strConsignes opérateur (langue, style) incluses dans chaque prompt IA d’une exécution sur cet hôte,just fleet-updatecomme le timer. Écrit dans/etc/fleet-update/ai-context, même sansenable: en co-développement, la recette exécute les sources.--ai-context, sur la ligne de commande ou danstimer.extraArgs, le remplace. -
user
nullOr strCompte exécutant la mise à jour non supervisée : propriétaire deworkDir, détenant l’identité git, la clé age sops et les identifiants IA et Matrix. -
workDir
strEspace de travail consommateur sur disque. Pas l’argument de moduleworkDir, qui est sa copie dans le store nix. -
timer.enable
booll’exécution quotidienne non supervisée (fleet-update --no-ui) -
timer.onCalendar
strQuand l’exécution démarre (systemdOnCalendar). -
timer.extraArgs
listOf strOptions passées après--no-ui, que le module définit toujours. -
timer.timeout
strDurée maximale d’une exécution avant que systemd l’arrête (TimeoutStartSec). Une exécution bloquée détiendrait sinon le verrou, et toute exécution ultérieure sortirait avec4sans aucune alerte.
darkone.admin.fleet-update = { enable = false; package = pkgs.fleet-update.override { nix-eval-jobs = nixEvalJobs; }; aiPackages = [ ]; aiContext = "Answer in French and keep the response concise."; user = "admin"; workDir = "/etc/nixos"; timer.enable = false; timer.onCalendar = "*-*-* 04:00"; timer.extraArgs = [ ]; timer.timeout = "6h";};👑 darkone.admin.locate
Section intitulée « 👑 darkone.admin.locate »Localiseur d’hôtes du parc (dnf-locate) : ssh retrouve un hôte où qu’il soit branché.
Un nom de parc se résout vers l’adresse maison de l’hôte. Dès que l’hôte
roame (autre zone, ou dehors sur le tailnet), chaque ssh nix@<host> —
colmena, fleet-update, just enter — viserait cette adresse morte. Activé
sur un hôte d’administration, un ProxyCommand route ces connexions via
dnf-locate.
Chemins essayés, tous dérivés de la topologie :
<host>: adresse maison, seule en premier — le cas courant coûte une seule résolution ;<host>.<zone domain>: réservation que chaque zone tient pour les hôtes visiteurs ;<host>.tailnet.internal: adresse tailnet (les passerelles de zone la résolvent).
Le premier chemin qui répond sur le port l’emporte.
- enable
boolRoutage de ssh vers les hôtes du parc viadnf-locate(maison, réservations de zone, tailnet).
darkone.admin.locate.enable = config.darkone.admin.nix.enable;👑 darkone.admin.nix
Section intitulée « 👑 darkone.admin.nix »Configuration NixOS pour l’ordinateur de l’administrateur du réseau local.
Un harmonia sur la ferme partagerait ses résultats de compilation, mais harmonia dessert la totalité de /nix/store et ne peut pas exprimer « uniquement ce que j’ai compilé » : il intercepte le trafic que le cache public devrait gérer. Le délestage relève de la planification de compilation, pas de la substitution — d’où buildMachines ici et un substituteur de dernier recours dans service/nix-cache.nix.
- enable
boolActiver les outils de configuration NIX builder - enableNh
boolActiver l’outil de gestion nix helper (nh) - remoteBuilders.enable
boolDélester les compilations vers les hôtes de la flotte marquésbuild-farmdansconfig.yaml. Inactif tant qu’aucun hôte ne porte ce marqueur. - remoteBuilders.maxJobs
intNombre de slots de compilation parallèles à utiliser sur chaque ferme. - remoteBuilders.speedFactor
intVitesse relative de compilation d’une ferme, par rapport à cet hôte. - remoteBuilders.mandatoryFeatures
listOf strCaractéristiques qu’une dérivation DOIT exiger pour qu’une ferme lui soit proposée. C’est ce qui empêche les petites dérivations d’emprunter une liaison distante (potentiellement lente). Une liste vide envoie toutes les dérivations éligibles à la ferme. - remoteBuilders.supportedFeatures
listOf strCaractéristiques système qu’une ferme peut fournir. - remoteBuilders.systems
listOf strPlateformes pour lesquelles une ferme compile. Valeurs explicites plutôt que déduites :hosts.nixne contient une architecture que lorsqu’elle diffère de la valeur par défaut.
darkone.admin.nix = { enable = false; enableNh = false; remoteBuilders.enable = true; remoteBuilders.maxJobs = 8; remoteBuilders.speedFactor = 2; remoteBuilders.mandatoryFeatures = [ ]; remoteBuilders.supportedFeatures = [ ]; remoteBuilders.systems = [ ];};👑 darkone.admin.welcome
Section intitulée « 👑 darkone.admin.welcome »Page de bienvenue au premier démarrage de l’hôte admin installée par darkone new.
À la première session GNOME de chaque membre de wheel, le navigateur ouvre une page locale : étape 1 sur 4 terminée (l’hôte admin), puis la passerelle, puis les services et le serveur de coordination, avec des liens vers la documentation. Affichée une seule fois par utilisateur (~/.local/state/dnf/welcome-shown). Le lanceur « Onboarding » de nix-admin la rouvre (darkone.admin.welcome.page).
darkone new écrit darkone.admin.welcome.enable = true; dans le configuration.nix de l’hôte admin. Supprimez la ligne pour arrêter la page pour les utilisateurs qui ne l’ont pas encore vue.
- enable
boolla page de bienvenue au premier démarrage de l’hôte admin - page
pathLa page de bienvenue, un fichier HTML du store
darkone.admin.welcome = { enable = false; page = page;};