Comment installer et sécuriser l’application n8n sur un serveur VPS sans Docker.
Nous allons choisir d’installer n8n sur un serveur Ubuntu et prendre comme hébergeur Hostinger. La procédure sera quasiment identique avec n’importe quel autre hébergeur et serveur Linux basé sur une distribution Debian.
Installer n8n sur un VPS sans Docker
Table des matières
Installer n8n sur un VPS
1 - Introduction
1.1 - Qu'est-ce que n8n ?
1.2 - Pourquoi installer n8n sur un VPS ?
2 - Création du VPS sur Hostinger
2.1 : Se connecter sur Hostinger
2.2 : Choisir le plan VPS
2.3 : Configurer le VPS
2.4 : Attente de la création
3 -Première connexion et configuration Ubuntu
3.1 : Connexion SSH
3.2 : Première mise à jour du système
3.3 : Créer un utilisateur spécifique pour n8n
4 - Installer Node.js
4.1 : Installation de Node.js via NodeSource
4.2 : Configuration des permissions npm
5 - Installer n8n
5.1 : Installation
5.2 : Configuration de base de n8n
5.3 : Premier démarrage de n8n
5.4 : Configurer le service systemd
6 – Installer et configurer Nginx
6.1 - Pourquoi nginx
6.2 - Configuration de Nginx
6.3 - Installation de Nginx
6.4 - Configuration du reverse proxy
7 – Sécuriser le système
7.1 - Configuration du pare-feu sur le serveur
7.2 - Désactiver la connexion root SSH
7.3 - Configurer des clés SSH
7.4 – Mise en place de Fail2Ban
7.5 - Mise à jour automatique de sécurité
7.6 - Configuration SSL
7.7 - Maintenance et monitoring
8 – Maintenance et dépannage de n8n
8.1 - Maintenance
8.2 – Dépanner n8n
9 - Conclusion
1 - Introduction
1.1 - Qu'est-ce que n8n ?
L’application n8n est une plateforme d'automatisation de flux de travail (workflow automation) open source. Elle permet de connecter différents services et applications entre eux, en utilisant éventuellement des IA, sans nécessiter de compétences en programmation avancée.
Ainsi n8n permet notamment :
• De créer des automatisations entre plus de 400 services (Gmail, Slack, Notion, bases de données, APIs, ...).
• De déclencher des actions basées sur des événements (nouveaux courriels, webhooks, planifications, …).
• De traiter et transformer des données entre différents systèmes.
• De créer des workflows complexes avec des conditions, des boucles et une logique métier (un workflow ou flux de travail est dans n8n une sorte de scénario d’automatisation qui se traduit sous la forme d’un enchainement de composants que l’on paramètre comme illustré dans la figure ci-après).
• D’utiliser une interface visuelle ergonomique par glisser-déposer pour construire les automatisations.
Ces workflows permettent d'automatiser simplement des tâches répétitives et de créer un écosystème numérique personnalisé qui peut faire gagner beaucoup de temps au quotidien.
Voici quelques exemples non exhaustifs :
- Gestion des courriels : tri automatique des courriels, filtrer des courriels par expéditeur/sujet, déplacement automatiquement vers des dossiers spécifiques, marquer des courriels comme lus ou importants selon des critères, transférer certains courriels vers d'autres comptes.
- Notifications intelligentes : recevoir un SMS/Telegram pour les courriels urgents, résumé quotidien des courriels importants, alerter pour les factures/échéances reçues par courriel.
- Surveillance de prix : tracker les prix sur Amazon ou autres sites, alerter quand un produit baisse de prix, surveiller des cryptomonnaies ou des actions.
- Monitoring personnel : vérifier si son site web est en ligne, surveiller l'espace disque de ses serveurs.
- Sauvegardes automatisées de données : Photos Instagram/Facebook vers Google Drive, tweets vers une base de données, contacts téléphone vers un fichier CSV, articles "lus plus tard" de Pocket vers Notion.
- Domotique et IoT, automatisations maison : allumer les lumières au coucher du soleil, notifier quand quelqu'un sonne à la porte, contrôler le chauffage selon la météo, arroser les plantes selon l'humidité.
- Finances personnelles : catégoriser automatiquement les dépenses bancaires, tracker les abonnements et leur renouvellement, alerter les découvert ou gros achats, exporter des données vers Excel/Sheets.
- Réseaux sociaux : auto-poster sur plusieurs plateformes, sauvegarder ses stories Instagram, notifications pour les nouveaux followers, cross-posting entre Twitter et LinkedIn.
- Santé/Sport : rappeler les prises de médicaments, log des habitudes quotidiennes.
• / …
1.2 - Pourquoi installer n8n sur un VPS ?
n8n peut être installé en local (auto-hébergement) sur un serveur, sur un VPS ou utilisé directement avec un compte payant (minimum 20$ par mois) sur la plateforme n8n.io.
Voici quelques avantages du VPS :
- Disponible 24h/24 7j/7, les automatisations fonctionnent même quand son ordinateur est éteint.
- Il est accessible depuis n'importe où via internet.
- Il possède des performances stables, il a des ressources dédiées qui n’ont pas d'impact sur les applications locales.
- La sécurité est renforcée car il est installé dans un centre de données sécurisé avec en général des sauvegardes intégrées et automatiques.
- Son IP fixe peut recevoir des notifications externes ce qui fiabilise les Webhooks.
- Il peut évoluer facilement avec la possibilité d'augmenter ses ressources facilement.
Le VPS possède aussi quelques inconvénients pas rapport à une installation en local :
- Il y a le coût récurrent de l’hébergement mais dans tous les cas le coût d’un VPS ou de l’hébergement local sera beaucoup moins onéreux que le coût d’utilisation d’un abonnement sur les serveurs de la plateforme n8n.io.
- Il dépend d’une connexion internet.
1.2.3 - Installer avec ou sans Docker ?
L’hébergeur Hostinger permet d’installer directement n8n sur un VPS en cliquant sur un bouton. Cette solution utilise en réalité une image Docker, l’installation est très simple et rapide et fonctionne immédiatement. Cependant j’ai rencontré quelques blocages en utilisant des commandes linux nécessitant des droits administrateur dans des workflows n8n. Je n’ai pas trouvé de solution, même si elles existent probablement et j’ai préféré installer directement n8n avec Node.js et sans docker pour avoir un meilleur contrôle de son fonctionnement et de sa configuration.
Installation sans Docker et avec Node.js
Voici quelques avantages et inconvénients d’une installation avec Node.js et Docker :
- Avantages :
o Performance native optimale.
o Accès direct aux fichiers et logs.
o Consommation mémoire plus faible.
o Installation plus légère.
o Débogage plus facile. - Inconvénients :
o Configuration manuelle des dépendances.
o Gestion des mises à jour un peu plus complexe.
o Risque de conflits avec d'autres applications Node.js.
o Sauvegarde et restauration plus compliquées.
Installation avec Docker :
- Avantages :
o Pas de conflits avec d'autres services (isolation complète de n8n dans son container docker).
o Déploiement simplifié avec une seule commande pour l’installation.
o Une grande portabilité grâce à un même environnement partout.
o Des mises à jour simples avec le remplacement par une nouvelle image.
o Un retour rapide à une version précédente en cas de problème.
o Des sauvegardes cohérentes et facilitées car tout l'environnement est dans un conteneur. - Inconvénients :
o La consommation mémoire est légèrement supérieure.
o Il faut apprendre à maitriser un minimum Docker.
o Le container Docker amène une couche d'abstraction supplémentaire qui complique le débogage.
Bien que l'installation de n8n avec Docker sur un VPS offre un bon équilibre entre simplicité, fiabilité, disponibilité et facilité de maintenance, je suis resté sur la solution Node.js au moins provisoirement pour ces trois raisons :
- Mieux comprendre et maitriser le paramétrage entre les différents composants à installer.
- Problèmes rencontrés avec Docker dans des workflows utilisant des commandes Linux système demandant des privilèges administrateur.
- Je ne compte pas utiliser pour l’instant d’autres applications dépendantes de Node.js.
2 - Création du VPS sur Hostinger
Il faut bien-sûr au préalable créer ou posséder un compte chez un hébergeur (dans notre exemple Hostinger). Un nom de domaine est recommandé pour pouvoir utiliser un certificat SSL et utiliser une connexion sécurisée https. Il n’y a pas de connaissance technique particulière préalable requise, il suffit d’exécuter les commandes indiquées. L’installation et la configuration demandent 30mn à 1h de temps.
2.1 : Se connecter sur Hostinger
1. Aller sur hostinger.fr.
2. Créer ou se connecter à son compte.
3. Dans le tableau de bord, cliquer sur "VPS" dans le menu et choisir son VPS.
2.2 : Choisir le plan VPS
1. Sélectionner un plan VPS (recommandé : KVM2 minimum pour n8n).
2. Choisir la durée de l’abonnement.
3. Cliquer sur "Ajouter au panier" puis "Commander maintenant".
2.3 : Configurer le VPS
1. Sélectionner "Ubuntu 20.04" ou "Ubuntu 22.04" comme système d’exploitation (on peut choisir un autre Linux).
2. Choisir l’emplacement géographique du serveur le plus proche des utilisateurs (optionnel).
3. Donner un nom descriptif au serveur par exemple « serveur-n8n ».
4. Créer et noter précieusement un mot de passe root fort.
5. Cliquer sur "Créer le VPS".
2.4 : Attente de la création
- Le processus peut prendre 5 à10 minutes.
- Un courriel de confirmation sera envoyé automatiquement.
- Bien noter l'adresse IP du serveur.
3 -Première connexion et configuration Ubuntu
3.1 : Connexion SSH
Depuis l’ordinateur la connexion au serveur se fera en ligne de commande en utilisant le protocole SSH.
- Sur Windows on peut utiliser le logiciel Putty ou le Terminal de Windows.
o Télécharger Putty.
o Lancer PuTTY.
o Dans "Host Name", saisir l'IP du serveur
o Choisir le port : 22 (attention ce port peut changer chez certains hébergeurs).
o Choisir comme type de connexion : SSH.
o Cliquer sur "Open".
o Accepter le certificat.
o Choisir le Login : root et utiliser le mot de passe créé lors de la configuration. - Sur Mac/Linux (Terminal) : ssh root@VOTRE_IP_SERVEUR>
Note : Dans les commandes qui suivent, si vous n’êtes pas sur un compte administrateur (root) il faudra mettre obligatoirement ’’sudo’’ avant chaque commande.
3.2 : Première mise à jour du système
Mettre à jour la liste des paquets : apt update
Mettre à jour des paquets installés : apt upgrade -y
Installer les outils complémentaires nécessaires : apt install -y curl wget git unzip software-properties-common
Note importante : à ce stade il sera utile de configurer le pare-feu avant de lancer les commandes qui suivent, en particulier si vous faites des tests après certains paramétrages ou installations. Voire le § 7.1 : ’’Configuration du pare-feu sur le serveur’’ un peu plus loin dans cet article.
3.3 : Créer un utilisateur spécifique pour n8n
Ces commandes ont pour but de créer un nouvel utilisateur dédié à n8n (remplacer 'n8nuser' par le nom souhaité). Cet utilisateur système n’aura pas de privilèges sudo inutiles et disposera d’un répertoire home dédié dans /var/lib/.
Créer l'utilisateur système dédié à n8n : sudo adduser --system --group --home /var/lib/n8nuser --shell /bin/bash n8nuser
Créer les répertoires nécessaires : sudo mkdir -p /var/lib/n8nuser/.n8n
Attribuer les bonnes permissions : sudo chown -R n8nuser:n8nuser /var/lib/n8nuser
Tester l'utilisateur :
sudo -u n8nuser whoami
sudo -u n8nuser ls -la /var/lib/n8nuser
On peut faire quelques vérifications supplémentaires :
Vérifier que l'utilisateur existe : id n8nuser
Vérifier les permissions du répertoire : ls -la /var/lib/n8nuser/
Tester l'accès :
sudo -u n8nuser touch /var/lib/n8nuser/test.txt
sudo -u n8nuser rm /var/lib/n8nuser/test.txt
4 - Installer Node.js
Node.js est un environnement d’exécution open-source et multiplateforme qui permet sur un serveur d’exécuter JavaScript et de réaliser des transferts de données efficaces. Il comprend npm qui est le gestionnaire de paquets par défaut de Node.js. L’implémentation de JavaScript sur le serveur et sur les navigateurs du poste client permet de créer des applications en réseau dynamiques, rapides et évolutives.
4.1 : Installation de Node.js via NodeSource
Ajout du dépôt NodeSource pour Node.js LTS : curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
Installer Node.js : sudo apt install nodejs -y
Vérifier l'installation :
node --version
npm –version
4.2 : Configuration des permissions npm
Cette option est optionnelle mais recommandée.
Créer un dossier pour les modules npm globaux : mkdir ~/.npm-global
Configurer npm pour utiliser ce dossier : npm config set prefix '~/.npm-global'
Ajout au PATH : echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc source ~/.bashrc
La commande source ~/.bashrc évite de relancer le terminal.
5 - Installer n8n
5.1 : Installation
Connexion avec l'utilisateur créé : su - n8nuser
Installation de n8n globalement : npm install -g n8n
Vérifier l'installation : n8n --version
5.2 : Configuration de base de n8n
Créer le dossier de configuration : mkdir -p ~/.n8n
Créer le fichier de configuration : cat > ~/.n8n/config.json << 'EOF'
Saisir ces données dans le fichier créé et enregistrer :
{
"host": "localhost",
"port": 5678,
"protocol": "http"
}
5.3 : Premier démarrage de n8n
Test de démarrage de n8n : n8n start
n8n va se lancer et afficher l'URL locale. Appuyer sur Ctrl+C pour arrêter après vérification.
5.4 : Configurer le service systemd
Retour en root : exit
Créer le fichier de service : sudo nano /etc/systemd/system/n8n.service
Ajouter le contenu suivant :
[Unit]
Description=n8n workflow automation
After=network.target
[Service]
Type=simple
User=n8n
WorkingDirectory=/var/lib/n8n
Environment=NODE_ENV=production
Environment=N8N_HOST=0.0.0.0
Environment=N8N_PORT=5678
Environment=N8N_PROTOCOL=http
Environment=WEBHOOK_URL=https://srv2jpw.eu/
Environment=GENERIC_TIMEZONE=Europe/Paris
ExecStart=/usr/bin/n8n start
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Activer et démarrer le service :
Recharger les services systemd : sudo systemctl daemon-reload
Activer le service au démarrage : sudo systemctl enable n8n
Démarrer le service : sudo systemctl start n8n
Vérifier le statut : sudo systemctl status n8n
6 – Installer et configurer Nginx
6.1 - Pourquoi nginx
Nginx est un serveur web et un reverse proxy. Il va servir d’intermédiaire entre le serveur et n8n en ajoutant des fonctionnalités intelligentes.
Sans Nginx n8n peut fonctionner seul en écoutant sur le port 5678 en local (localhost:5678). Dans ce cas on ne pourra y accéder qu’en http avec l’adresse IP (http://votre-ip:5678). Ainsi la connexion se fera sans HTTPS (non sécurisé), avec un port non-standard (5678) qu’il faudra retenir. Il sera difficile de gérer plusieurs applications et on ne pourra pas utiliser un nom de domaine propre.
1 - Nginx agit comme un intermédiaire entre Internet et n8n (Internet → Nginx (port 80/443) → n8n (port 5678 local). Son rôle principal va être celui d’un Reverse Proxy. Ainsi quand l’utilisateur tapera : https://mon-domaine.com :
- nginx recevra la demande sur le port 443 (HTTPS).
- nginx redirigera cette commande sur le serveur vers localhost:5678.
- n8n traitera la demande et renverra la réponse à Nginx.
- nginx renverra ensuite la réponse à l'utilisateur.
2. Nginx permet la connexion n8n avec un nom de domaine
- Il permet d’accéder à n8n via https://mon-domaine.com au lieu de http://ip:5678. L’accès sera plus facile et la gestion de plusieurs sous-domaines sera possible.
3. Nginx permet le HTTPS/SSL
- Nginx peut gérer les certificats SSL et permettre le chiffrement automatique des communications et libérer n8n de cette tâche.
4. Nginx améliore la performance avec son cache
- Nginx met en cache certains contenus et permet une gestion efficace des fichiers statiques (images, CSS, JS) et améliorer la performance de n8n.
5. Nginx apporte une sécurité supplémentaire
- Nginx va masquer le port réel de n8n, filtrer les requêtes malveillantes et gérer les timeouts et les limites de taille.
Ainsi par exemple :
- Sans Nginx on accède à n8n de cette façon : http://203.45.67.89:5678 (pas pratique, pas sécurisé).
- Avec Nginx on fait : https://mon-n8n.mondomaine.com (plus facile, plus propre et plus sécurisé).
6.2 - Configuration de Nginx
Voici la configuration de nginx que nous prenons :
server {
listen 80; # Nginx écoute sur le port 80
server_name VOTRE_DOMAINE.COM;
location / {
proxy_pass http://localhost:5678; # Redirige vers n8n
# ... autres paramètres de proxy
}
}
Dans cette configuration :
- 1. nginx écoute les requêtes du domaine ''votre-domaine.com''.
- 2. Toutes les requêtes sont transmises à n8n sur localhost:5678.
- 3. n8n ne "voit" jamais directement l'utilisateur externe.
- Les avantages sont une simplicité d'accès (URL propre et mémorisable, pas de port à retenir), une sécurité renforcée (HTTPS automatique, protection de n8n derrière Nginx, filtrage des requêtes malveillantes).
- Par ailleurs il sera facile d'ajouter d'autres services comme le load balancing et la maintenance sera facilité avec des logs centralisés, un redémarrage indépendant des services et des mises à jour séparées.
6.3 - Installation de Nginx
Installation : apt install -y nginx
Démarrage et activation :
systemctl start nginx
systemctl enable nginx
Vérification : systemctl status nginx
6.4 - Configuration du reverse proxy
Suppression de la configuration par défaut : rm /etc/nginx/sites-enabled/default
Création du fichier de configuration n8n pour son domaine :
sudo nano /etc/nginx/sites-available/ VOTRE_DOMAINE.COM #(Remplacer par le vrai nom du domaine).
Ajouter les lignes suivantes dans le fichier :
server {
listen 80;
server_name VOTRE_DOMAINE.COM www. VOTRE_DOMAINE.COM; # (Remplacer par votre vrai nom de domaine);
# Redirection vers HTTPS (sera activée après l'obtention du certificat SSL)
# return 301 https://$server_name$request_uri;>
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
# Support pour les WebSockets
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}
Activer la configuration : ln -s /etc/nginx/sites-available/ VOTRE_DOMAINE.COM /etc/nginx/sites-enabled/
Supprimer la configuration par défaut si ça n’a pas déjà été fait auparavant : sudo rm /etc/nginx/sites-enabled/default
Tester la configuration : nginx -t
Recharger Nginx : systemctl reload nginx
7 – Sécuriser le système
Il est nécessaire de sécuriser le serveur et ses applications en ajoutant des systèmes de protection (pare-feu UFW, rajout de clés SSH, mise en place de Fail2Ban, certificat SSL, …).
7.1 - Configuration du pare-feu sur le serveur
Utiliser les commandes avec sudo le cas échéant si vous n’êtes pas sur un compte administrateur (root).
Installer et configurer UFW : apt install ufw -y
Configurer les règles de base :
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow 'Nginx Full'
Activer le pare-feu : ufw --force enable
Vérifier le statut : ufw status
Autoriser HTTP et HTTPS
sudo ufw allow 80
sudo ufw allow 443
Autoriser le port 5678 pour n8n (temporairement pour les tests) : sudo ufw allow 5678
7.2 - Désactiver la connexion root SSH
Éditer le fichier de configuration SSH : nano /etc/ssh/sshd_config
Modifier la ligne : PermitRootLogin yes en : PermitRootLogin no
Redémarrer le service SSH : systemctl restart ssh
7.3 - Configurer des clés SSH
Cette option est optionnelle mais recommandée, elle diminue sensiblement les risque des attaques de type brute force.
Sur l’ordinateur local, générer une paire de clés : ssh-keygen -t rsa -b 4096 -f ~/.ssh/n8n_server
Copier la clé publique sur le serveur : ssh-copy-id -i ~/.ssh/n8n_server.pub n8nuser@VOTRE_IP_SERVEUR
Tester la connexion avec la clé : ssh -i ~/.ssh/n8n_server </br<>n8nuser@VOTRE_IP_SERVEUR>
7.4 – Mise en place de Fail2Ban
Fail2ban est un logiciel qui analyse les logs de divers services installés sur un système Linux et qui en cas d'échec après X tentatives de connexion d’un utilisateur le bannit automatiquement via pare-feu pour une durée déterminée.
Fail2Ban est essentiel pour sécuriser un système, et éviter des intrusions via brute-force. Il est souvent utilisé pour le service SSH mais il supporte nativement de nombreux autres services (SSH, HTTPD, ...) ainsi que la création de nouvelles règles spécifiques.
Installation : apt install -y fail2ban
Créer la configuration locale :sudo nano /etc/fail2ban/jail.local
Entrer ces données dans le fichier :
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3
backend = systemd
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log
Démarrer et activer :
systemctl enable fail2ban
systemctl start fail2ban
Vérifier le statut : fail2ban-client status
7.5 - Mise à jour automatique de sécurité
Installer le paquet : apt install -y unattended-upgrades
Configurer : dpkg-reconfigure -plow unattended-upgrades
Sélectionner "Oui" ou ‘’Yes’’ pour activer les mises à jour automatiques.
7.6 - Configuration SSL
7.6.1 : Installer Certbot
Installation : apt install -y certbot python3-certbot-nginx
Obtenir le certificat SSL : certbot --nginx -d VOTRE_DOMAINE.COM
Suivre les instructions à l'écran.
7.6.2 : Test du renouvellement automatique
Test du renouvellement : certbot renew --dry-run
Le renouvellement automatique est configuré via cron
7.6.3 : Configuration n8n pour HTTPS
Modifier la configuration n8n : su - n8nuser
nano ~/.n8n/config.json
Saisir ces données dans le fichier :
{
"host": "localhost",
"port": 5678,
"protocol": "http"
}
Redémarrer n8n
exit
sudo systemctl restart n8n
7.7 - Maintenance et monitoring
7.7.1 : Scripts de sauvegarde
Créer un script de sauvegarde si vous ne voulez pas les faire manuellement (enregistrer les commandes suivantes dans un fichier bash et le rendre exécutable), par exemple : nano /home/n8nuser/backup_n8n.sh
Entrer ces données dans le fichier :
#!/bin/bash
BACKUP_DIR="/home/n8nuser/backups"
DATE=$(date +%Y%m%d_%H%M%S)
# Créer un dossier de sauvegarde
mkdir -p $BACKUP_DIR
# Arrêter n8n
sudo systemctl stop n8n
# Sauvegarder la configuration
tar -czf $BACKUP_DIR/n8n_backup_$DATE.tar.gz ~/.n8n
# Redémarrer n8n
sudo systemctl start n8n
# Nettoyer les anciennes sauvegardes (par exemple au bout de 15 jours)
find $BACKUP_DIR -name "n8n_backup_*.tar.gz" -mtime +15 -delete
echo "Sauvegarde terminée : n8n_backup_$DATE.tar.gz"
Rendre le script exécutable :
chmod +x /home/n8nuser/backup_n8n.sh
chown n8nuser:n8nuser /home/n8nuser/backup_n8n.sh
7.7.2 : Programmer les sauvegardes
Ajouter une tâche cron pour l'utilisateur n8nuser
su - n8nuser
crontab -e
Ajouter cette ligne pour une sauvegarde quotidienne à 2h du matin par exemple :
# 0 2 * * * /home/n8nuser/backup_n8n.sh >> /home/n8nuser/backup.log 2>&1
exit
7.7.3 : Surveillance des logs
Consulter des logs n8n : journalctl -u n8n -f
Consulter les logs nginx :
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
Consulter l'état du système
systemctl status n8n
systemctl status nginx
Dans un article et une vidéo future on montrera comment avec un workflow n8n automatiser l’envoi d’extraits de logs de Fail2Ban par mail pour surveiller et détecter d’éventuelles attaques du serveur.
7.7.4 Accès à application n8n
Une fois les configurations terminées pour accéder à n8n depuis un navigateur saisir : https://votre-domaine.com. Lors du premier accès n8n demandera la création d’un compte administrateur avant de permettre l’accès son interface graphique.
8 – Maintenance et dépannage de n8n
Pour entretenir le bon fonctionnement de n8n et le dépanner en cas d’incident voici quelques commandes utiles :
8.1 - Maintenance
Redémarrer n8n : sudo systemctl restart n8n
Voir les logs de n8n : sudo journalctl -u n8n -f
Mettre à jour n8n :
su - n8nuser
npm update -g n8n
exit
Redémarrer n8n : sudo systemctl restart n8n
Vérifier l'état des services : sudo systemctl status n8n nginx
Vérifier l'utilisation des ressources :
htop
df -h
8.2 – Dépanner n8n
8.2.1 - n8n ne démarre pas :
Vérifier les logs : journalctl -u n8n -n 50
Vérifier si le port est utilisé : netstat -tlpn | grep 5678
Redémarrer le service : systemctl restart n8n
8.2.2 - Problèmes de connexion
Vérifier nginx :
nginx -t
systemctl status nginx
Vérifier le pare-feu : ufw status
Tester la connexion locale : curl http://localhost:5678
8.2.3 - Problèmes de certificat SSL
Renouveler manuellement : certbot renew
Vérifier la configuration nginx : nginx -t
9 - Conclusion
En suivant les étapes de cet article, vous obtiendrez une installation complète de n8n sur un VPS Hostinger avec :
• Ubuntu Server sécurisé
• n8n fonctionnel
• Nginx comme reverse proxy
• SSL/HTTPS configuré
• Des sauvegardes automatiques
• Un monitoring minimal de base
Pour améliorer encore la sécurité et pérenniser le bon fonctionnement il faudra en plus :
• Changer régulièrement les mots de passe.
• Ne pas oublier de maintenir le système à jour.
• Surveiller régulièrement les logs (avec par exemple des workflows n8n).
• Faire toujours une sauvegarde avant des mises à jour importantes.
Un article et une vidéo future récapituleront cette installation et décriront la création de workflows avec et sans IA.