x-shared: &shared image: n8nio/n8n restart: always environment: - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=${N8N_DB:-n8n} - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER:-$ADMIN_USER} - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD:-$POSTGRES_PASSWORD} - EXECUTIONS_MODE=queue - QUEUE_BULL_REDIS_HOST=redis - QUEUE_HEALTH_CHECK_ACTIVE=true - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER:-$ADMIN_USER} - N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD:-$ADMIN_PASSWORD} - WEBHOOK_URL=${N8N_WEBHOOK_URL:-} - N8N_EMAIL_MODE=smtp - N8N_SMTP_HOST=${SMTP_HOST} - N8N_SMTP_USER=${SMTP_USER} - N8N_SMTP_PASS=${SMTP_PASS} - N8N_SMTP_SENDER=${SMTP_SENDER} - GENERIC_TIMEZONE=${GENERIC_TIMEZONE} links: - postgres - redis volumes: - ./volumes/n8n:/home/node/ - ./volumes/n8n:/files depends_on: redis: condition: service_healthy postgres: condition: service_healthy services: n8n: <<: *shared container_name: $APP_NAME-n8n command: /bin/sh -c "n8n start --tunnel" ports: - ${N8N_PORT:-5678}:5678 n8n-worker: <<: *shared container_name: $APP_NAME-n8n-worker command: /bin/sh -c "sleep 5; n8n worker" depends_on: - n8n