Back to Apps
n8n.io Queue Mode

Deploy n8n.io Queue Mode on Your Own Server

Node based workflow automation tool - Queue mode

Automation

Want to deploy n8n.io Queue Mode on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

What is n8n.io Queue Mode?

n8n in queue mode is an advanced execution setting designed for scalability and distributed workflow processing. Unlike the default single-process mode, where triggers and workflow runs share the same thread, queue mode splits the backend into separate components. This separation enables horizontal scaling, improved performance under load, and isolation between trigger handling and execution.

Self-Host n8n.io Queue Mode

Follow these steps to deploy on your own server.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

Application
Postgres
Redis
3

Deploy

Copy the configuration and run it on your server.

services:
  n8n_io_queue_mode-editor:
    image: n8nio/n8n:1.106.3
    environment:
      DB_POSTGRESDB_DATABASE: n8n_queue
      DB_POSTGRESDB_HOST: n8n_io_queue_mode-postgres
      DB_POSTGRESDB_PASSWORD: 99291752710bc1c2bdf66ce1c3966e201f1ec8d3b331459797
      DB_POSTGRESDB_USER: n8n_queue
      DB_TYPE: postgresdb
      EXECUTIONS_MODE: queue
      GENERIC_TIMEZONE: UTC
      N8N_CONCURRENCY_PRODUCTION_LIMIT: "10"
      N8N_DEFAULT_LOCALE: en
      N8N_DIAGNOSTICS_ENABLED: "false"
      N8N_EDITOR_BASE_URL: https://n8n_io_queue_mode-editor.your-domain.com
      N8N_EMAIL_MODE: smtp
      N8N_ENCRYPTION_KEY: 864e6b05c9094e2dd00ccc3fb38a5558be0eb5e1
      N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
      N8N_HOST: n8n_io_queue_mode-editor.your-domain.com
      N8N_PROTOCOL: https
      N8N_RUNNERS_ENABLED: "true"
      N8N_SMTP_HOST: ""
      N8N_SMTP_PASS: ""
      N8N_SMTP_PORT: ""
      N8N_SMTP_SENDER: ""
      N8N_SMTP_SSL: "true"
      N8N_SMTP_USER: ""
      NODE_ENV: production
      OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS: "true"
      QUEUE_BULL_REDIS_HOST: n8n_io_queue_mode-redis
      QUEUE_BULL_REDIS_PORT: "6379"
      TZ: UTC
      WEBHOOK_URL: https://n8n_io_queue_mode-webhooks.your-domain.com
    volumes:
      - n8n_io_queue_mode-data:/home/node/.n8n
      - n8n_io_queue_mode-files:/files
    depends_on:
      - n8n_io_queue_mode-postgres
      - n8n_io_queue_mode-redis
  n8n_io_queue_mode-postgres:
    image: pgvector/pgvector:pg14
    environment:
      POSTGRES_DB: n8n_queue
      POSTGRES_PASSWORD: 99291752710bc1c2bdf66ce1c3966e201f1ec8d3b331459797
      POSTGRES_USER: n8n_queue
      TZ: UTC
    volumes:
      - n8n_io_queue_mode-postgres-data:/var/lib/postgresql/data
  n8n_io_queue_mode-redis:
    image: redis:8.2.0
    volumes:
      - n8n_io_queue_mode-redis-data:/data
  n8n_io_queue_mode-webhooks:
    image: n8nio/n8n:1.106.3
    environment:
      DB_POSTGRESDB_DATABASE: n8n_queue
      DB_POSTGRESDB_HOST: n8n_io_queue_mode-postgres
      DB_POSTGRESDB_PASSWORD: 99291752710bc1c2bdf66ce1c3966e201f1ec8d3b331459797
      DB_POSTGRESDB_USER: n8n_queue
      DB_TYPE: postgresdb
      EXECUTIONS_MODE: queue
      GENERIC_TIMEZONE: UTC
      N8N_CONCURRENCY_PRODUCTION_LIMIT: "10"
      N8N_DEFAULT_LOCALE: en
      N8N_DIAGNOSTICS_ENABLED: "false"
      N8N_EDITOR_BASE_URL: https://n8n_io_queue_mode-editor.your-domain.com
      N8N_EMAIL_MODE: smtp
      N8N_ENCRYPTION_KEY: 864e6b05c9094e2dd00ccc3fb38a5558be0eb5e1
      N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
      N8N_HOST: n8n_io_queue_mode-editor.your-domain.com
      N8N_PROTOCOL: https
      N8N_RUNNERS_ENABLED: "true"
      N8N_SMTP_HOST: ""
      N8N_SMTP_PASS: ""
      N8N_SMTP_PORT: ""
      N8N_SMTP_SENDER: ""
      N8N_SMTP_SSL: "true"
      N8N_SMTP_USER: ""
      NODE_ENV: production
      OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS: "true"
      QUEUE_BULL_REDIS_HOST: n8n_io_queue_mode-redis
      QUEUE_BULL_REDIS_PORT: "6379"
      TZ: UTC
      WEBHOOK_URL: https://n8n_io_queue_mode-webhooks.your-domain.com
    volumes:
      - n8n_io_queue_mode-data:/home/node/.n8n
      - n8n_io_queue_mode-files:/files
    depends_on:
      - n8n_io_queue_mode-postgres
      - n8n_io_queue_mode-redis
  n8n_io_queue_mode-workers:
    image: n8nio/n8n:1.106.3
    environment:
      DB_POSTGRESDB_DATABASE: n8n_queue
      DB_POSTGRESDB_HOST: n8n_io_queue_mode-postgres
      DB_POSTGRESDB_PASSWORD: 99291752710bc1c2bdf66ce1c3966e201f1ec8d3b331459797
      DB_POSTGRESDB_USER: n8n_queue
      DB_TYPE: postgresdb
      EXECUTIONS_MODE: queue
      GENERIC_TIMEZONE: UTC
      N8N_CONCURRENCY_PRODUCTION_LIMIT: "10"
      N8N_DEFAULT_LOCALE: en
      N8N_DIAGNOSTICS_ENABLED: "false"
      N8N_EDITOR_BASE_URL: https://n8n_io_queue_mode-editor.your-domain.com
      N8N_EMAIL_MODE: smtp
      N8N_ENCRYPTION_KEY: 864e6b05c9094e2dd00ccc3fb38a5558be0eb5e1
      N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
      N8N_HOST: n8n_io_queue_mode-editor.your-domain.com
      N8N_PROTOCOL: https
      N8N_RUNNERS_ENABLED: "true"
      N8N_SMTP_HOST: ""
      N8N_SMTP_PASS: ""
      N8N_SMTP_PORT: ""
      N8N_SMTP_SENDER: ""
      N8N_SMTP_SSL: "true"
      N8N_SMTP_USER: ""
      NODE_ENV: production
      OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS: "true"
      QUEUE_BULL_REDIS_HOST: n8n_io_queue_mode-redis
      QUEUE_BULL_REDIS_PORT: "6379"
      TZ: UTC
      WEBHOOK_URL: https://n8n_io_queue_mode-webhooks.your-domain.com
    volumes:
      - n8n_io_queue_mode-data:/home/node/.n8n
      - n8n_io_queue_mode-files:/files
    depends_on:
      - n8n_io_queue_mode-postgres
      - n8n_io_queue_mode-redis
volumes:
  n8n_io_queue_mode-data: {}
  n8n_io_queue_mode-files: {}
  n8n_io_queue_mode-postgres-data: {}
  n8n_io_queue_mode-redis-data: {}

Then run:

docker compose up -d
4

Access

Once started, access your app at http://localhost:5678

Why Self-Host n8n.io Queue Mode?

Full Data Ownership

Your data stays on your servers. No third-party access.

No Monthly Fees

Pay only for your server. No per-seat or usage charges.

Complete Control

Customize, backup, and scale on your own terms.

Privacy & Compliance

Meet GDPR, HIPAA, or internal security requirements.

Technical Details

Docker Image

n8nio/n8n:${N8N_VERSION}

Want to go faster?

Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.

Install on any Linux server:

sh -c "$(curl -sSL https://get.senate.sh)"