NixOS vous permet de décrire une pile souveraine entière — bitcoind, electrs, Tor, un serveur d’IA locale et un relais Nostr — dans un seul fichier configuration.nix déclaratif. Chaque reconstruction est reproductible, chaque mise à niveau est atomique, et un mauvais changement se rétablit en un démarrage. C’est le palier reproductible au-dessus des OS de nœud clés en main : plus de contrôle, une courbe plus raide.
Les systèmes d’exploitation de nœud clés en main comme Umbrel et StartOS (Start9) ont fait quelque chose de véritablement important : ils ont réduit l’exploitation de votre propre nœud Bitcoin d’un week-end de bricolage Linux à quelques clics. Si vous en exploitez un aujourd’hui, vous êtes déjà plus avancé sur la route de la souveraineté que la plupart. Ce guide est pour l’étape suivante — quand vous voulez que la machine elle-même soit décrite en code, versionnée, et reconstructible à partir de zéro sur n’importe quel matériel. C’est ce que NixOS et le projet nix-bitcoin vous donnent, et tous deux sont le travail de grandes communautés open-source sur les épaules desquelles nous nous tenons simplement ici.
Pourquoi le déclaratif bat le réglage manuel pour une pile souveraine
La façon habituelle de bâtir un nœud auto-hébergé est impérative : vous vous connectez en SSH, vous faites apt install quelques choses, vous éditez une douzaine de fichiers de config dans /etc, vous ouvrez des ports de pare-feu, vous configurez des unités systemd, et vous priez de vous souvenir de ce que vous avez fait. Six mois plus tard, la carte SD meurt, ou vous mettez à niveau Debian, et votre machine soigneusement réglée est un tas de modifications non documentées que vous devez rétro-concevoir à partir de votre propre passé.
NixOS inverse ceci. Le système entier — options du noyau, chaque paquet, chaque service, chaque utilisateur, chaque règle de pare-feu — est déclaré dans /etc/nixos/configuration.nix. Vous n’installez pas de logiciel ; vous déclarez qu’il devrait exister et vous exécutez une reconstruction. Le projet NixOS décrit ses trois piliers comme reproductible (« si un paquet fonctionne sur une machine, il fonctionnera aussi sur une autre », via des constructions isolées sans dépendances non déclarées), déclaratif, et fiable (installer ou mettre à niveau « ne peut pas casser d’autres paquets », et vous pouvez « revenir aux versions précédentes »). Pour un nœud censé survivre au matériel, cet ensemble de propriétés est exactement ce que vous voulez.
Sous le capot, le gestionnaire de paquets Nix épingle chaque dépendance par hachage cryptographique et construit chaque paquet en isolation. Le bénéfice pratique : la même config plus les mêmes entrées épinglées produisent le même système — sur votre ThinkPad de rechange, sur un NVMe neuf, ou sur la machine d’un ami dans un an. Votre nœud devient un fichier texte que vous pouvez sauvegarder, comparer et auditer, pas un flocon fragile.
Le palier clés en main versus le palier déclaratif
Ce n’est pas un concours, et la réponse honnête pour la plupart des gens est « commencez par un clés en main ». Umbrel et StartOS sont d’excellentes rampes d’accès, et D-Central documente ce paysage sur la page des appareils de nœud Bitcoin. NixOS est un palier différent avec un compromis différent : vous abandonnez la facilité de l’app-store et payez en courbe d’apprentissage, et en retour vous obtenez un contrôle total et reproductible. Voici la comparaison honnête.
| Dimension | OS clés en main (Umbrel, StartOS) | NixOS + nix-bitcoin |
|---|---|---|
| Modèle mental | Boutique d’apps + tableau de bord web | Un fichier de config déclaratif |
| Effort de configuration | Faible — flasher, cliquer, terminé | Élevé — apprendre d’abord le langage Nix |
| Installer un service | Cliquer « installer » dans l’interface | Ajouter quelques lignes, lancer une reconstruction |
| Mises à niveau | Mises à jour gérées par app | Basculement atomique de génération de tout le système |
| Retour arrière | Au niveau de l’app, parfois manuel | Tout le système, une commande ou un redémarrage |
| Reproductibilité | Basée sur image ; dérive dans le temps | Entrées épinglées ; reconstruction identique partout |
| Plafond de personnalisation | Limité par le catalogue d’apps | Tout l’espace utilisateur Linux |
| Idéal pour | Devenir souverain ce week-end | Opérateurs qui veulent l’infrastructure-en-code |
Si la voie clés en main est là où vous êtes, continuez — le pôle d’auto-hébergement et le catalogue d’auto-hébergement souverain plus large cartographient bien des services à exploiter avant même de toucher à Nix. NixOS gagne sa place une fois que « je veux reconstruire cette machine exacte, à la demande, à partir d’un fichier dans git » devient une exigence plutôt qu’un simple avantage.
Ce que « retour arrière atomique » et « reconstruction reproductible » signifient réellement
Ces deux expressions sont beaucoup lancées, alors voici la mécanique concrète sur NixOS.
Générations. Chaque fois que vous appliquez une configuration, NixOS la construit comme une nouvelle génération et ajoute une entrée au menu du chargeur d’amorçage. Le système courant n’est qu’un lien symbolique pointant vers la génération active. Basculer revient effectivement à un échange de pointeur, ce qui est pourquoi l’activation est décrite comme atomique : soit vous êtes sur la nouvelle génération soit sur l’ancienne, jamais un gâchis à moitié appliqué.
Appliquer des changements. La commande nixos-rebuild switch construit la nouvelle configuration, en fait le défaut pour l’amorçage, et l’active sur le système en cours (redémarrant les services affectés). Si vous voulez seulement l’essayer sans changer le défaut d’amorçage, nixos-rebuild test l’active maintenant mais laisse la génération précédente comme repli d’amorçage — un redémarrage annule tout. Cela seul rend les changements risqués bien moins effrayants.
Revenir en arrière. Si un changement casse quelque chose, nixos-rebuild switch --rollback revient à la génération précédente. Et parce que chaque génération passée est encore dans le menu d’amorçage, vous pouvez choisir un système plus ancien et éprouvé directement depuis le chargeur d’amorçage si la machine ne démarre même pas. Votre nœud a un bouton d’annulation au niveau du système d’exploitation.
Reconstruction reproductible. Parce que la config et ses entrées épinglées déterminent entièrement le résultat, « réinstaller » cesse d’être un projet de recherche. Flashez un NixOS de base, déposez votre configuration.nix (et votre canal épinglé ou votre verrou de flake), lancez une reconstruction, restaurez votre portefeuille et vos données de chaîne, et vous êtes de retour. Aucun état non documenté ne vit seulement dans votre tête.
nix-bitcoin : le cœur durci en sécurité de la pile
Vous pourriez câbler bitcoind à la main sur NixOS, mais vous n’y êtes pas obligé. Le projet nix-bitcoin — maintenu par la communauté fort-nix — est « une collection de paquets Nix et de modules NixOS pour installer facilement des nœuds Bitcoin complets avec un accent sur la sécurité ». C’est la partie de cette pile que nous créditons le plus directement ; elle a fait le travail dur et soigneux pour que vous n’ayez pas à le faire.
Sa conception s’appuie sur quatre principes de durcissement qui valent la peine d’être compris avant de lui confier un nœud :
- Simplicité — seuls les services que vous activez sont installés ; moins de surface, moins de surprises.
- Intégrité — Nix spécifie les dépendances exactes et les paquets en amont sont vérifiés cryptographiquement.
- Moindre privilège — chaque service tourne isolé avec des permissions minimales via des restrictions systemd, une liste blanche RPC, et l’isolation par espace de noms réseau.
- Défense en profondeur — prise en charge du noyau durci, espaces de noms Linux, un pare-feu dbus, et le filtrage d’appels système seccomp-bpf.
Dès le départ, le préréglage secure-node.nix de nix-bitcoin active bitcoind et route les connexions sortantes par Tor, et il peut publier des services onion pour les composants que vous voulez joignables. Le catalogue de modules qu’il livre est large : bitcoind, electrs et Fulcrum (serveurs Electrum), l’explorateur de mempool, c-Lightning et LND (avec des greffons, Ride The Lightning, Lightning Loop/Pool), BTCPay Server, JoinMarket, Liquid, plus des utilitaires comme un utilisateur operator non-root, nodeinfo, et les sauvegardes Duplicity. Vous activez ce dont vous avez besoin et ignorez le reste.
Un squelette de configuration.nix de départ
Ci-dessous se trouve un squelette illustratif, découpé en pièces que vous assembleriez en un seul configuration.nix. Traitez-le comme un échafaudage pédagogique, pas un déploiement de production à copier-coller — épinglez vos versions, lisez la documentation en amont, et testez sur du matériel que vous pouvez vous permettre d’effacer. Recoupez toujours les noms d’options avec les versions actuelles de nix-bitcoin et de NixOS, car les options de module changent bel et bien entre les versions.
1. Imports et durcissement de base (nix-bitcoin)
imports = [./hardware-configuration.nix<nix-bitcoin/modules/modules.nix><nix-bitcoin/modules/presets/secure-node.nix><nix-bitcoin/modules/presets/hardened.nix>];
2. La couche Bitcoin : bitcoind + electrs
services.bitcoind.enable = true;— activé par le préréglage secure-node ; validation complète.services.bitcoind.prune = 0;— gardez la chaîne complète pour electrs (fixez une valeur comme100000MiB seulement si vous devez élaguer).services.electrs.enable = true;— votre propre serveur Electrum pour que les portefeuilles ne fuient jamais d’adresses à un tiers.nix-bitcoin.onionServices.bitcoind.public = true;— accepter les pairs entrants par Tor.
3. Confidentialité : Tor
services.tor.enable = true;services.tor.client.enable = true;— ouvre le proxy SOCKS local (par défaut 9050) pour que d’autres services puissent composer vers l’extérieur par Tor.- Le préréglage secure-node de nix-bitcoin câble déjà bitcoind et Lightning par Tor et gère les services onion v3 pour vous.
4. IA locale : un serveur Ollama
services.ollama.enable = true;— exécute le démon Ollama comme un service systemd, lié àlocalhost:11434par défaut (privé à la machine).services.ollama.acceleration = "cuda";— utilisez"rocm"pour AMD, ou omettez / fixezfalsepour CPU seulement.services.ollama.loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b" ];— tire les modèles au démarrage via unollama-model-loader.servicegénéré.services.open-webui.enable = true;— interface navigateur optionnelle surlocalhost:8080si vous préférez le clavardage à la ligne de commande. (llama.cpp est l’alternative plus légère si vous voulez piloter vous-même des modèles GGUF.)
5. Communications : un relais Nostr personnel
services.nostr-rs-relay.enable = true;— le relais Rust de scsibug / gheartsfield, persistant les événements en SQLite.services.nostr-rs-relay.settings.info.name = "my-sovereign-relay";services.nostr-rs-relay.settings.info.description = "Personal relay";- Fixez le port d’écoute explicitement (le module expose une option
port; nostr-rs-relay utilise couramment 8080) et placez-le derrière un service onion ou un proxy inverse pour l’accès distant.
6. Le compte opérateur et l’application
users.users.operator.extraGroups = [ "wheel" ];— donne à l’utilisateur operator non-root les droits d’administration pour les commandes quotidiennes commebitcoin-clietnodeinfo.system.stateVersion = "25.11";— épinglez la version que vous avez initialement installée.- Appliquez le tout avec
nixos-rebuild switch.
Remarquez ce qui vient de se passer : un nœud Bitcoin complet, votre propre serveur Electrum, Tor, un LLM local, et un relais Nostr — la colonne vertébrale d’un montage d’informatique souveraine — sont maintenant décrits dans un seul fichier auditable. C’est tout l’intérêt. Pour la carte plus large de ce que « l’informatique souveraine » signifie autour de ces services, l’introduction informatique souveraine 101 est une bonne lecture compagne.
Exploitation au quotidien
Vivre avec un nœud NixOS est une petite boucle répétable. Éditez configuration.nix, lancez nixos-rebuild test pour essayer le changement sans l’engager à l’amorçage, confirmez que tout est sain (la commande nodeinfo de nix-bitcoin est pratique ici), puis nixos-rebuild switch pour le rendre permanent. Validez le fichier dans un dépôt git privé pour que chaque changement de votre infrastructure soit consigné. Quand une mise à niveau se comporte mal, --rollback ou un choix au menu d’amorçage vous ramène au dernier bon état en moins d’une minute. Il n’y a aucune anxiété « qu’ai-je changé ? » parce que la différence est là, dans le contrôle de version.
Les sauvegardes deviennent aussi plus simples. Votre système est le fichier de config (minuscule, dans git). Votre état — le portefeuille, l’état de la chaîne, le SQLite du relais, les modèles de LLM — est la seule chose qui a besoin d’une vraie sauvegarde sur disque, et nix-bitcoin livre même Duplicity pour cela. Séparer le reproductible-depuis-la-config du doit-être-sauvegardé est l’une des habitudes les plus clarifiantes que cette approche enseigne.
Les compromis honnêtes, et à qui cela s’adresse
NixOS n’est pas exempt de friction. Le langage Nix est véritablement inhabituel — c’est un langage de configuration paresseux et fonctionnel, et il vous résistera au début. Les messages d’erreur peuvent être cryptiques. La documentation, quoiqu’elle s’améliore vite, est répartie entre le manuel, le wiki, la recherche d’options, et les fils communautaires de Discourse. Et les OS clés en main amèneront un débutant à un nœud fonctionnel des heures plus tôt. Rien de cela n’est un reproche à Umbrel ou Start9 ; ils résolvent un problème différent, tout aussi valide.
Tournez-vous vers NixOS quand vous avez dépassé le clic-opérations et que vous voulez que votre nœud, votre plomberie de confidentialité, votre IA locale et votre relais soient un seul artefact reproductible que vous contrôlez entièrement. Il récompense l’opérateur qui traite son montage comme de l’infrastructure-en-code : un pleb à l’aise avec le matériel, confortable dans un terminal, qui valorise de pouvoir reconstruire à partir de zéro, et veut toute la pile auditable. Si c’est vous, les communautés NixOS et nix-bitcoin ont déjà bâti la majeure partie du chemin ; vous ne faites que le parcourir. Pour la place de ceci dans la boîte à outils plus large, parcourez le pôle souveraineté, le travail d’IA locale dans la section IA, et les ressources Nostr.
Foire aux questions
NixOS est-il meilleur qu’Umbrel ou Start9 pour un nœud Bitcoin ?
Pas meilleur — différent. Umbrel et StartOS sont d’excellentes rampes d’accès rapides avec boutiques d’apps et tableaux de bord conviviaux, et ils sont le bon choix pour la plupart des gens qui débutent. NixOS se situe à un palier plus avancé : vous décrivez toute la machine dans un seul fichier déclaratif, obtenez des retours arrière atomiques et des reconstructions reproductibles, et gagnez une personnalisation totale, au prix d’une courbe d’apprentissage plus raide. Choisissez selon que vous voulez l’infrastructure-en-code ou la simplicité clés en main.
Dois-je apprendre le langage Nix avant de commencer ?
Vous avez besoin d’une familiarité fonctionnelle avec lui, mais pas de la maîtrise. nix-bitcoin est explicitement conçu pour que vous puissiez déployer un nœud sans expérience préalable de Nix en suivant ses exemples. Réalistement, prévoyez de passer quelques soirées à comprendre les bases de configuration.nix, le flux de travail nixos-rebuild, et comment les options sont fixées, avant d’être à l’aise de faire des changements avec confiance.
Contre quoi un retour arrière atomique me protège-t-il réellement ?
Contre le fait de vous « bricker » avec un mauvais changement. Chaque reconstruction devient une nouvelle « génération » dont le chargeur d’amorçage se souvient. Si une config ou une mise à niveau casse quelque chose, nixos-rebuild switch --rollback revient à la génération précédente pour tout le système, ou vous pouvez amorcer une génération plus ancienne directement depuis le menu d’amorçage si la machine ne démarre pas. C’est un bouton d’annulation au niveau du système d’exploitation pour votre nœud.
Puis-je vraiment exécuter bitcoind, electrs, Tor, un LLM et un relais Nostr sur une seule machine ?
Oui, avec un matériel adéquat. Un nœud d’archive complet plus electrs veut un NVMe rapide et confortablement plus que la taille actuelle de la chaîne en stockage ; un LLM local veut de la RAM et idéalement un GPU pour des vitesses utilisables. Ils coexistent bien sur NixOS parce que chacun est un service systemd isolé avec ses propres privilèges. Commencez avec des modèles plus petits (classe 3B) et montez en puissance à mesure que votre matériel le permet.
La partie IA locale fuit-elle quoi que ce soit vers le nuage ?
Par défaut, non. Le service Ollama se lie à localhost:11434, alors les modèles tournent entièrement sur votre propre machine sans aucun appel d’API externe. C’est l’attrait de l’IA locale pour les montages souverains : vos invites et vos données ne quittent jamais la machine. Si vous l’exposez délibérément à votre réseau local ou à Internet, vous assumez la responsabilité habituelle de sécuriser ce point d’accès.
Comment garder le système à jour sans le casser ?
Mettez à jour votre canal épinglé ou vos entrées de flake, puis lancez nixos-rebuild test pour essayer la nouvelle construction sans changer le défaut d’amorçage. Vérifiez que vos services sont sains, et seulement alors nixos-rebuild switch pour l’engager. Si quelque chose régresse, revenez en arrière. Garder configuration.nix dans git signifie que chaque mise à jour est une différence révisable et réversible plutôt qu’un saut dans le vide.
Sources et lectures complémentaires
- nixos.org — déclaratif, reproductible, fiable ; le modèle
nixos-rebuildet génération/retour arrière. - nix-bitcoin (fort-nix) — modules NixOS durcis en sécurité pour bitcoind, electrs, Tor, Lightning, et plus.
- wiki NixOS : Ollama — options
services.ollama, accélération, etloadModels.



