Skip to content

Commit d3042da

Browse files
committed
Update guide with Traefik instead of Caddy
1 parent a8f3e94 commit d3042da

File tree

1 file changed

+91
-139
lines changed
  • pages/bare_metal_cloud/virtual_private_servers/install_n8n_on_vps

1 file changed

+91
-139
lines changed

pages/bare_metal_cloud/virtual_private_servers/install_n8n_on_vps/guide.fr-fr.md

Lines changed: 91 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
title: "Installer N8N sur un VPS OVHcloud"
3-
excerpt: "Apprenez à héberger la plateforme d’automatisation N8N sur un VPS OVHcloud à l’aide de Docker et Caddy"
4-
updated: 2025-06-03
3+
excerpt: "Apprenez à héberger la plateforme d’automatisation N8N sur un VPS OVHcloud à l’aide de Docker et Traefik"
4+
updated: 2025-06-11
55
---
66

77
## Objectif
88

9-
Ce guide vous explique comment installer et exécuter [n8n](https://n8n.io), une plateforme open source d’automatisation de workflows, sur un VPS OVHcloud. L’installation s’appuie sur [Docker](https://www.docker.com/), avec le serveur [Caddy](https://caddyserver.com/) pour gérer automatiquement les certificats SSL.
9+
Ce guide vous explique comment installer et exécuter [n8n](https://n8n.io), une plateforme open source d’automatisation de workflows, sur un VPS OVHcloud. L’installation s’appuie sur [Docker](https://www.docker.com/), avec le serveur [Traefik](https://doc.traefik.io/traefik/ ) pour gérer automatiquement les certificats SSL.
1010

1111
## Prérequis
1212

@@ -50,7 +50,7 @@ Pour Debian (version 11 et 12) :
5050
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5151
```
5252

53-
Pour Ubuntu (version égale ou suppérieure à 22.04) :
53+
Pour Ubuntu (version égale ou supérieure à 22.04) :
5454

5555
```bash
5656
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
@@ -70,186 +70,138 @@ docker --version
7070
docker compose version
7171
```
7272

73-
### Récupérer le dépôt de configuration N8N + Caddy
73+
### Préparer la configuration Traefik + N8N
7474

75-
Clonez le dépôt Git officiel contenant une stack Docker prête à l’emploi :
75+
Créez un dossier de projet où résidera la stack Docker :
7676

7777
```bash
78-
git clone https://github.com/n8n-io/n8n-docker-caddy.git
79-
cd n8n-docker-caddy
78+
mkdir n8n-traefik && cd n8n-traefik
8079
```
8180

82-
> [!primary]
83-
>
84-
> Dans ce guide, le dossier cloné est aussi appelé dossier de données (`DATA_FOLDER`).
85-
86-
Créez les volumes nécessaires :
87-
88-
```bash
89-
sudo docker volume create caddy_data
90-
sudo docker volume create n8n_data
91-
```
92-
93-
### Ouvrir les ports nécessaires
81+
### Créer les fichiers de configuration.
9482

95-
Pour que votre VPS accepte les connexions web (HTTP et HTTPS), ouvrez les ports 80 et 443 via UFW (le pare-feu par défaut sur Debian/Ubuntu) :
83+
#### Fichier .env
9684

97-
```bash
98-
sudo ufw allow OpenSSH
99-
sudo ufw allow 80
100-
sudo ufw allow 443
101-
```
102-
103-
> [!primary]
104-
>
105-
> Si UFW n’est pas installé, vous pouvez l’installer et l’activer avec : `sudo apt install ufw -y`
85+
Ce fichier vous permet de définir les variables réutilisées dans le fichier docker-compose.yml.
10686

107-
Activez le pare-feu :
108-
109-
```bash
110-
sudo ufw enable
111-
```
112-
113-
Vérifiez l’état du pare-feu :
114-
115-
```bash
116-
sudo ufw status
117-
```
118-
119-
Vous devez voir une sortie similaire à ceci :
120-
121-
Status: active
122-
123-
To Action From
124-
-- ------ ----
125-
80 ALLOW Anywhere
126-
443 ALLOW Anywhere
127-
OpenSSH ALLOW Anywhere
128-
80 (v6) ALLOW Anywhere (v6)
129-
443 (v6) ALLOW Anywhere (v6)
130-
OpenSSH (v6) ALLOW Anywhere (v6)
131-
132-
### Configurer le fichier `.env`
133-
134-
Le fichier `.env` permet de définir les paramètres d’environnement nécessaires à N8N et Caddy. Pour le créer :
87+
Créez le fichier :
13588

13689
```bash
13790
nano .env
13891
```
13992

93+
Collez-y le contenu suivant :
94+
14095
```console
141-
DATA_FOLDER=/home/debian/n8n-docker-caddy
14296
DOMAIN_NAME=exemple.com
14397
SUBDOMAIN=n8n
144-
GENERIC_TIMEZONE=Europe/Paris
145-
98+
14699
```
147100

148-
Explications :
101+
Remplacez `exemple.com` par votre véritable nom de domaine et `[email protected]` par l'e-mail de votre choix.
149102

150-
- DATA_FOLDER : chemin absolu vers le dossier où vous avez cloné le dépôt Git (dossier de données).
151-
- DOMAIN_NAME : nom de domaine principal (déjà configuré dans votre zone DNS).
152-
- SUBDOMAIN : sous-domaine pointant vers votre VPS (ex : `n8n.exemple.com`).
153-
- GENERIC_TIMEZONE : fuseau horaire utilisé par défaut (important pour les automatisations).
154-
- SSL_EMAIL : e-mail utilisé pour générer le certificat SSL via Let's Encrypt.
103+
#### Fichier docker-compose.yml
155104

156-
Assurez-vous que votre sous-domaine pointe bien vers l’adresse IP de votre VPS dans la zone DNS. Pour plus de détails, consultez notre guide « [Éditer une zone DNS OVHcloud](/pages/web_cloud/domains/dns_zone_edit){.external} ».
105+
Ce fichier contient la définition des services N8N et Traefik. Il configure notamment :
157106

158-
Redéployez ensuite la stack Docker pour que la configuration soit prise en compte :
107+
- Le reverse proxy et la gestion SSL avec Traefik.
108+
- L’authentification de base pour accéder à N8N.
159109

160-
```bash
161-
sudo docker compose down
162-
sudo docker compose up -d
163-
```
164-
165-
### Définir le domaine dans Caddy
166-
167-
Vous avez deux manières de définir le domaine dans le fichier `Caddyfile` :
168-
169-
- La modification manuelle est simple et rapide si vous ne comptez faire qu'une seule installation ou modification.
170-
- La génération dynamique via un script est recommandée si vous gérez plusieurs environnements (développement, production, etc.), ou si vous souhaitez automatiser les déploiements à partir d’un fichier `.env`. Cela permet d’éviter les erreurs manuelles et de centraliser la configuration.
171-
172-
#### Option 1 : Modifier manuellement le fichier `Caddyfile`
173110

174-
Ouvrez le fichier CaddyFile :
111+
Créez le fichier :
175112

176113
```bash
177-
nano caddy_config/Caddyfile
114+
nano docker-compose.yml
178115
```
179116

180-
Remplacez le contenu du fichier par :
117+
Collez le contenu suivant :
181118

182119
```console
183-
n8n.<domain>.com {
184-
reverse_proxy n8n:5678 {
185-
flush_interval -1
186-
}
187-
}
188-
```
189-
190-
Remplacez `<domain>` par votre véritable nom de domaine.
120+
version: "3.8"
121+
122+
services:
123+
traefik:
124+
image: traefik:v2.11
125+
container_name: traefik
126+
restart: always
127+
command:
128+
- "--api.insecure=true"
129+
- "--providers.docker=true"
130+
- "--entrypoints.web.address=:80"
131+
- "--entrypoints.websecure.address=:443"
132+
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
133+
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
134+
- "--certificatesresolvers.myresolver.acme.email=${EMAIL}"
135+
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
136+
ports:
137+
- "80:80"
138+
- "443:443"
139+
volumes:
140+
- "/var/run/docker.sock:/var/run/docker.sock:ro"
141+
- "./letsencrypt:/letsencrypt"
142+
labels:
143+
- "traefik.http.routers.http-catch.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)"
144+
- "traefik.http.routers.http-catch.entrypoints=web"
145+
- "traefik.http.routers.http-catch.middlewares=redirect-to-https"
146+
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
147+
148+
n8n:
149+
image: n8nio/n8n
150+
container_name: n8n
151+
restart: always
152+
environment:
153+
- N8N_BASIC_AUTH_ACTIVE=true
154+
- N8N_BASIC_AUTH_USER=admin
155+
- N8N_BASIC_AUTH_PASSWORD=admin123
156+
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
157+
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
158+
labels:
159+
- "traefik.enable=true"
160+
- "traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)"
161+
- "traefik.http.routers.n8n.entrypoints=websecure"
162+
- "traefik.http.routers.n8n.tls.certresolver=myresolver"
163+
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
164+
volumes:
165+
- n8n_data:/home/node/.n8n
166+
167+
volumes:
168+
n8n_data:
169+
```
170+
171+
> [!warning]
172+
>
173+
> Par défaut, l’utilisateur et le mot de passe sont définis sur admin / admin123. Cette méthode n’est pas activée dans toutes les versions de N8N. Si vous souhaitez l’utiliser malgré tout, pensez à modifier ces valeurs dans le fichier docker-compose.yml avant de lancer la stack, et utilisez un mot de passe fort.
191174
192-
Relancez Docker :
175+
### Préparer le dossier des certificats SSL
193176

194-
```bash
195-
sudo docker compose down
196-
sudo docker compose up -d
197-
```
177+
Traefik stocke les certificats générés par Let's Encrypt dans un fichier nommé acme.json. Ce fichier doit exister avant le lancement et avoir des permissions strictes.
198178

199-
#### Option 2 : Générer dynamiquement le fichier `Caddyfile`
200-
201-
Créez un fichier à la racine de votre dossier de données (`n8n-docker-caddy` dans notre exemple) :
179+
Créez le dossier :
202180

203181
```bash
204-
nano generate-caddyfile.sh
205-
```
206-
207-
Collez le contenu suivant :
208-
209-
```console
210-
#!/bin/bash
211-
212-
# Charge les variables depuis le fichier .env
213-
set -a
214-
source .env
215-
set +a
216-
217-
# Génére dynamiquement le fichier Caddyfile
218-
cat <<EOF > caddy_config/Caddyfile
219-
${SUBDOMAIN}.${DOMAIN_NAME} {
220-
reverse_proxy n8n:5678 {
221-
flush_interval -1
222-
}
223-
}
224-
EOF
225-
226-
echo "Fichier Caddyfile généré avec succès."
182+
mkdir letsencrypt
227183
```
228184

229-
Rendez le script exécutable :
185+
Créez le fichier vide :
230186

231187
```bash
232-
chmod +x generate-caddyfile.sh
188+
touch letsencrypt/acme.json
189+
chmod 600 letsencrypt/acme.json
233190
```
234191

235-
Puis lancez-le :
192+
### Démarrer les services
236193

237-
```bash
238-
./generate-caddyfile.sh
239-
```
240-
241-
Relancez Docker :
194+
Lancez la stack avec Docker Compose :
242195

243196
```bash
244-
sudo docker compose down
245-
sudo docker compose up -d
197+
docker compose up -d
246198
```
247199

248-
> [!primary]
249-
>
250-
> Le fichier `caddy_config/Caddyfile` sera écrasé à chaque exécution du script. Ne le mofifiez pas manuellement si vous choisissez cette option. À la place, ajoutez un commentaire du type : `# Ce fichier est généré automatiquement par le script generate-caddyfile.sh`.
200+
### Configuration DNS
201+
202+
Assurez-vous que votre sous-domaine (ex : n8n.exemple.com) pointe bien vers l’adresse IP de votre VPS dans la zone DNS. Pour plus de détails, consultez notre guide « [Éditer une zone DNS OVHcloud](/pages/web_cloud/domains/dns_zone_edit){.external} ».
251203

252-
#### Accéder à N8N
204+
### Accéder à l’interface N8N
253205

254206
Accédez à N8N dans un navigateur via l'URL `https://n8n.exemple.com/`. Remplacez `n8n.exemple.com` par le domaine réel que vous avez défini. La page suivante s'affiche.
255207

@@ -259,7 +211,7 @@ Une fois la page chargée, vous serez invité à créer le premier utilisateur a
259211

260212
### Conclusion
261213

262-
Vous disposez désormais d’une instance N8N opérationnelle et sécurisée sur votre VPS OVHcloud, avec une gestion automatique des certificats SSL grâce à Caddy. Pour aller plus loin, consultez la [documentation officielle](https://docs.n8n.io/) de N8N pour créer vos premiers workflows.
214+
Vous disposez désormais d’une instance N8N opérationnelle et sécurisée sur votre VPS OVHcloud, avec une gestion automatique des certificats SSL grâce à Traefik. Pour aller plus loin, consultez la [documentation officielle](https://docs.n8n.io/) de N8N pour créer vos premiers workflows.
263215

264216
## Aller plus loin
265217

0 commit comments

Comments
 (0)