Pourquoi self-héberger n8n sur un VPS
Les workflows n8n manipulent souvent des secrets sensibles : tokens d'API, identifiants de bases de données, contenus de webhooks métier. En version cloud facturée à l'exécution, ces données transitent par une infrastructure que vous ne maîtrisez pas, et la facture grimpe avec le volume. Sur un VPS dédié, le moteur, la base de données interne et les credentials restent chez vous, sans limite d'exécutions, et vous choisissez le moment de chaque mise à jour.
Les bénéfices concrets d'un n8n auto-hébergé
- Exécutions illimitées : aucun plafond mensuel ni surcoût au workflow déclenché.
- Confidentialité des credentials et des charges utiles de webhooks, qui restent sur votre serveur.
- Accès complet aux nodes communautaires et à l'exécution de code personnalisé.
- Persistance maîtrisée des workflows et de l'historique dans des volumes que vous sauvegardez.
- Webhooks sur votre propre domaine, pratiques pour les intégrations entrantes.
- Coût prévisible : un seul prix VPS, indépendant du nombre d'automatisations.
Prérequis matériels et logiciels
n8n est raisonnablement léger. Comptez 1 à 2 vCPU et 2 Go de RAM pour démarrer, et 2 à 4 Go si vous exécutez des workflows lourds ou concurrents, ou si vous branchez une base PostgreSQL dédiée plutôt que SQLite. Prévoyez 5 à 10 Go de disque. Côté logiciel : Docker et Docker Compose, un sous-domaine (ex. n8n.votre-domaine.ma) pointant vers l'IP du VPS, et le port 443 ouvert pour HTTPS et les webhooks entrants.
Déployer n8n avec Docker et HTTPS
Préparer le VPS et Docker
En SSH, mettez à jour le système puis installez Docker via curl -fsSL https://get.docker.com | sh. Créez un dossier dédié : mkdir -p /opt/n8n && cd /opt/n8n.
Écrire le docker-compose.yml
Utilisez l'image n8nio/n8n, un volume ~/.n8n pour la persistance, et fixez N8N_HOST, WEBHOOK_URL=https://n8n.votre-domaine.ma/ ainsi que N8N_BASIC_AUTH_ACTIVE=true avec un identifiant et un mot de passe forts.
Brancher une base PostgreSQL (optionnel)
Pour un usage en production, ajoutez un service postgres au compose et pointez n8n dessus via les variables DB_TYPE=postgresdb et DB_POSTGRESDB_*, plus robuste que SQLite sous charge.
Lancer le conteneur
Exécutez docker compose up -d puis docker compose logs -f. n8n écoute en local sur 127.0.0.1:5678, non exposé directement, ce qui est volontaire.
Configurer le reverse proxy
Avec Caddy, une ligne suffit : n8n.votre-domaine.ma { reverse_proxy localhost:5678 }. Caddy obtient et renouvelle le certificat Let's Encrypt automatiquement.
Vérifier les webhooks
Créez un workflow de test avec un node Webhook, déclenchez-le depuis l'extérieur et confirmez que l'URL https://n8n.votre-domaine.ma/webhook/... répond bien à travers le proxy.
Pour des automatisations IA sans coût d'API externe, faites dialoguer n8n avec un conteneur Ollama sur le même VPS via le réseau Docker interne. Vous combinez orchestration et génération en local, et aucune donnée ne quitte votre serveur.
La documentation officielle
Pour la configuration avancée et les options propres à l'outil, référez-vous à la documentation officielle de n8n. Ce guide couvre la mise en ligne sur VPS ; la doc éditeur reste la référence pour les réglages fins, les mises à jour majeures et les cas d'usage spécifiques.