Hi all,
I’m self-hosting n8n using Coolify, and I’m trying to get queue mode working. I’ve followed the official Docker setup instructions and verified everything multiple times, but executions still appear to be handled directly by the main n8n
instance and not being sent to the queue. Also when I press execute workflow the spinner never gets updated it stops only if I refresh the page (this was not happening when I was not in queue mode)
My setup
services:
n8n:
image: docker.n8n.io/n8nio/n8n
environment:
- SERVICE_FQDN_N8N_5678
- 'N8N_EDITOR_BASE_URL=${SERVICE_FQDN_N8N}'
- 'WEBHOOK_URL=${SERVICE_FQDN_N8N}'
- 'N8N_HOST=${SERVICE_URL_N8N}'
- 'GENERIC_TIMEZONE=${GENERIC_TIMEZONE:-Europe/Berlin}'
- 'TZ=${TZ:-Europe/Berlin}'
- DB_TYPE=postgresdb
- 'DB_POSTGRESDB_DATABASE=${POSTGRES_DB:-n8n}'
- DB_POSTGRESDB_HOST=postgresql
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_USER=$SERVICE_USER_POSTGRES
- DB_POSTGRESDB_SCHEMA=public
- DB_POSTGRESDB_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_MODE=redis
- N8N_RUNNERS_ENABLED=true
- QUEUE_HEALTH_CHECK_ACTIVE=true
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_SECURE_COOKIE=false
- EXECUTIONS_DATA_SAVE_ON_SUCCESS=none
- N8N_LOG_LEVEL=debug
volumes:
- 'n8n-data:/home/node/.n8n'
command: start
depends_on:
postgresql:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test:
- CMD-SHELL
- 'wget -qO- http://127.0.0.1:5678/'
interval: 5s
timeout: 20s
retries: 10
n8n-worker-1:
image: docker.n8n.io/n8nio/n8n
environment:
- 'GENERIC_TIMEZONE=${GENERIC_TIMEZONE:-Europe/Berlin}'
- 'TZ=${TZ:-Europe/Berlin}'
- DB_TYPE=postgresdb
- 'DB_POSTGRESDB_DATABASE=${POSTGRES_DB:-n8n}'
- DB_POSTGRESDB_HOST=postgresql
- DB_POSTGRESDB_USER=$SERVICE_USER_POSTGRES
- DB_POSTGRESDB_SCHEMA=public
- DB_POSTGRESDB_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_MODE=redis
- N8N_RUNNERS_ENABLED=true
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_SECURE_COOKIE=false
- N8N_WORKER=true
- EXECUTIONS_DATA_SAVE_ON_SUCCESS=none
- N8N_LOG_LEVEL=debug
volumes:
- 'n8n-data:/home/node/.n8n'
command: worker
depends_on:
postgresql:
condition: service_healthy
redis:
condition: service_healthy
postgresql:
image: 'postgres:16-alpine'
volumes:
- 'postgresql-data:/var/lib/postgresql/data'
environment:
- POSTGRES_USER=$SERVICE_USER_POSTGRES
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- 'POSTGRES_DB=${POSTGRES_DB:-n8n}'
healthcheck:
test:
- CMD-SHELL
- 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'
interval: 5s
timeout: 20s
retries: 10
redis:
image: redis:7
restart: always
volumes:
- redis_data:/data
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
interval: 5s
timeout: 5s
retries: 10
What’s happening:
- Workflows run fine from the UI — but they seem to execute on the main n8n container.
- When I press execute workflow the spinner never gets updated it stops only if I refresh the page
- Redis shows no logs
- Logs from
n8n
show:Execution mode set to "queue"
- But the worker logs stay silent — no workflows are picked up
I suspect one of these might be the issue:
- Coolify’s internal networking/routing
- n8n not actually pushing jobs to the queue?
Has anyone else successfully used queue mode with Coolify?
Thanks in advance — any guidance or confirmations welcome!