OffshoreVps
Tutoriels4 oct. 20267 min de lecturePar l’équipe OffshoreVps

Déployer n8n et des agents IA avec Docker Compose sur un VPS

Auto-hébergez n8n avec Postgres et HTTPS, créez un workflow d’agent IA, protégez les webhooks et sauvegardez les données et la clé de chiffrement.

n8n est un outil de workflows qui relie des applications, des API et des modèles d’IA avec un éditeur visuel. L’auto-héberger signifie que vos workflows, identifiants et données restent sur un serveur que vous contrôlez, et que les exécutions ne sont pas facturées à l’unité. Ce guide déploie n8n avec Docker Compose, une base de données Postgres et HTTPS, prêt à faire tourner des agents IA en continu.

Fenêtre de terminal sur un VPS montrant les commandes utilisées pour déployer n8n et des agents IA, à commencer par « mkdir -p ~/n8n && cd ~/n8n »
Le type de commandes que vous exécuterez sur votre serveur dans ce guide.

Pourquoi un VPS pour des agents ?

Les agents s’exécutent souvent selon un calendrier ou réagissent à des webhooks, ils ont donc besoin d’un serveur toujours allumé et joignable. Un VPS vous donne une adresse fixe pour les webhooks et assez de RAM pour garder des workflows réactifs. Une offre 2 vCPU, 4 Go convient à une petite installation. Voir l’hébergement d’agents IA pour les tailles, et ajoutez un serveur GPU si vous voulez des modèles locaux.

Avant de commencer

Étape 1 : fichier Compose

mkdir -p ~/n8n && cd ~/n8n
cat > compose.yaml <<'YAML'
services:
  db:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: n8n
    volumes:
      - db:/var/lib/postgresql/data

  n8n:
    image: n8nio/n8n:latest
    restart: unless-stopped
    depends_on: [db]
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: db
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
      N8N_HOST: n8n.example.com
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://n8n.example.com/
      N8N_ENCRYPTION_KEY: ${ENCRYPTION_KEY}
      GENERIC_TIMEZONE: UTC
    ports:
      - "127.0.0.1:5678:5678"
    volumes:
      - n8n:/home/node/.n8n

volumes:
  db:
  n8n:
YAML

Étape 2 : secrets

cat > .env <<ENV
DB_PASSWORD=$(openssl rand -hex 24)
ENCRYPTION_KEY=$(openssl rand -hex 32)
ENV
chmod 600 .env

Sauvegardez ENCRYPTION_KEY. Sans elle, n8n ne peut pas déchiffrer les identifiants qu’il a stockés.

Les étapes de ce guide dans l’ordre : 1. Pourquoi un VPS pour des agents ? ; 2. Avant de commencer ; 3. secrets ; 4. démarrer n8n ; 5. créer un workflow d’agent ; 6. Le garder en sécurité
Les étapes de ce guide, dans l’ordre.

Étape 3 : démarrer n8n

docker compose up -d
docker compose logs -f n8n

Étape 4 : HTTPS

n8n.example.com {
  reverse_proxy 127.0.0.1:5678
}

Rechargez Caddy, ouvrez le site et créez le compte propriétaire.

Étape 5 : créer un workflow d’agent

  1. Ajoutez un déclencheur Webhook ou Schedule.
  2. Ajoutez un nœud AI Agent et connectez un modèle de chat, par exemple une API hébergée, ou Ollama sur votre propre serveur GPU.
  3. Donnez à l’agent des outils tels que des requêtes HTTP, une base de données ou un nœud de messagerie.
  4. Testez avec une exécution manuelle, puis activez le workflow.

Le garder en sécurité

  • Liez n8n à 127.0.0.1 et n’exposez que le proxy HTTPS.
  • Protégez les webhooks avec un en-tête ou un chemin secret lorsque c’est possible.
  • Sauvegardez le volume Postgres et le volume n8n. Voir sauvegardes avec restic ou borg.
  • Mettez à jour avec docker compose pull && docker compose up -d après avoir lu les notes de version.