name: n8n-stack services: postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - ../data/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 10s timeout: 5s retries: 5 networks: - n8n-internal redis: image: redis:7-alpine restart: unless-stopped command: redis-server --requirepass ${REDIS_PASSWORD} volumes: - ../data/redis:/data healthcheck: test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"] interval: 10s timeout: 5s retries: 5 networks: - n8n-internal n8n: image: n8nio/n8n:latest restart: unless-stopped ports: - "127.0.0.1:5678:5678" environment: # URL & Protokoll N8N_HOST: ${N8N_HOST} N8N_PORT: 5678 N8N_PROTOCOL: ${N8N_PROTOCOL} WEBHOOK_URL: ${WEBHOOK_URL} # Datenbank DB_TYPE: postgresdb DB_POSTGRESDB_HOST: postgres DB_POSTGRESDB_PORT: 5432 DB_POSTGRESDB_DATABASE: ${POSTGRES_DB} DB_POSTGRESDB_USER: ${POSTGRES_USER} DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD} # Encryption N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY} # Queue / Redis EXECUTIONS_MODE: queue QUEUE_BULL_REDIS_HOST: redis QUEUE_BULL_REDIS_PORT: 6379 QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD} # SMTP N8N_EMAIL_MODE: smtp N8N_SMTP_HOST: ${SMTP_HOST} N8N_SMTP_PORT: ${SMTP_PORT} N8N_SMTP_USER: ${SMTP_USER} N8N_SMTP_PASS: ${SMTP_PASSWORD} N8N_SMTP_SENDER: ${SMTP_SENDER} N8N_SMTP_SSL: "false" # User Management N8N_USER_MANAGEMENT_DISABLED: "false" # Zeitzone GENERIC_TIMEZONE: ${TZ} TZ: ${TZ} volumes: - ../data/n8n:/home/node/.n8n - ../local-files:/files - ../imports:/imports extra_hosts: - "host.docker.internal:host-gateway" depends_on: postgres: condition: service_healthy redis: condition: service_healthy networks: - n8n-internal n8n-worker: image: n8nio/n8n:latest restart: unless-stopped command: worker environment: # Datenbank DB_TYPE: postgresdb DB_POSTGRESDB_HOST: postgres DB_POSTGRESDB_PORT: 5432 DB_POSTGRESDB_DATABASE: ${POSTGRES_DB} DB_POSTGRESDB_USER: ${POSTGRES_USER} DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD} # Encryption N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY} # Queue / Redis EXECUTIONS_MODE: queue QUEUE_BULL_REDIS_HOST: redis QUEUE_BULL_REDIS_PORT: 6379 QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD} # Zeitzone GENERIC_TIMEZONE: ${TZ} TZ: ${TZ} volumes: - ../data/n8n:/home/node/.n8n - ../local-files:/files extra_hosts: - "host.docker.internal:host-gateway" depends_on: - n8n networks: - n8n-internal networks: n8n-internal: driver: bridge