Help with queuing on Community Edition

Hey guys, I am running n8n on a docker/caddy server hosted on digital ocean. I am trying to setup queuing using workers, redis, and postgres. I have everything setup and loaded with no errors. Workflows will be added to the queue but are never removed and actioned on. Any ideas. yml below:

services:
caddy:
image: caddy:latest
restart: unless-stopped
ports:
- “80:80”
- “443:443”
volumes:
- caddy_data:/data
- ${DATA_FOLDER}/caddy_config:/config
- ${DATA_FOLDER}/caddy_config/Caddyfile:/etc/caddy/Caddyfile
dns:
- 8.8.8.8
- 8.8.4.4
- 1.1.1.1

postgres:
image: postgres:13
container_name: postgres
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=test
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
restart: always

n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- 5678:5678
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- N8N_API_ENABLED=true
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=test
- N8N_BASIC_AUTH_PASSWORD=test
- EXECUTIONS_DATA_MAX_AGE=1209600000
- EXECUTIONS_DATA_PRUNE_MAX_COUNT=1000
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false
- N8N_RUNNERS_ENABLED=true
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- N8N_RELEASE_DATE=2025-03-06T00:00:00Z
- N8N_RUNNERS_ENABLED=true
- N8N_DB_TYPE=postgresdb
- N8N_DB_POSTGRESDB_HOST=postgres
- N8N_DB_POSTGRESDB_PORT=5432
- N8N_DB_POSTGRESDB_DATABASE=n8n
- N8N_DB_POSTGRESDB_USER=n8n
- N8N_DB_POSTGRESDB_PASSWORD=test
- N8N_ENCRYPTION_KEY=test
volumes:
- n8n_data:/home/node/.n8n
- ${DATA_FOLDER}/local_files:/files
depends_on:
- postgres
dns:
- 8.8.8.8
- 8.8.4.4
- 1.1.1.1

redis:
image: redis:6
restart: always
volumes:
- redis_data:/data
command: [“redis-server”, “–appendonly”, “yes”]

worker:
image: docker.n8n.io/n8nio/n8n
restart: always
depends_on:
- redis
- postgres
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false
- N8N_RELEASE_DATE=2025-03-06T00:00:00Z
- N8N_RUNNERS_ENABLED=true
- N8N_DB_TYPE=postgresdb
- N8N_DB_POSTGRESDB_HOST=postgres
- N8N_DB_POSTGRESDB_PORT=5432
- N8N_DB_POSTGRESDB_DATABASE=n8n
- N8N_DB_POSTGRESDB_USER=n8n
- N8N_DB_POSTGRESDB_PASSWORD=test
- N8N_BASIC_AUTH_USER=test
- N8N_BASIC_AUTH_PASSWORD=test
- N8N_ENCRYPTION_KEY=test

volumes:
caddy_data:
external: true
n8n_data:
external: true
redis_data:
postgres_data:

Not seeing anything that stands out.

One thing to try, just to be more explicit about hostname between n8n and redis within docker (instead of depending on the service name)…

  1. Add to the redis service: hostname: n8n-redis
  2. Change, in both n8n and worker service environment
    QUEUE_BULL_REDIS_HOST=n8n-redis

Also, until the task runners feature is stable, and/or until you have queue mode working, disable that feature:

  • Change to - N8N_RUNNERS_ENABLED=false

For troubleshooting, add a service for Redis Insight so you can take a peek at what is actually happening in Redis. Once connected to this, you’ll have to configure the connection to Redis in the UI.

  redis-insight:
    image:  redis/redisinsight
    restart: always
    hostname: n8n-redis-insight
    ports:
      - 5540:5540
    volumes:
      - ./redis_insight_data:/data
    depends_on:
      redis:
        condition: service_healthy

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.