Skip to content

Commit a8f3e94

Browse files
committed
First version
1 parent 3ac2f58 commit a8f3e94

File tree

4 files changed

+274
-0
lines changed

4 files changed

+274
-0
lines changed
Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
---
2+
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
5+
---
6+
7+
## Objectif
8+
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.
10+
11+
## Prérequis
12+
13+
- Disposer d'un [VPS](https://www.ovhcloud.com/fr/vps/) fonctionnel (Debian 11 ou supérieur recommandé)
14+
- Disposer d'un nom de domaine
15+
- Disposer d'un accès administrateur (sudo) via SSH à votre serveur
16+
17+
## En pratique
18+
19+
### Se connecter à votre VPS
20+
21+
Ouvrez un terminal et connectez-vous à votre VPS avec la commande suivante (en remplaçant `IP_DU_VPS` par la véritable IP) :
22+
23+
```bash
24+
ssh <user>@IP_VPS
25+
```
26+
27+
### Installer Docker et Docker Compose
28+
29+
Pour déployer N8N via Docker sur un VPS OVHcloud, Docker et Docker Compose doivent être installés. Cette méthode est compatible avec la majorité des distributions proposées par OVHcloud (Debian 11, Debian 12, Ubuntu 22.04...).
30+
31+
#### Étape 1 - Mettez le système à jour
32+
33+
```bash
34+
sudo apt update && sudo apt upgrade -y
35+
```
36+
37+
#### Étape 2 - Ajouter la clé GPG officielle de Docker
38+
39+
```bash
40+
sudo apt install -y ca-certificates curl gnupg
41+
sudo install -m 0755 -d /etc/apt/keyrings
42+
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
43+
```
44+
45+
#### Étape 3 - Ajouter le dépôt Docker
46+
47+
Pour Debian (version 11 et 12) :
48+
49+
```bash
50+
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
51+
```
52+
53+
Pour Ubuntu (version égale ou suppérieure à 22.04) :
54+
55+
```bash
56+
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
57+
```
58+
59+
#### Étape 4 - Installer Docker Engine et Docker Compose Plugin
60+
61+
```bash
62+
sudo apt update
63+
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
64+
```
65+
66+
#### Étape 5 - Vérifier que Docker et Docker Compose fonctionnent
67+
68+
```bash
69+
docker --version
70+
docker compose version
71+
```
72+
73+
### Récupérer le dépôt de configuration N8N + Caddy
74+
75+
Clonez le dépôt Git officiel contenant une stack Docker prête à l’emploi :
76+
77+
```bash
78+
git clone https://github.com/n8n-io/n8n-docker-caddy.git
79+
cd n8n-docker-caddy
80+
```
81+
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
94+
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) :
96+
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`
106+
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 :
135+
136+
```bash
137+
nano .env
138+
```
139+
140+
```console
141+
DATA_FOLDER=/home/debian/n8n-docker-caddy
142+
DOMAIN_NAME=exemple.com
143+
SUBDOMAIN=n8n
144+
GENERIC_TIMEZONE=Europe/Paris
145+
146+
```
147+
148+
Explications :
149+
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.
155+
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} ».
157+
158+
Redéployez ensuite la stack Docker pour que la configuration soit prise en compte :
159+
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`
173+
174+
Ouvrez le fichier CaddyFile :
175+
176+
```bash
177+
nano caddy_config/Caddyfile
178+
```
179+
180+
Remplacez le contenu du fichier par :
181+
182+
```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.
191+
192+
Relancez Docker :
193+
194+
```bash
195+
sudo docker compose down
196+
sudo docker compose up -d
197+
```
198+
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) :
202+
203+
```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."
227+
```
228+
229+
Rendez le script exécutable :
230+
231+
```bash
232+
chmod +x generate-caddyfile.sh
233+
```
234+
235+
Puis lancez-le :
236+
237+
```bash
238+
./generate-caddyfile.sh
239+
```
240+
241+
Relancez Docker :
242+
243+
```bash
244+
sudo docker compose down
245+
sudo docker compose up -d
246+
```
247+
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`.
251+
252+
#### Accéder à N8N
253+
254+
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.
255+
256+
![Install N8N VPS](images/setup_n8n.png){.thumbnail}
257+
258+
Une fois la page chargée, vous serez invité à créer le premier utilisateur administrateur de votre instance N8N via le formulaire de configuration.
259+
260+
### Conclusion
261+
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.
263+
264+
## Aller plus loin
265+
266+
[Éditer une zone DNS OVHcloud](/pages/web_cloud/domains/dns_zone_edit){.external}
267+
268+
Pour des prestations spécialisées (référencement, développement, etc), contactez les [partenaires OVHcloud](https://partner.ovhcloud.com/fr-ca/directory/)
269+
270+
Échangez avec notre [communauté d'utilisateurs](/links/community).
34.6 KB
Loading
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
id: a904b0cd-5ee8-4b12-b8d6-eab2c130d2e2
2+
full_slug: vps-install-n8n
3+
reference_category: bare-metal-cloud-virtual-private-servers-tutorials

pages/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,7 @@
278278
+ [How to migrate a website from a VPS to a Dedicated Server or a Public Cloud instance](bare_metal_cloud/virtual_private_servers/migrate-to-pci-or-dedicated-server)
279279
+ [Automating the deployment of your website on your VPS via GitHub Actions](bare_metal_cloud/virtual_private_servers/deploy-website-github-actions)
280280
+ [Automating the deployment of your website on your VPS via GitLab CI/CD](bare_metal_cloud/virtual_private_servers/deploy-website-gitlab-ci-cd)
281+
+ [Installing N8N on an OVHcloud VPS](bare_metal_cloud/virtual_private_servers/install_n8n_on_vps)
281282
+ [Managed Bare Metal](products/bare-metal-cloud-managed-bare-metal)
282283
+ [OVHcloud services and options](bare-metal-cloud-managed-bare-metal-ovhcloud-services-and-options)
283284
+ [Setting up a VPN for OVHcloud Zerto DRP](bare_metal_cloud/managed_bare_metal/zerto-virtual-replication-customer-to-ovhcloud)

0 commit comments

Comments
 (0)