Module 2 · Absorber la chargeEnviron 1 min
Monter le mode file d'attente
Voici l’ossature Docker Compose de Nadia. Toutes les instances partagent la même base PostgreSQL, le même Redis et la même clé de chiffrement. Les secrets viennent d’un fichier .env qui ne part jamais dans Git.
yaml
x-n8n: &n8n
image: docker.n8n.io/n8nio/n8n:2.45.4
restart: unless-stopped
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
EXECUTIONS_MODE: queue
QUEUE_BULL_REDIS_HOST: redis
QUEUE_HEALTH_CHECK_ACTIVE: "true"
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
N8N_DEFAULT_BINARY_DATA_MODE: database
N8N_METRICS: "true"
depends_on: [postgres, redis]
services:
postgres:
image: postgres:16
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes: [pgdata:/var/lib/postgresql/data]
redis:
image: redis:7
n8n-main:
<<: *n8n
ports: ["5678:5678"]
volumes: [n8n_data:/home/node/.n8n]
n8n-webhook:
<<: *n8n
command: webhook
n8n-worker:
<<: *n8n
command: worker --concurrency=5
deploy:
replicas: 2
volumes:
pgdata:
n8n_data:- PostgreSQL obligatoire : SQLite n’est pas pris en charge pour une installation distribuée.
- Une seule clé : workers et processeurs webhook ont la même
N8N_ENCRYPTION_KEYque l’instance principale, sinon ils ne peuvent pas déchiffrer les identifiants. - Fichiers : le mode
filesystemn’est pas pris en charge en file d’attente. Utilisezdatabase, ou S3 et Azure sur les éditions Business et Enterprise. - Routage : le reverse proxy envoie
/webhook/*et/webhook-waiting/*aux processeurs webhook, le reste à l’instance principale, qui reçoitN8N_DISABLE_PRODUCTION_MAIN_PROCESS=truepour ne plus traiter les webhooks de production.
Plusieurs instances principalesLe multi-main, qui évite qu’une panne de l’instance principale arrête les tâches planifiées, est réservé à l’édition Enterprise auto-hébergée.