Modules mixin
📦 darkone.host.ai-space
Section intitulée « 📦 darkone.host.ai-space »Espace IA : hôte headless exécutant les agents d’un espace (propriétaire + membres).
Base serveur avec secrets isolés de la flotte : les agents lisent des entrées
non fiables (mail, web, chat), l’hôte ne déchiffre donc que son propre
usr/secrets/hosts/<hostname>.yaml. En général invité microVM
(features: ["microvm-guest:<hypervisor>"]), mais fonctionne aussi en bare
metal.
Outils de l’espace, déclarés une fois par espace
(usr/machines/<host>/configuration.nix) et partagés par l’assistant OpenClaw
et le Claude Code / Codex de chaque membre (darkone.home.aiSpace, activé par
défaut dans le home space-member) :
mcp: serveurs MCP, locaux (command) ou distants (url) ;skills: contenuSKILL.md, un fichier skill ou un répertoire de skills, par nom ;enableClaude,enableCodex: CLI pour les membres et pour la délégation OpenClaw ;packages: outils sur le PATH des agents et dans les homes des membres.
darkone.host.ai-space = { mcp.fetch = { command = "uvx"; args = [ "mcp-server-fetch" ]; }; mcp.github = { command = "github-mcp-server"; args = [ "stdio" ]; secretEnv = [ "GITHUB_PERSONAL_ACCESS_TOKEN" ]; # sops: mcp/github/<VAR> }; skills.commit-style = ./skills/commit-style; packages = [ pkgs.uv pkgs.pandoc pkgs.github-mcp-server ];};- enable
boolHôte d’espace IA (espace de travail agent isolé). - mcp
attrsServeurs MCP de l’espace : OpenClaw et le Claude Code / Codex des membres. - skills
attrsSkills de l’espace, par nom :SKILL.mden ligne, un fichierSKILL.mdou un répertoire de skills. Donnés à OpenClaw et au Claude Code / Codex des membres. - enableClaude
boolClaude Code pour les membres et pour OpenClaw (délégation d’agent de codage). - enableCodex
boolCLI Codex pour les membres et pour OpenClaw (délégation d’agent de codage). - packages
listOf packageOutils de l’espace : PATH d’OpenClaw et homes des membres.
darkone.host.ai-space = { enable = false; mcp = { }; skills = { }; enableClaude = true; enableCodex = true; packages = [ ];};📦 darkone.host.desktop
Section intitulée « 📦 darkone.host.desktop »Une configuration de bureau complète avec gnome, outils multimédias et outils bureautiques.
- enable
boolConfiguration d’hôte optimisée pour le bureau
darkone.host.desktop.enable = false;📦 darkone.host.gateway.backup-links
Section intitulée « 📦 darkone.host.gateway.backup-links »Passerelle DNF : liens de secours. Doc : en-tête de ../gateway.nix.
- backupLinks
attrsLiens de repli, utilisés quand le WAN n’a ni lien, ni bail, ni Internet. Nom :[a-z][a-z0-9-]*.- type
enum [ "ethernet" "wifi" ]ethernet: client DHCP sur un port libre, toujours actif.wifi: client WPA2/WPA3, radio désactivée (rfkill) tant qu’aucun lien préféré n’atteint Internet ; SSID et phrase de passe sont lus dans sops (backup-link/<name>/ssid,backup-link/<name>/psk). - interface
strInterface portant le lien : ni le WAN, ni un port LAN, ni une radio hostapd. - priority
ints.between 1 99La plus basse est préférée parmi les liens de secours (métrique de route 200 + 10 × priority, le WAN restant à 100).
- type
- linkCheck.targets
nonEmptyListOf strAdresses IP pingées via chaque lien ; une réponse suffit. IP littérales uniquement : la sonde ne doit pas dépendre du DNS. - linkCheck.interval
ints.positiveSecondes entre deux séries de sondes. - linkCheck.failAfter
ints.positiveSéries échouées avant pénalité d’un lien. - linkCheck.recoverAfter
ints.positiveSéries réussies avant restauration d’un lien pénalisé (hystérésis).
darkone.host.gateway.backup-links = { backupLinks.type = null; backupLinks.interface = "wlp4s0"; backupLinks.priority = 10; linkCheck.targets = internetProbeTargets; linkCheck.interval = 10; linkCheck.failAfter = 3; linkCheck.recoverAfter = 6;};📦 darkone.host.gateway
Section intitulée « 📦 darkone.host.gateway »La passerelle / routeur principal d’une zone de réseau local.
Sous-module (gateway/) : backup-links.nix, liens de secours.
Liens de secours (backup-links.nix)
Section intitulée « Liens de secours (backup-links.nix) »- enable
boolActiver les fonctions de passerelle pour l’hôte courant (dhcp, dns, proxy, etc.)
darkone.host.gateway.enable = false;📦 darkone.host.hcs
Section intitulée « 📦 darkone.host.hcs »Le serveur de coordination headscale principal.
- enable
boolActiver le serveur de coordination headscale - enableClient
boolActiver le client tailscale sur le nœud HCS (recommandé pour héberger des services)
darkone.host.hcs = { enable = false; enableClient = true;};📦 darkone.host.laptop
Section intitulée « 📦 darkone.host.laptop »Config de bureau + outils et configuration spécifiques aux ordinateurs portables.
- enable
boolConfiguration d’hôte optimisée pour ordinateur portable
darkone.host.laptop.enable = false;📦 darkone.host.minimal
Section intitulée « 📦 darkone.host.minimal »Toute configuration d’hôte repose sur cette configuration minimale.
- enable
boolConfiguration d’hôte minimale - secure
boolPréférer des options plus sûres (désactiver les utilisateurs mutables…)
darkone.host.minimal = { enable = false; secure = false;};📦 darkone.host.portable
Section intitulée « 📦 darkone.host.portable »Configuration portable pour un lecteur USB amorçable contenant une machine NixOS du réseau local.
- enable
boolConfiguration d’hôte portable pour clés USB
darkone.host.portable.enable = false;📦 darkone.host.server
Section intitulée « 📦 darkone.host.server »Configuration améliorée pour les serveurs (minimal, pas de veille, watchdog…).
- enable
boolConfiguration minimale de l’hôte serveur - enableWatchdog
boolActiver le watchdog systemd
darkone.host.server = { enable = false; enableWatchdog = true;};📦 darkone.host.umi
Section intitulée « 📦 darkone.host.umi »Profil hôte : poste de travail UMI (Unified Multimodal Input), utilisable sans clavier ni souris.
- enable
boolConfiguration hôte UMI : entrées multimodales, tactile + voix + regard (Onboard, Talon, Tobii) - autoLoginUser
nullOr strUtilisateur de connexion automatique (obligatoire pour une session sans clavier), un utilisateur de l’hôte avec le profilumi. - package
nullOr packagePaquet Talon (par défautpkgs.talonde l’overlay talon-nix si disponible).
darkone.host.umi = { enable = false; autoLoginUser = null; package = pkgs.talon or null;};📦 darkone.host.vm
Section intitulée « 📦 darkone.host.vm »Outils invités pour machines virtuelles.
- enableVirtualbox
boolClient Virtualbox - enableQemu
boolClient Qemu/KVM - enableXen
boolClient Xen
darkone.host.vm = { enableVirtualbox = false; enableQemu = false; enableXen = false;};📦 darkone.profile.advanced
Section intitulée « 📦 darkone.profile.advanced »Profil pour les utilisateurs avancés (informaticiens, développeurs, administrateurs).
- enable
boolUtilisateur avancé (admin sys, développeur)
darkone.profile.advanced.enable = false;