Back to Templates
n8n Queue Mode logo

n8n Queue Mode

v2.30.4

n8n running in queue mode for high-throughput production workloads: the main instance handles the editor and webhooks while a scalable pool of workers executes workflows from a Redis (Bull) queue, backed by PostgreSQL.

Deploy on Dokploy

Deploy n8n Queue Mode on Dokploy

  1. Install Dokploy on your server if you haven't already.
  2. In your Dokploy panel, open a project and click Create Service → Template.
  3. Search for n8n Queue Mode and click Create — Dokploy configures domains, environment variables, and volumes for you.

Alternatively, create a Compose service, go to Advanced → Import from Base64, and paste this payload:

base64
ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICBwb3N0Z3JlczpcbiAgICBpbWFnZTogcG9zdGdyZXM6MTctYWxwaW5lXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIC0gUE9TVEdSRVNfVVNFUj0ke1BPU1RHUkVTX1VTRVJ9XG4gICAgICAtIFBPU1RHUkVTX1BBU1NXT1JEPSR7UE9TVEdSRVNfUEFTU1dPUkR9XG4gICAgICAtIFBPU1RHUkVTX0RCPSR7UE9TVEdSRVNfREJ9XG4gICAgdm9sdW1lczpcbiAgICAgIC0gcG9zdGdyZXNfZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcInBnX2lzcmVhZHkgLVUgJHtQT1NUR1JFU19VU0VSfSAtZCAke1BPU1RHUkVTX0RCfVwiXVxuICAgICAgc3RhcnRfcGVyaW9kOiAzMHNcbiAgICAgIGludGVydmFsOiAxMHNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiA1XG5cbiAgcmVkaXM6XG4gICAgaW1hZ2U6IHJlZGlzOjctYWxwaW5lXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBjb21tYW5kOiByZWRpcy1zZXJ2ZXIgLS1yZXF1aXJlcGFzcyAke1JFRElTX1BBU1NXT1JEfVxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBSRURJU19QQVNTV09SRD0ke1JFRElTX1BBU1NXT1JEfVxuICAgIHZvbHVtZXM6XG4gICAgICAtIHJlZGlzX2RhdGE6L2RhdGFcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcInJlZGlzLWNsaSAtYSBcXFwiJCRSRURJU19QQVNTV09SRFxcXCIgcGluZyB8IGdyZXAgUE9OR1wiXVxuICAgICAgc3RhcnRfcGVyaW9kOiAyMHNcbiAgICAgIGludGVydmFsOiAxMHNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiA1XG5cbiAgIyBNYWluIGluc3RhbmNlOiBzZXJ2ZXMgdGhlIGVkaXRvciBVSSBhbmQgd2ViaG9va3MsIHB1Ymxpc2hlcyBleGVjdXRpb25zXG4gICMgdG8gdGhlIFJlZGlzIChCdWxsKSBxdWV1ZSBpbnN0ZWFkIG9mIHJ1bm5pbmcgdGhlbSBpdHNlbGYuXG4gIG44bjpcbiAgICBpbWFnZTogbjhuaW8vbjhuOjIuMzAuNFxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICAjIFBvc3RncmVTUUxcbiAgICAgIC0gREJfVFlQRT1wb3N0Z3Jlc2RiXG4gICAgICAtIERCX1BPU1RHUkVTREJfSE9TVD1wb3N0Z3Jlc1xuICAgICAgLSBEQl9QT1NUR1JFU0RCX1BPUlQ9NTQzMlxuICAgICAgLSBEQl9QT1NUR1JFU0RCX0RBVEFCQVNFPSR7UE9TVEdSRVNfREJ9XG4gICAgICAtIERCX1BPU1RHUkVTREJfVVNFUj0ke1BPU1RHUkVTX1VTRVJ9XG4gICAgICAtIERCX1BPU1RHUkVTREJfUEFTU1dPUkQ9JHtQT1NUR1JFU19QQVNTV09SRH1cblxuICAgICAgIyBRdWV1ZSBtb2RlIChSZWRpcyAvIEJ1bGwpXG4gICAgICAtIEVYRUNVVElPTlNfTU9ERT1xdWV1ZVxuICAgICAgLSBRVUVVRV9CVUxMX1JFRElTX0hPU1Q9cmVkaXNcbiAgICAgIC0gUVVFVUVfQlVMTF9SRURJU19QT1JUPTYzNzlcbiAgICAgIC0gUVVFVUVfQlVMTF9SRURJU19QQVNTV09SRD0ke1JFRElTX1BBU1NXT1JEfVxuICAgICAgLSBRVUVVRV9IRUFMVEhfQ0hFQ0tfQUNUSVZFPXRydWVcbiAgICAgIC0gT0ZGTE9BRF9NQU5VQUxfRVhFQ1VUSU9OU19UT19XT1JLRVJTPXRydWVcblxuICAgICAgIyBFbmNyeXB0aW9uIGtleSBzaGFyZWQgYmV0d2VlbiB0aGUgbWFpbiBpbnN0YW5jZSBhbmQgdGhlIHdvcmtlcnNcbiAgICAgIC0gTjhOX0VOQ1JZUFRJT05fS0VZPSR7TjhOX0VOQ1JZUFRJT05fS0VZfVxuXG4gICAgICAjIE5ldHdvcmtpbmdcbiAgICAgIC0gTjhOX0hPU1Q9JHtOOE5fSE9TVH1cbiAgICAgIC0gTjhOX1BPUlQ9NTY3OFxuICAgICAgLSBOOE5fUFJPVE9DT0w9aHR0cFxuICAgICAgLSBOOE5fUFJPWFlfSE9QUz0xXG4gICAgICAtIE5PREVfRU5WPXByb2R1Y3Rpb25cbiAgICAgIC0gTjhOX1dFQkhPT0tfVVJMPWh0dHBzOi8vJHtOOE5fSE9TVH0vXG4gICAgICAtIE44Tl9FRElUT1JfQkFTRV9VUkw9aHR0cHM6Ly8ke044Tl9IT1NUfS9cbiAgICAgIC0gR0VORVJJQ19USU1FWk9ORT0ke0dFTkVSSUNfVElNRVpPTkV9XG4gICAgICAtIE44Tl9TRUNVUkVfQ09PS0lFPWZhbHNlXG4gICAgdm9sdW1lczpcbiAgICAgIC0gbjhuX2RhdGE6L2hvbWUvbm9kZS8ubjhuXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIHBvc3RncmVzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAgcmVkaXM6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTUQtU0hFTExcIiwgXCJ3Z2V0IC0tc3BpZGVyIC1xIGh0dHA6Ly8xMjcuMC4wLjE6NTY3OC9oZWFsdGh6XCJdXG4gICAgICBzdGFydF9wZXJpb2Q6IDYwc1xuICAgICAgaW50ZXJ2YWw6IDEwc1xuICAgICAgdGltZW91dDogNXNcbiAgICAgIHJldHJpZXM6IDEwXG5cbiAgIyBRdWV1ZSB3b3JrZXJzOiBwdWxsIGV4ZWN1dGlvbnMgZnJvbSBSZWRpcyBhbmQgcnVuIHRoZW0uIFNjYWxlIHRoZW0gYnlcbiAgIyBjaGFuZ2luZyB0aGUgTjhOX1dPUktFUl9SRVBMSUNBUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbmQgcmVkZXBsb3lpbmcuXG4gIG44bi13b3JrZXI6XG4gICAgaW1hZ2U6IG44bmlvL244bjoyLjMwLjRcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGNvbW1hbmQ6IHdvcmtlclxuICAgIGRlcGxveTpcbiAgICAgIHJlcGxpY2FzOiAke044Tl9XT1JLRVJfUkVQTElDQVM6LTJ9XG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICAjIFBvc3RncmVTUUxcbiAgICAgIC0gREJfVFlQRT1wb3N0Z3Jlc2RiXG4gICAgICAtIERCX1BPU1RHUkVTREJfSE9TVD1wb3N0Z3Jlc1xuICAgICAgLSBEQl9QT1NUR1JFU0RCX1BPUlQ9NTQzMlxuICAgICAgLSBEQl9QT1NUR1JFU0RCX0RBVEFCQVNFPSR7UE9TVEdSRVNfREJ9XG4gICAgICAtIERCX1BPU1RHUkVTREJfVVNFUj0ke1BPU1RHUkVTX1VTRVJ9XG4gICAgICAtIERCX1BPU1RHUkVTREJfUEFTU1dPUkQ9JHtQT1NUR1JFU19QQVNTV09SRH1cblxuICAgICAgIyBRdWV1ZSBtb2RlIChSZWRpcyAvIEJ1bGwpXG4gICAgICAtIEVYRUNVVElPTlNfTU9ERT1xdWV1ZVxuICAgICAgLSBRVUVVRV9CVUxMX1JFRElTX0hPU1Q9cmVkaXNcbiAgICAgIC0gUVVFVUVfQlVMTF9SRURJU19QT1JUPTYzNzlcbiAgICAgIC0gUVVFVUVfQlVMTF9SRURJU19QQVNTV09SRD0ke1JFRElTX1BBU1NXT1JEfVxuICAgICAgLSBRVUVVRV9IRUFMVEhfQ0hFQ0tfQUNUSVZFPXRydWVcblxuICAgICAgIyBNdXN0IGJlIHRoZSBzYW1lIGtleSBhcyB0aGUgbWFpbiBpbnN0YW5jZVxuICAgICAgLSBOOE5fRU5DUllQVElPTl9LRVk9JHtOOE5fRU5DUllQVElPTl9LRVl9XG5cbiAgICAgIC0gTk9ERV9FTlY9cHJvZHVjdGlvblxuICAgICAgLSBHRU5FUklDX1RJTUVaT05FPSR7R0VORVJJQ19USU1FWk9ORX1cbiAgICBkZXBlbmRzX29uOlxuICAgICAgbjhuOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgIGhlYWx0aGNoZWNrOlxuICAgICAgdGVzdDogW1wiQ01ELVNIRUxMXCIsIFwid2dldCAtLXNwaWRlciAtcSBodHRwOi8vMTI3LjAuMC4xOjU2NzgvaGVhbHRoelwiXVxuICAgICAgc3RhcnRfcGVyaW9kOiA2MHNcbiAgICAgIGludGVydmFsOiAxMHNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiAxMFxuXG52b2x1bWVzOlxuICBwb3N0Z3Jlc19kYXRhOlxuICByZWRpc19kYXRhOlxuICBuOG5fZGF0YToiLAogICJjb25maWciOiAiW3ZhcmlhYmxlc11cbm1haW5fZG9tYWluID0gXCIke2RvbWFpbn1cIlxucG9zdGdyZXNfdXNlciA9IFwiJHt1c2VybmFtZX1cIlxucG9zdGdyZXNfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcbnBvc3RncmVzX2RiID0gXCJuOG5cIlxucmVkaXNfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcbm44bl9lbmNyeXB0aW9uX2tleSA9IFwiJHtiYXNlNjQ6MzJ9XCJcblxuW2NvbmZpZ11cbm1vdW50cyA9IFtdXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcIm44blwiXG5wb3J0ID0gNV82Nzhcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCJcblxuW2NvbmZpZy5lbnZdXG5OOE5fSE9TVCA9IFwiJHttYWluX2RvbWFpbn1cIlxuR0VORVJJQ19USU1FWk9ORSA9IFwiRXVyb3BlL0JlcmxpblwiXG5cbiMgTnVtYmVyIG9mIHF1ZXVlIHdvcmtlcnMuIENoYW5nZSBpdCBhbmQgcmVkZXBsb3kgdG8gc2NhbGUuXG5OOE5fV09SS0VSX1JFUExJQ0FTID0gXCIyXCJcblxuIyBQb3N0Z3JlU1FMXG5QT1NUR1JFU19VU0VSID0gXCIke3Bvc3RncmVzX3VzZXJ9XCJcblBPU1RHUkVTX1BBU1NXT1JEID0gXCIke3Bvc3RncmVzX3Bhc3N3b3JkfVwiXG5QT1NUR1JFU19EQiA9IFwiJHtwb3N0Z3Jlc19kYn1cIlxuXG4jIFJlZGlzIChCdWxsIHF1ZXVlKVxuUkVESVNfUEFTU1dPUkQgPSBcIiR7cmVkaXNfcGFzc3dvcmR9XCJcblxuIyBFbmNyeXB0aW9uIGtleSBzaGFyZWQgYnkgdGhlIG1haW4gaW5zdGFuY2UgYW5kIHRoZSB3b3JrZXJzIChJTVBPUlRBTlQpXG5OOE5fRU5DUllQVElPTl9LRVkgPSBcIiR7bjhuX2VuY3J5cHRpb25fa2V5fVwiIgp9

