n8n est le genre d'outil que vous commencez à utiliser légèrement, puis à travers lequel vous routez discrètement la moitié de vos opérations. À ce moment-là, « il tourne sur le siège cloud de quelqu'un, facturé à l'exécution, avec mes clés API vivant sur leurs serveurs » commence à sembler moins génial. L'auto-hébergement corrige les trois — coût fixe, pas de plafond d'exécution, et vos clés restent sur une machine que vous possédez. Avec Docker, c'est l'affaire de quinze minutes.
De combien de serveur il a réellement besoin
Des chiffres honnêtes d'abord, pour ne pas acheter trop ou trop peu :
- ~2 Go de RAM est le point idéal — n8n plus sa base de données Postgres plus des workflows normaux y sont confortables.
- 1 Go fonctionne si vos workflows sont légers, mais vous le remarquerez sur de plus grosses exécutions.
- 4 Go si vous faites des exécutions parallèles lourdes ou poussez de gros payloads.
n8n n'est pas gourmand en CPU au repos ; il pointe pendant les exécutions. Une machine à 2 cœurs convient à la plupart des configurations. (Plus sur l'adéquation specs/charge dans le guide de dimensionnement.)
La configuration Docker
Sur une machine Ubuntu/Debian neuve, installez Docker :
curl -fsSL https://get.docker.com | sudo sh
Créez un dossier et un docker-compose.yml — n8n avec un volume persistant et Postgres :
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=db
- DB_POSTGRESDB_PASSWORD=change-me
volumes:
- ./n8n-data:/home/node/.n8n
depends_on: [db]
db:
image: postgres:16
restart: always
environment:
- POSTGRES_PASSWORD=change-me
- POSTGRES_DB=n8n
volumes:
- ./db-data:/var/lib/postgresql/data
sudo docker compose up -d
Deux choses à souligner : les volumes (n8n-data, db-data) sont ce qui garde vos workflows en vie à travers les redémarrages et les mises à niveau — ne les sautez pas. Et n8n est lié à 127.0.0.1, pas 0.0.0.0 — il n'est pas exposé directement à Internet. C'est délibéré ; l'étape suivante gère l'accès en toute sécurité.
Accès : HTTPS ou un tunnel
- URL publique (nécessaire pour les nœuds OAuth et les webhooks) : pointez un sous-domaine vers le serveur et faites tourner un reverse proxy (Caddy est le moins coûteux — HTTPS automatique) devant
127.0.0.1:5678. C'est là qu'une offre à IP dédiée convient, puisque vous contrôlez les ports et le DNS. - Juste pour vous, sans domaine : sautez le proxy et atteignez-le via un tunnel SSH —
ssh -L 5678:127.0.0.1:5678 user@server, puis ouvrezlocalhost:5678. Fonctionne très bien sur un VPS NAT.
Verrouillez-le et gardez-le debout
n8n détient vos clés API et vos identifiants, la machine doit donc être bien serrée : faites la checklist de sécurité (clés SSH, pare-feu, pas de connexion par mot de passe) avant d'y mettre de vrais identifiants. restart: always dans le fichier compose signifie déjà que Docker relance n8n après un plantage ou un redémarrage — votre disponibilité est gérée.
En vaut-il la peine ?
Soyez honnête avec vous-même sur le volume. Si vous faites tourner des automatisations en permanence, l'auto-hébergement l'emporte sur le coût (fixe vs à l'exécution) et supprime tout plafond de workflow/exécution. Si vous déclenchez quelques flux par mois, un siège hébergé est moins de tracas. Mais l'argument du contrôle tient de toute façon : vos workflows, vos données, vos clés — sur votre serveur, pas loués. Pour la plupart des gens qui sont devenus sérieux avec n8n, c'est le facteur décisif.
Une machine de 2 Go, un fichier compose, un domaine (ou un tunnel), et vous faites tourner votre propre hub d'automatisation — payable en crypto sans KYC, en ligne en quelques minutes.
Configuration prête à l'emploi : voir VPS pour n8n — l'offre recommandée et un déploiement crypto d'une minute.
Commentaires
Pas encore de commentaires. Soyez le premier.