services: n8n: image: n8nio/n8n:latest container_name: n8n restart: unless-stopped #ports: # - "127.0.0.1:5678:5678" environment: N8N_HOST: ${DOMAIN} N8N_PROTOCOL: https WEBHOOK_URL: https://${DOMAIN} GENERIC_TIMEZONE: Europe/Paris DB_TYPE: postgresdb DB_POSTGRESDB_HOST: postgres DB_POSTGRESDB_DATABASE: ${DATABASE_NAME} DB_POSTGRESDB_USER: ${DATABASE_USER} DB_POSTGRESDB_PASSWORD: ${DATABASE_PASSWORD} N8N_LOG_OUTPUT: console,file N8N_LOG_FILE_LOCATION: /var/log/n8n/n8n.log N8N_LOG_LEVEL: info EXECUTIONS_PROCESS: main EXECUTIONS_MODE: queue QUEUE_BULL_REDIS_HOST: redis QUEUE_BULL_REDIS_PORT: 6379 N8N_PAYLOAD_SIZE_MAX: 16 EXECUTIONS_DATA_PRUNE: true EXECUTIONS_DATA_MAX_AGE: 168 EXECUTIONS_DATA_SAVE_ON_ERROR: all EXECUTIONS_DATA_SAVE_ON_SUCCESS: all EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS: true N8N_DEFAULT_BINARY_DATA_MODE: filesystem EXECUTIONS_TIMEOUT: 3600 EXECUTIONS_TIMEOUT_MAX: 7200 N8N_SECURE_COOKIE: true labels: - "traefik.enable=true" - "traefik.http.routers.n8n.rule=Host(`${DOMAIN}`)" - "traefik.http.routers.n8n.entrypoints=websecure" - "traefik.http.routers.n8n.tls.certresolver=letsencrypt" - "traefik.http.services.n8n-backend.loadbalancer.server.port=5678" volumes: - ./data:/home/node/.n8n - ./logs:/var/log/n8n depends_on: - postgres - redis networks: - n8n-net - traefik-net redis: image: redis:7-alpine container_name: n8n-redis restart: unless-stopped volumes: - redis_data:/data networks: - n8n-net postgres: image: postgres:15-alpine container_name: n8n-postgres restart: unless-stopped environment: POSTGRES_DB: ${DATABASE_NAME} POSTGRES_USER: ${DATABASE_USER} POSTGRES_PASSWORD: ${DATABASE_PASSWORD} volumes: - ./postgres:/var/lib/postgresql/data networks: - n8n-net volumes: redis_data: networks: n8n-net: driver: bridge traefik-net: external: true