n8n relie vos outils entre eux : une commande arrive, un message part sur votre messagerie, une ligne s'ajoute à votre tableur, un agent IA prépare la réponse. Installé sur votre propre VPS SaharaCloud, n8n tourne en continu, vos workflows et vos identifiants restent sur votre serveur, et vous réglez le serveur en dinars.
Ce guide reprend les commandes que nous avons exécutées le 22 octobre 2026 sur un VPS Découverte (Ubuntu 24.04, Docker 29.9, n8n 2.44.6) : installation, HTTPS automatique, premier webhook, redémarrage du serveur et mise à jour.
Ce qu'il vous faut
- Un VPS SaharaCloud sous Ubuntu 24.04. Le VPS Découverte (2 vCPU, 4 Go de RAM) suffit pour démarrer : pendant notre test, n8n utilisait environ 500 Mo de mémoire. Voir les VPS.
- Un accès SSH root à votre VPS. Si c'est votre première connexion, suivez d'abord notre guide connexion SSH sécurisée.
- Un nom de domaine pour l'adresse de n8n, par exemple
n8n.votredomaine.com. HTTPS est obligatoire pour l'éditeur et pour les webhooks. Rechercher un domaine.
Pointez un sous-domaine vers votre VPS
Dans la zone DNS de votre domaine, créez un enregistrement A :
| Type | Nom | Valeur |
|---|---|---|
| A | n8n |
l'adresse IPv4 de votre VPS |
Si votre domaine est chez SaharaCloud, la zone DNS se gère depuis votre espace client. Si vous avez activé le pare-feu du VPS dans votre espace client, autorisez en entrée les ports TCP 22, 80 et 443 : le port 80 sert à obtenir le certificat HTTPS.
Installez Docker
Connecté en root, ajoutez le dépôt officiel de Docker puis installez Docker Engine et Docker Compose :
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Vérifiez l'installation :
docker --version
docker compose version
Préparez n8n
Créez un dossier pour n8n et son fichier de réglages :
mkdir n8n-compose
cd n8n-compose
mkdir local-files
nano .env
Collez ces lignes en remplaçant le domaine et l'adresse e-mail par les vôtres :
DOMAIN_NAME=votredomaine.com
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Africa/Algiers
SSL_EMAIL=vous@votredomaine.com
Créez ensuite le fichier compose.yaml avec nano compose.yaml et collez ce contenu. Il démarre n8n et Traefik, qui obtient et renouvelle le certificat HTTPS :
services:
traefik:
image: "traefik"
restart: always
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
n8n:
image: n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
labels:
- traefik.enable=true
- traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
- traefik.http.routers.n8n.tls=true
- traefik.http.routers.n8n.entrypoints=web,websecure
- traefik.http.routers.n8n.tls.certresolver=mytlschallenge
- traefik.http.middlewares.n8n.headers.SSLRedirect=true
- traefik.http.middlewares.n8n.headers.STSSeconds=315360000
- traefik.http.middlewares.n8n.headers.browserXSSFilter=true
- traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
- traefik.http.middlewares.n8n.headers.forceSTSHeader=true
- traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
- traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.n8n.headers.STSPreload=true
- traefik.http.routers.n8n.middlewares=n8n@docker
environment:
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- N8N_WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- TZ=${GENERIC_TIMEZONE}
- N8N_RESTRICT_FILE_ACCESS_TO=/files
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
volumes:
n8n_data:
traefik_data:
Ce fichier reprend celui de la documentation officielle n8n, sans l'option qui ouvre le tableau de bord de Traefik sans mot de passe. n8n n'écoute que sur 127.0.0.1 : seul Traefik, en HTTPS, est accessible depuis Internet.
Démarrez n8n et créez votre compte
docker compose up -d
docker compose ps
Après une minute environ, ouvrez https://n8n.votredomaine.com. Le certificat HTTPS est obtenu automatiquement et l'adresse en http:// redirige vers https://.
Créez immédiatement le compte propriétaire. Tant qu'il n'existe pas, la première personne qui ouvre l'adresse peut le créer à votre place.
Votre premier workflow et ses webhooks
Dans l'éditeur, ajoutez un nœud Webhook, puis les actions à enchaîner. Une fois le workflow publié, son adresse de production a la forme https://n8n.votredomaine.com/webhook/votre-chemin : vous pouvez la donner à votre boutique, à un formulaire ou à un autre service.
Dans notre test, ce workflow répondait depuis l'extérieur à l'heure d'Alger :
curl -X POST https://n8n.votredomaine.com/webhook/nouvelle-commande \
-H "Content-Type: application/json" -d '{"produit":"Sahara Pro"}'
Redémarrage, mises à jour et sauvegardes
- Redémarrage du serveur : n8n et Traefik repartent seuls grâce à
restart: always. Nous l'avons vérifié après un redémarrage complet du VPS. - Mise à jour de n8n : avant une mise à jour, créez un instantané du VPS depuis votre espace client. Puis, dans le dossier
n8n-compose:
docker compose pull
docker compose up -d
- Vos données (workflows, identifiants chiffrés, clé de chiffrement) sont dans le volume Docker
n8n_data. Elles sont conservées lors d'undocker compose downpuisup. Ne supprimez pas ce volume. - Sauvegardes : les instantanés du VPS sont créés à la demande. Faites-en un avant chaque changement important.
Sécurité : les bons réflexes
- Gardez le port
5678lié à127.0.0.1, comme dans le fichier ci-dessus. - Docker publie ses ports sans passer par les règles
ufwdu serveur, comme l'indique la documentation Docker. Pour filtrer le trafic, utilisez plutôt le pare-feu du VPS dans votre espace client. - Mettez Ubuntu à jour régulièrement avec
apt update && apt upgrade. - Choisissez un mot de passe fort pour le compte propriétaire n8n et ne partagez pas l'accès root.
L'édition auto-hébergée de n8n est publiée sous la Sustainable Use License. Elle couvre l'usage pour votre propre activité : lisez-la si vous comptez proposer n8n à vos clients.
Et si vous voulez aussi un assistant IA ?
Le même VPS peut accueillir OpenClaw, un assistant IA open source que vous hébergez vous-même. Pendant notre test, n8n et OpenClaw tournaient ensemble sur un VPS Découverte. Héberger OpenClaw.