Configuration

The exact Docker Compose and template configuration this template deploys.

Instructions

n8n Queue Mode

This template runs n8n in queue mode:

  • n8n (main): serves the editor UI and receives webhooks/triggers, then publishes executions to the queue.
  • n8n-worker (x2 by default): pulls executions from the Redis (Bull) queue and runs them.
  • redis: the message broker for the queue (password protected).
  • postgres: stores workflows, credentials and execution data.

All n8n containers share the same N8N_ENCRYPTION_KEY (generated automatically), which is required for workers to decrypt credentials.

Scaling workers

Worker replicas are controlled by the N8N_WORKER_REPLICAS environment variable (default 2):

  1. Open the compose service in Dokploy and go to the Environment tab.
  2. Change N8N_WORKER_REPLICAS to the number of workers you want.
  3. Redeploy. Docker Compose will scale the n8n-worker service to the requested number of replicas.

Each worker runs up to 10 concurrent executions by default. You can tune this by adding N8N_CONCURRENCY_PRODUCTION_LIMIT to the worker environment.

Optional: dedicated webhook processors

For very high webhook volumes, n8n supports dedicated webhook processor instances (command: webhook). To use them, add another service to the compose file with the same environment as n8n-worker but with command: webhook, and route the /webhook/ path of your domain to it. See the n8n queue mode docs for details.

Related Templates

Self-host n8n Queue Mode in minutes

Dokploy is a free, open source deployment platform. Deploy n8n Queue Mode and 499+ other templates on your own infrastructure with a single click.