64 lines
1.7 KiB
YAML
64 lines
1.7 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
n8n:
|
|
image: n8nio/n8n:1.76.1 # Aktuelle stabile Version (Pinning empfohlen!)
|
|
container_name: n8n
|
|
restart: always
|
|
ports:
|
|
- "5678:5678"
|
|
environment:
|
|
- GENERIC_TIMEZONE=${TIMEZONE}
|
|
- TZ=${TIMEZONE}
|
|
# Datenbank-Verbindung
|
|
- DB_TYPE=postgresdb
|
|
- DB_POSTGRESDB_HOST=postgres
|
|
- DB_POSTGRESDB_PORT=5432
|
|
- DB_POSTGRESDB_DATABASE=${DB_NAME}
|
|
- DB_POSTGRESDB_USER=${DB_USER}
|
|
- DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
|
|
# Webhook/Proxy Settings (Wichtig für externe Erreichbarkeit)
|
|
- N8N_HOST=${DOMAIN_NAME}
|
|
- N8N_PORT=5678
|
|
- N8N_PROTOCOL=https
|
|
- WEBHOOK_URL=https://${DOMAIN_NAME}/
|
|
# Auto-Cleanup (Verhindert Datenbank-Explosion)
|
|
- EXECUTIONS_DATA_PRUNE=true
|
|
- EXECUTIONS_DATA_MAX_AGE=336 # Behalte Daten für 14 Tage (336 Stunden)
|
|
- EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000 # Max 50k Einträge
|
|
volumes:
|
|
- n8n_data:/home/node/.n8n
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
networks:
|
|
- n8n-net
|
|
- npm-network
|
|
|
|
postgres:
|
|
image: postgres:16-alpine # Neueste stabile Postgres Version
|
|
container_name: n8n-db
|
|
restart: always
|
|
environment:
|
|
- POSTGRES_USER=${DB_USER}
|
|
- POSTGRES_PASSWORD=${DB_PASSWORD}
|
|
- POSTGRES_DB=${DB_NAME}
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- n8n-net
|
|
|
|
volumes:
|
|
n8n_data:
|
|
postgres_data:
|
|
|
|
networks:
|
|
n8n-net:
|
|
internal: true
|
|
npm-network:
|
|
external: true
|