← Le site d'Yggdrasil

YGGDRASIL

Le guide de l'arbre-monde — distribution dérivée de Debian 13 « trixie »

naisora.github.io/YggdrasilOS : téléchargements et nouveautés

Débuter

Yggdrasil, c'est Debian 13 — stable, libre, immense logithèque — avec un bureau KDE Plasma prêt à l'emploi en français et une famille d'outils maison. Leur règle commune : rien d'important ne s'exécute sans ta validation. Chaque outil affiche ce qu'il va faire, puis demande.

Je veux…Commande
Tout mettre à jourygg update
Vérifier la santé du systèmeygg doctor
Installer des jeux, des outils de dev…ygg realm list puis ygg realm add muspelheim
Chercher un logicielygg search obs
Discuter avec l'IA localemimir install puis mimir chat
Pouvoir revenir en arrière après une mise à journorns setup
Héberger un serveur Minecraftygg realm add jotunheim --seulement docker puis bifrost up minecraft --type paper
Démarrer un bot Discordbrokkr new discord-bot MonBot

Toutes les commandes acceptent --help, -n (simulation : rien n'est modifié) et -y (valider automatiquement). La touche Tab complète les commandes et les noms.

Session live : l'utilisateur est ygg et son mot de passe live. Rien n'est conservé à l'extinction : utilise l'icône « Installer Yggdrasil » pour l'installer sur le disque.

ygg — le gestionnaire système

ygg infoRésumé de la machine (--json pour les scripts)
ygg updateInstantané de sécurité, puis paquets Debian et applications Flatpak
ygg install paquetInstalle un paquet Debian, ou une application Flathub si tu donnes son identifiant (org.gimp.GIMP)
ygg remove paquetDésinstalle (--purge pour effacer aussi la configuration)
ygg search motCherche dans Debian et sur Flathub
ygg doctorDisque, mémoire, services en échec, mises à jour de sécurité, pare-feu, instantanés, horloge, températures, journal
ygg nettoyerNíðhöggr, le dragon qui ronge les racines mortes : paquets inutiles, caches APT et Flatpak, vieux journaux, anciens noyaux, miniatures. --analyse montre d'abord ce qui serait libéré, --corbeille vide aussi la corbeille
ygg reparerInstallation interrompue, dépendances cassées, Flatpak ; ygg reparer son, reseau, plasma (--reinitialiser remet le tableau de bord d'origine), grub
ygg annulerDéfait la dernière action notée dans la saga (installation, désinstallation, service activé, partage…) ; --liste montre ce qui peut l'être
ygg retourRestaure un instantané système (Norns, Timeshift) quand une annulation ne suffit pas
ygg materielProcesseur, mémoire, cartes graphiques, disques et leur santé SMART, températures, usure de la batterie
ygg pilotesCe qui manque à ton matériel (pilote NVIDIA, micrologiciels Wi-Fi, Bluetooth, réseau) ; ygg pilotes installer s'en charge
ygg energieProfil performance, equilibre ou economie
ygg demarrageDurée du démarrage et services les plus lents ; ygg demarrage delai 3 règle l'attente du menu GRUB
ygg noyauxNoyaux installés ; ygg noyaux nettoyer retire les anciens (jamais celui en cours)
ygg partage ajouter ~/PublicPartage un dossier sur le réseau local : il apparaît dans « Réseau » sous Windows (Samba + wsdd2), avec mot de passe ; --ecriture pour autoriser les modifications
ygg distanceAccès à distance : ssh activer (réseau local, --cles-seulement), ou un tunnel wireguard init puis wireguard client telephone (QR code à scanner)
ygg tachesTâches planifiées : ygg taches ajouter sauvegarde "norns backup" --quand 21:00 (ou quotidien, hebdomadaire…)
ygg themenuit, aube (clair), ou auto : parchemin le jour, bleu nuit le soir
ygg comptesComptes de la machine : ajouter, admin NOM oui|non, retirer (le dernier administrateur est protégé)
ygg miroirMesure les miroirs Debian et indique le plus rapide d'ici (--appliquer pour l'adopter)
ygg rapportRapport anonymisé (sans adresses, noms ni identifiants) à joindre à une demande d'aide
ygg sagaTout ce que les outils d'Yggdrasil ont fait sur cette machine, et quand
ygg servicesListe les services actifs ; ygg services restart nom…

ygg seul, dans un terminal, ouvre un menu des gestes courants. Raccourcis : ygg ai = mimir, ygg fw = heimdall, ygg snap = norns, ygg stack = bifrost, ygg new = brokkr, ygg notify = ratatoskr. Les commandes ont aussi leur nom anglais (repair, undo, share, remote…).

Les neuf mondes

Les royaumes sont les neuf mondes de l'arbre, chacun avec sa rune. Chaque monde est un ensemble de logiciels à la carte : ygg realm show nom montre ce qui est coché par défaut (●) et ce qui est en option (○) ; un royaume configure aussi la machine quand il le faut (clé SSH, groupes, bibliothèques 32 bits). ygg realm remove nom ne retire que ce que le royaume avait lui-même ajouté.

RuneMondeDomaineContenu
ᛉasgard — la CitadelleSécurité et vie privéeKeePassXC, OpenSnitch, Tor Browser, ClamAV, Flatseal ; en option Kleopatra, Wireshark et nmap
ᛗmidgard — le QuotidienBureautique, messageries, musiqueLibreOffice, Thunderbird, Obsidian, Discord, Signal, Spotify, VLC ; en option Flameshot
ᚲnidavellir — la Forge des nainsDéveloppementVSCodium, git et GitHub CLI, Python, Java 25 et Maven, Node.js, compilateurs ; ta clé SSH et ton identité git ; en option Android Studio, DBeaver
ᛈmuspelheim — le FeuJeu vidéoSteam, Prism Launcher (Minecraft), Lutris, Heroic, ProtonUp-Qt, GameMode et MangoHud, manettes ; bibliothèques 32 bits
ᛊalfheim — la LumièreCréation et streamingOBS Studio, Kdenlive, GIMP, Krita, Inkscape, Blender, Audacity, Parabolic (yt-dlp)
ᚨvanaheim — la PrescienceIA localeOllama et le modèle de Mímir, Alpaca, Jupyter, Buzz (Whisper) ; en option Speech Note
ᚦjotunheim — les GéantsServeursDocker (groupe docker), Cockpit, serveur SSH (réseau local), btop ; en option WireGuard
ᛁniflheim — la BrumeMondes isolésMachines virtuelles (QEMU/KVM), Distrobox, Bottles (applications Windows)
ᛇhelheim — le Royaume des mortsRécupérationTestDisk et PhotoRec, ddrescue, GParted, smartmontools ; en option Clonezilla
ygg realm add muspelheim --sans heroic,lutrissans certains logiciels (--avec pour ajouter une option, --seulement, ou --choisir pour cocher un par un)
ygg realm voyageur« Quel voyageur es-tu ? » : joueur, créateur, développeur, gardien de serveurs → les mondes qui te correspondent
ygg realm arbrel'arbre vivant : chaque monde installé allume une feuille d'or (et sa rune) sur ton fond d'écran ; non pour garder un fond fixe
ygg realm creer atelierun royaume fait de ce que tu as installé toi-même, à partager avec ygg realm exporter atelier -o atelier.toml et ygg realm importer

À la première session d'un système installé, l'assistant « Bienvenue, voyageur » pose ces questions en cinq étapes (prénom, voyageur, mondes, gardiens), puis plante l'arbre dans un terminal visible. On le relance avec yggdrasil-welcome --accueil.

Mímir — l'oracle qui reste chez toi

Dans le mythe, Mímir garde le puits de la sagesse sous une racine de l'arbre-monde ; Odin y donna un œil pour boire. Ici, il te répond d'abord par une phrase d'oracle, puis avec exactitude. Il utilise Ollama : le modèle tourne sur ta machine, aucune donnée ne part en ligne. mimir install installe Ollama et choisit un modèle adapté à ta mémoire vive (qwen3 8B à partir de 16 Go, 4B à partir de 8 Go, 1.7B sinon).

mimir chat                         # consulter le puits (Meta+M ; /aide pour les commandes)
mimir ask "comment monter un disque NTFS ?"
journalctl -b -p err | mimir ask "explique ces erreurs"
mimir pourquoi                     # la dernière commande qui a échoué dans ton terminal, expliquée
mimir runes                        # les erreurs du jour dans les journaux du système
mimir presage                      # l'état réel de ta machine en une phrase (aussi au 1er terminal du jour)
mimir guide "mon wifi se coupe"    # résolution pas à pas, chaque commande validée par toi
mimir selection                    # explique le texte sélectionné à l'écran (Meta+Alt+M)
mimir explain "find . -name '*.log' -mtime +7 -delete"
mimir suggest "trouver les 10 plus gros fichiers de mon dossier"
mimir profil --prenom Astrid       # ce que Mímir sait de toi : lisible, modifiable, effaçable
mimir puits remplir --coffre ~/Documents/Obsidian   # ce qu'il peut consulter (et citer)

Trois tons : oracle (par défaut), skalde (franchement poétique) et sobre (rien que les faits) — mimir --ton sobre, ou ton = "sobre" dans la section [mimir] de ~/.config/yggdrasil/config.toml. Les autres outils ont aussi leur voix (Heimdall le guetteur, les Nornes, Ratatoskr l'écureuil, Brokkr le forgeron) ; ton = "sobre" dans [general] coupe tout le décor.

Le programme décide, pas le modèle. Avant d'exécuter une commande proposée, Mímir évalue son risque : une commande destructrice (formatage, rm -rf /, script téléchargé puis exécuté…) exige que tu tapes « je comprends le risque ». Les journaux, sorties de commandes, extraits du puits et notes du profil sont transmis au modèle comme des données, jamais comme des consignes. Le puits ne se remplit que si tu le demandes (mimir puits vider efface tout). Les conversations sont enregistrées en Markdown dans ~/Documents/Mimir, que tu peux ouvrir comme coffre Obsidian.

Heimdall — le pare-feu

Actif dès l'installation : tout ce qui entre est bloqué, sauf les réponses à tes propres connexions, le ping et la découverte réseau (mDNS).

heimdall status
heimdall ports                       # qui écoute ? est-ce exposé ?
heimdall allow minecraft --from lan  # réseau local seulement
heimdall allow 8080/tcp
heimdall deny minecraft
heimdall profile server              # ouvre SSH ; « strict » ferme aussi ping et mDNS
heimdall guard ssh                   # fail2ban contre la force brute
heimdall log -f                      # voir les connexions refusées
heimdall zone                        # le réseau du moment : maison ou public
heimdall zone maison                 # ce Wi-Fi est de confiance
heimdall fete terraria --heures 3    # LAN party : ports de jeu ouverts au réseau local, puis refermés
heimdall voisins --scan              # qui est sur mon réseau ? (nom, fabricant)
heimdall sortant                     # contrôler les connexions sortantes (OpenSnitch)

Le pare-feu suit le réseau. Chez toi (zone maison), tes ouvertures s'appliquent ; sur un Wi-Fi inconnu, Heimdall bascule tout seul en zone public : rien n'entre, ni ping, ni découverte. Un câble Ethernet inconnu est considéré comme la maison.

Gjallarhorn, le cor de Heimdall, fait une ronde toutes les 10 minutes et sonne (par Ratatoskr) quand un nouveau service se met à l'écoute, quand quelqu'un s'acharne sur SSH, quand un appareil inconnu rejoint le réseau local ou quand un disque annonce une défaillance.

Heimdall gère sa propre table nftables et ne touche pas aux règles de Docker ou de libvirt. Les ports publiés par Docker contournent la chaîne d'entrée : c'est pourquoi Bifröst les lie à 127.0.0.1 sauf si tu choisis de les exposer.

Norns — instantanés et sauvegardes

Les Nornes tissent passé, présent et avenir. Deux protections complémentaires :

Les trois Nornes ont chacune leur commande :

urdle passé : la frise de tes sauvegardes ; urd fichier CHEMIN pour les versions d'un fichier, urd systeme pour restaurer un instantané. Dans Dolphin : clic droit → Versions précédentes, la version choisie est remise à côté de l'original.
verdandile présent : instantané, sauvegarde du dossier et copie distante, maintenant
skuldl'avenir : skuld sauvegarde quotidien, skuld distant hebdomadaire, skuld verification mensuel
norns disque                          # sauvegarder dès que ce disque est branché (une fois par jour)
norns distant init sftp:moi@nas:/sauvegardes   # copie chiffrée hors de chez toi (restic)
norns distant sauvegarder | liste | restaurer Documents
norns verifier                        # relire des fichiers sauvegardés : la restauration marchera-t-elle ?

Le mot de passe de la copie distante est dans ~/.config/yggdrasil/norns-distant.motdepasse : garde-en une copie ailleurs, sans lui personne ne peut relire la sauvegarde.

Bifröst — tes services en une commande

Prérequis : ygg realm add jotunheim --seulement docker, puis reconnecte-toi. Rien n'est installé d'avance : chaque service arrive avec sa commande, n'écoute que sur ta machine par défaut, et ne s'ouvre au réseau local que si tu le demandes.

DomaineServices
Serveurs de jeuminecraft (plusieurs côte à côte), minecraft-proxy (Velocity), playit (jouer avec tes amis sans toucher à ta box), valheim, terraria, factorio, satisfactory, palworld, enshrouded, zomboid
IAopen-webui (Mímir dans le navigateur), searxng (recherche privée), whisper (sous-titres), comfyui (images)
Créationmetube (téléchargeur), restreamer (un live, plusieurs plateformes)
Développementcode-server, bases (PostgreSQL, Redis, Adminer), lavalink (musique des bots Discord), n8n (automatisations)
Partagefileshare (Syncthing ; --windows le rend visible sous Windows), ntfy (notifications sur ton téléphone)
Réseauportail : https://nom.localhost pour chaque interface web

Minecraft, dans toutes ses saveurs. Vanilla, Paper, Spigot, Purpur, Folia, Forge, NeoForge, Fabric ou Quilt ; ou un modpack Modrinth ou CurseForge. Les mods et plugins viennent de Modrinth, dans la version compatible choisie automatiquement. Le monde est sauvegardé chaque jour sans couper le serveur.

bifrost up minecraft --nom survie --type fabric --version 1.21.4 --memoire 6G --mods lithium,sodium
bifrost up minecraft --nom pack --modpack modrinth:cobblemon-fabric
bifrost up minecraft --nom bedrock --type paper --bedrock --carte    # joueurs Bedrock (Geyser), carte BlueMap
bifrost commande survie "whitelist add Astrid"
bifrost mods survie ajouter terralith
bifrost sauvegarder survie                 # à chaud : save-off, copie, save-on
bifrost redemarrage survie 04:00           # chaque nuit
bifrost discord survie https://discord.com/api/webhooks/…   # démarrages, arrivées, plantages
bifrost up minecraft-proxy --nom hub && bifrost reseau hub survie pack   # une adresse, plusieurs mondes
bifrost deploy ~/Projets/mon-bot           # héberger un projet Brokkr (relancé s'il plante)
bifrost logs survie -f   |   bifrost remove survie --purge

Chaque service vit dans ~/bifrost/nom : compose.yml (modifiable), .env (tes réglages, mots de passe générés) et les données.

Brokkr — la forge à projets

ModèleContenu
discord-botdiscord.py 2 à modules : modération, niveaux, économie, tickets, musique (Lavalink), annonces Twitch et YouTube, rôles-réactions, concours — choisis-les à la création
discord-bot-jsla même base en TypeScript (discord.js 14, vitest)
python-appoutil en ligne de commande, application graphique (Qt), service, automatisation
site-webportfolio, blog, application web, documentation
ia-localeun assistant à toi, branché sur Ollama (réponses en continu, mémoire)
qt-appapplication de bureau PySide6 + QML, empaquetable en .deb
jeujeu 2D en Python (pygame-ce) ou projet Godot 4
minecraft-packdatapack ou resource pack pour Java 1.21.4
script-bashun script bash strict, avec options, aide et tests
brokkr                                  # l'assistant : quelques questions, le projet sur mesure
brokkr new discord-bot MonBot --modules moderation,niveaux,musique
brokkr new discord-bot MonBot --idee "un bot qui gère les tickets et les concours"   # Mímir choisit
brokkr new python-app Outil --variante gui
brokkr add docker | ci | tests | module tickets
brokkr deploy                           # Bifröst l'héberge
brokkr package                          # un .deb (avec lanceur pour les applications Qt)
brokkr github                           # le dépôt GitHub, avec ta validation
brokkr save MonModele                   # ton projet devient un modèle

Ratatoskr — le messager

À l'ouverture de session puis toutes les 6 heures, Ratatoskr rassemble les nouvelles : mises à jour en attente, problèmes graves, et les alertes des autres gardiens (Gjallarhorn, les Nornes, Bifröst). Sa notification a des boutons — Mettre à jour, Demander à Mímir, Plus tard — et il ne te dérange jamais pendant une partie (GameMode), un enregistrement ou un direct (OBS), ni en mode « ne pas déranger » : il repasse plus tard. Après l'installation, il envoie un bilan de la machine. Il ne modifie jamais rien.

ratatoskr check --print       # ce qu'il dirait maintenant
ratatoskr telephone ntfy      # prévenir aussi ton téléphone (canal privé ntfy, QR code)
ratatoskr telephone non
ratatoskr disable

Huginn, Muninn et Gleipnir

huginnla pensée : tes machines en direct (processeur, mémoire, disque, réseau, chaleur, services) ; huginn moi@serveur en ajoute d'autres par SSH
muninnla mémoire : ce qui a changé depuis hier (paquets, services, ports, noyau, disque) ; muninn depuis 2026-09-01
gleipnirqui a accès à quoi : comptes et pouvoirs (le groupe docker vaut un administrateur), SSH et ses clés, portes ouvertes, dossiers partagés, applications Flatpak aux accès trop larges

Draupnir — la graine de ta machine

L'anneau d'Odin en fait naître huit autres. Draupnir emporte ta machine dans un seul fichier, une graine, que tu replantes sur un autre ordinateur ou après une réinstallation :

draupnir                              # ce que la graine emporterait
draupnir graine --chiffrer            # la forger (phrase de passe demandée)
draupnir lire graine-yggdrasil-2026-10-02.tar.gz.gpg
draupnir planter graine-yggdrasil-2026-10-02.tar.gz.gpg     # sur la nouvelle machine

Sans --chiffrer, les mots de passe restent dehors : ceux des services sont régénérés à la plantation. Tes clés SSH n'y entrent qu'avec --chiffrer --secrets. Les fichiers que la graine remplacerait sont gardés à côté (.avant-draupnir).

Skíðblaðnir — Yggdrasil dans la poche

Le navire de Freyr se replie dans une poche. Skíðblaðnir écrit Yggdrasil sur une clé USB avec un espace persistant : ce que tu installes et enregistres reste d'un démarrage à l'autre.

skidbladnir                                        # les clés branchées
skidbladnir ecrire sdb                             # la session live en cours, toute la place en persistance
skidbladnir ecrire sdb yggdrasil.iso --persistance 16G --chiffrer

Au démarrage sur la clé, choisis « Yggdrasil — clé persistante » (avec --chiffrer, la phrase de passe est demandée). Tout ce que contenait la clé est effacé : Skíðblaðnir demande de taper son nom avant d'écrire, et refuse de toucher un disque qui n'est pas amovible ou qui porte le système.

Installer, éditions et mises à jour

Édition bureauPlasma et tout ce qui précède. L'icône Installer Yggdrasil lance Calamares : btrfs par défaut (instantanés immédiats), Chiffrer le système sur la page « Effacer le disque » (LUKS2). La phrase secrète est demandée au démarrage, avec le clavier français : /boot reste à part et en clair, car GRUB ne connaît que le QWERTY. Au menu de démarrage, Installer Yggdrasil (mode texte) lance l'installateur Debian, préréglé en français.
Édition serveursans bureau : SSH, Docker pour Bifröst, Heimdall en profil serveur (SSH ouvert, le reste fermé). La console montre l'arbre-monde, le nom et l'adresse de la machine avant la connexion : ssh ygg@adresse depuis un autre ordinateur. Installation par l'installateur Debian en mode texte.

Revenir à un instantané depuis le menu de démarrage. Sur btrfs, chaque instantané des Nornes (norns snap, et ceux de chaque ygg update) apparaît dans le sous-menu « Yggdrasil — revenir à un instantané » : tu démarres le système tel qu'il était, pour vérifier. Le terminal, norns status et ygg doctor rappellent alors sur quel instantané tu es, et norns restore <nom> l'adopte pour de bon ; sinon, un redémarrage normal retrouve le système habituel. Le menu lui-même est en français : Yggdrasil complète le catalogue de GRUB, qui laissait ses entrées en anglais.

Pilotes. ygg doctor (et la page Santé du Centre, bouton Faire) signale un pilote NVIDIA ou un micrologiciel manquant ; ygg pilotes installer s'en charge.

Mises à jour. ygg update met à jour Debian et les outils de l'arbre, venus du dépôt APT d'Yggdrasil. Ce dépôt est signé : APT refuse tout paquet que la clé d'Yggdrasil (/usr/share/keyrings/yggdrasil-archive-keyring.gpg) n'a pas signé.

Questions fréquentes

Puis-je utiliser apt directement ? Bien sûr : Yggdrasil est une Debian. Les outils ne font qu'automatiser et sécuriser ce que tu ferais à la main.

Le démarrage sécurisé (Secure Boot) fonctionne-t-il ? Oui : Yggdrasil utilise le chargeur signé de Debian (l'entrée de démarrage UEFI s'appelle donc « debian »).

Où sont les réglages ? /etc/yggdrasil/yggdrasil.toml pour la machine, ~/.config/yggdrasil/config.toml pour toi.

Comment revenir au bash Debian d'origine ? Supprime la première ligne de ~/.bash_aliases.