Pourquoi Nixos
Liberté totale
Votre serveur NixOS vous appartient, utilisez nos modules préconfigurés ou configurez tout vous-même, sans aucun enfermement.
Liberté totale : aucun enfermement, jamais
Certaines solutions d'hébergement vous enferment dans leur écosystème. Si vous voulez sortir du cadre, il faut tout reconstruire. Avec notre serveur NixOS, c'est l'inverse : nos modules préconfigurés sont une surcouche de confort au-dessus de NixOS standard. Vous pouvez les utiliser, les ignorer, ou mixer les deux. Le serveur reste le vôtre.
Votre fichier de configuration, vos règles
Le fichier
.server-config.nix est un module NixOS classique. Tout ce que NixOS sait faire, vous pouvez l'écrire dedans. Nos options server.* simplifient la vie, mais elles ne remplacent pas NixOS, elles s'ajoutent par-dessus. Vous gardez un accès complet à l'ensemble des 120 000+ paquets et des milliers d'options du système.Exemple concret : installer n8n soi-même
Imaginons que vous vouliez installer n8n sans utiliser notre module préconfigé. Voici ce que vous écririez dans
.server-config.nix :# .server-config.nix, installation manuelle de n8n
{ config, pkgs, ... }:
{
# Activer n8n avec les options NixOS standard
services.n8n = {
enable = true;
environment = {
N8N_PORT = "5678";
N8N_HOST = "127.0.0.1";
};
};
# Base de données PostgreSQL
services.postgresql = {
enable = true;
ensureDatabases = [ "n8n" ];
ensureUsers = [{
name = "n8n";
ensureDBOwnership = true;
}];
};
# Reverse proxy Caddy
services.caddy.virtualHosts."n8n.mondomaine.com".extraConfig = ''
reverse_proxy 127.0.0.1:5678
'';
}
Ça fonctionne. L'application démarre, la base de données est créée, le reverse proxy redirige le trafic. Vous avez un n8n opérationnel.
Maintenant, comparez avec notre module
Avec notre système, la même installation se résume à une seule ligne dans
.server-config.nix :server.n8n = {};
Une ligne. Le résultat ? Le même n8n, mais avec tout ce qu'il faut pour un environnement de production.
Ce qu'une ligne de configuration inclut
Derrière
server.n8n = {};, notre module configure automatiquement tout ce qu'un administrateur expérimenté mettrait en place manuellement, mais que la configuration NixOS de base ne fait pas pour vous.Base de données optimisée
PostgreSQL configuré avec un utilisateur dédié, les bonnes permissions, et le stockage binaire sur le système de fichiers. Pas de SQLite en production.
Isolation de sécurité
Un utilisateur système dédié, un groupe séparé, des permissions restrictives sur les fichiers. Les administrateurs accèdent aux données via un groupe, sans être root.
Reverse proxy durci
Caddy configuré avec HTTPS automatique, health checks, compression, logging structuré et en-têtes de sécurité. Pas juste un
reverse_proxy brut.Outils en ligne de commande
Le service a accès à curl, jq, bash, grep et d'autres utilitaires dans son PATH. Indispensable pour les nœuds "Execute Command" de n8n, mais absent par défaut.
Dossier partagé
Un répertoire
/var/lib/n8n/shared avec un lien symbolique ~/n8n pour chaque administrateur. Échangez des fichiers avec n8n sans manipuler les permissions manuellement.Choix du canal NixOS
Choisissez la version stable ou unstable de n8n, ou épinglez un commit précis de nixpkgs, par application, sans affecter le reste du serveur. Impossible avec une configuration NixOS basique.
Le meilleur des deux mondes
Vous n'avez pas à choisir entre nos modules et NixOS standard. Les deux coexistent dans le même fichier. Utilisez
server.n8n = {}; pour n8n, et configurez un autre service manuellement juste en dessous. C'est la force de NixOS : tout est un module, tout se compose.# .server-config.nix, mixer les deux approches
{ config, pkgs, ... }:
{
# Applications préconfigurées (une ligne chacune)
server.n8n = {};
server.umami = {};
server.forgejo = { disableRegistration = true; };
# Service configuré manuellement avec NixOS standard
services.grafana = {
enable = true;
settings.server.http_port = 3000;
};
services.caddy.virtualHosts."grafana.mondomaine.com".extraConfig = ''
reverse_proxy 127.0.0.1:3000
'';
# Paquets système supplémentaires
environment.systemPackages = with pkgs; [ htop ripgrep ];
}
Comparaison : module préconfigé vs. configuration manuelle
| Critère | Configuration manuelle | Module server.* |
|---|---|---|
| Lignes de configuration | 20-50 lignes par application | 1 ligne |
| Base de données | À configurer soi-même | PostgreSQL automatique |
| HTTPS | À configurer soi-même | Automatique via Caddy |
| Utilisateur système | À créer soi-même | Créé avec les bonnes permissions |
| Health checks | Absents | Intégrés au reverse proxy |
| Logging | Configuration par défaut | Structuré et unifié |
| Outils CLI dans le service | Absents du PATH | curl, jq, bash... inclus |
| Choix de version | Celle du système | Par application (stable/unstable) |
| Backup | À configurer soi-même | Intégré au système de sauvegarde |
| Provisioning | Manuel | Automatisé (secrets, init) |
| Intégration inter-apps | Câblage manuel | Les apps se connaissent entre elles |
| Accès IA | Inexistant | Claude pilote l'app dès le 1er jour |
| Compétence requise | Administration NixOS | Aucune, décommenter une ligne |
Des applications qui se connaissent entre elles
Installer une app isolée, c'est facile. Mais sur un vrai serveur, les applications doivent collaborer. Avec nos modules, chaque app sait qu'elle fait partie d'un ensemble, et se configure en conséquence.
Configuration partagée automatique
Le domaine, le protocole HTTPS, les utilisateurs admin, chaque app hérite de la configuration globale du serveur. Changez le domaine une fois, toutes les apps suivent. Pas de valeurs copiées-collées à synchroniser manuellement.
Secrets et authentification câblés
Les secrets sont générés, chiffrés et distribués automatiquement au premier démarrage. Forgejo crée un token API que Woodpecker récupère pour s'authentifier. Vous activez les deux apps, elles se connectent toutes seules.
SMTP partagé
Configurez le relais mail une fois dans
server.smtp-relay. Toutes les apps qui envoient des emails (n8n, Forgejo, Listmonk, Nextcloud...) l'utilisent automatiquement. Pas de formulaire SMTP à remplir dans chaque interface d'admin.Base de données unifiée
PostgreSQL est partagé entre toutes les apps, avec un utilisateur et une base dédiés par application. Les permissions sont gérées au niveau système, pas de mot de passe de base de données qui traîne dans un fichier
.env.Prêt pour l'IA dès la première ligne
C'est l'avantage le plus difficile à reproduire manuellement, et le plus puissant. Chaque application préconfigurée est immédiatement accessible par une intelligence artificielle. Pas d'intégration à bricoler, pas d'API à connecter. Vous activez l'app, l'IA peut la piloter.
Connecteur MCP automatique
Quand vous activez n8n, le système enregistre automatiquement un connecteur MCP (Model Context Protocol) dans la configuration de Claude. L'IA peut créer des workflows, lire les exécutions, déclencher des automatisations, sans que vous ayez touché à une seule ligne de configuration API.
Accès en lecture à toutes les données
Le serveur MCP intégré donne à Claude un accès en lecture seule aux bases de données de toutes vos apps, aux fichiers de configuration, aux logs et à l'état des services. L'IA peut diagnostiquer un problème, analyser vos données ou auditer votre serveur sans SSH.
Workflows IA pré-installés
Des workflows de diagnostic sont déployés et activés automatiquement dans n8n. Ils testent la santé du serveur, vérifient les accès réseau et valident les permissions. Base prête à étendre avec vos propres automatisations IA.
L'IA voit l'ensemble du serveur
Grâce aux intégrations inter-apps, Claude ne voit pas des applications isolées, il voit un système complet. Il peut interroger la base de Forgejo, déclencher un workflow n8n, vérifier les analytics Umami et redémarrer un service, le tout dans une seule conversation.
Ce que ça donne concrètement
Voici la différence entre installer n8n manuellement et l'activer via notre module, du point de vue de l'IA :
| Étape | Installation manuelle | Module server.n8n = {}; |
|---|---|---|
| Activer n8n | 20+ lignes de config | 1 ligne |
| Créer un compte admin | Manuellement via l'interface web | Automatique au provisioning |
| Générer une clé API | Manuellement via l'interface web | Automatique, stockée chiffrée |
| Connecter Claude à n8n | Installer le MCP, trouver la clé, configurer ~/.mcp.json à la main | Automatique, Claude voit n8n immédiatement |
| Accès IA aux bases de données | Créer un rôle PostgreSQL read-only, configurer les permissions | Intégré, rôle mcp-server avec lecture sur toutes les apps |
| Workflows de diagnostic | Les écrire soi-même | Pré-installés et activés |
| Orchestration multi-apps par l'IA | Câbler chaque connecteur un par un | Toutes les apps sont visibles dans le même contexte IA |
Pourquoi c'est important
La liberté de configurer votre serveur comme vous l'entendez n'est pas un détail technique, c'est une garantie. Vous n'êtes pas enfermé dans notre système. Si demain vous voulez reprendre la main sur une application, vous le pouvez. Si vous voulez ajouter un service que nous ne proposons pas encore, vous le pouvez. Et si nos modules vous conviennent, vous gagnez des heures de configuration, une intégration entre vos apps, et un serveur pilotable par IA, avec une seule ligne. C'est ça, un outil qui respecte ses utilisateurs.
Un serveur puissant, sans compromis sur la liberté
Réservez un appel de 30 minutes pour découvrir un hébergement qui ne vous enferme jamais. Sans engagement.