Files
Portainer/n8n/docker-compose.yml
root 93ea33c045 fix: n8n use hardcoded bind mounts to preserve Portainer data
- n8n app data: /opt/n8n/data → /home/node/.n8n
- postgres data: /opt/n8n/postgres → /var/lib/postgresql/data
  (was using ${N8N_DB_DATA_PATH} which Coolify converts to a named volume)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 01:54:07 +00:00

63 lines
1.6 KiB
YAML

services:
n8n:
image: n8nio/n8n:latest
pull_policy: always
container_name: n8n
restart: unless-stopped
environment:
DB_TYPE: ${N8N_DB_TYPE}
DB_POSTGRESDB_HOST: ${N8N_DB_HOST}
DB_POSTGRESDB_PORT: ${N8N_DB_PORT}
DB_POSTGRESDB_DATABASE: ${N8N_DB_NAME}
DB_POSTGRESDB_USER: ${N8N_DB_USER}
DB_POSTGRESDB_PASSWORD: ${N8N_DB_PASSWORD}
N8N_HOST: ${SERVICE_FQDN_N8N}
N8N_PORT: ${N8N_PORT}
N8N_PROTOCOL: ${N8N_PROTOCOL}
WEBHOOK_URL: https://${SERVICE_FQDN_N8N}/
GENERIC_TIMEZONE: ${N8N_TIMEZONE}
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
NODE_ENV: ${N8N_NODE_ENV}
N8N_DIAGNOSTICS_ENABLED: ${N8N_DIAGNOSTICS_ENABLED}
N8N_EMAIL_MODE: ${N8N_EMAIL_MODE}
N8N_SMTP_HOST: ${N8N_SMTP_HOST}
N8N_SMTP_PORT: ${N8N_SMTP_PORT}
N8N_SMTP_USER: ${N8N_SMTP_USER}
N8N_SMTP_PASS: ${N8N_SMTP_PASS}
N8N_SMTP_SENDER: ${N8N_SMTP_SENDER}
N8N_SMTP_SSL: ${N8N_SMTP_SSL}
N8N_SMTP_STARTTLS: ${N8N_SMTP_STARTTLS}
volumes:
- /opt/n8n/data:/home/node/.n8n:Z
networks:
- n8n
- proxy
labels:
traefik.http.services.n8n.loadbalancer.server.port: "5678"
n8n-db:
image: postgres:16
pull_policy: always
container_name: n8n-pg
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- /opt/n8n/postgres:/var/lib/postgresql/data:Z
networks:
- n8n
networks:
n8n:
driver: bridge
proxy:
external: true