Passo 1
Antes de começarmos a configuração do N8n no Portainer.io com Docker Swarm, é essencial garantir um desempenho ótimo e tempo de resposta rápido. Recomendamos contratar um servidor VPS Linux:
Pré-requisitos:
Passo 2
Configurando a Stack da N8N modo Fila e criando um banco de dados no Postgres
Passo 2.1
Antes de subir sua stack é preciso criar um banco de dados no Postgres, conforme o passa-a-passo logo abaixo:
- Acesse a Stack do Postgres

2. Acesse o terminal do postgres:
- Em User: Em vez de “root” acesse com “postgres”
- Dentro do terminal digite os comandos abaixo:
psql
CREATE DATABASE n8n_fila;
[Alternativa 2]
Abra o terminal pelo Bitvise e execute o seguinte comando para acessar seu banco de dados do Postgres copiando o nome do container conforme a foto abaixo:

Copie o comando abaixo:
docker exec -it psql -U postgres
Crie um banco de dados com:
CREATE DATABASE n8n_fila;
Passo 3
Configurando a Stack do N8N Modo Fila
Clique em Stack no menu lateral e depois em + Add Stack no menu superior do lado direito.

Atente-se para três serviços, sendo, dois domínios
n8n_webhook (webhook.digitalinterativo.com.br)
n8n_worker (não nessecita de dóminio)
version: "3.8"
services:
n8n_editor:
image: n8nio/n8n:latest
#command: start
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_DATABASE: n8n_fila
DB_POSTGRESDB_USER: postgres
DB_POSTGRESDB_PASSWORD:
# criar chave https://acte.ltd/utils/randomkeygen
N8N_ENCRYPTION_KEY:
# hosts e URL
N8N_HOST: n8n.digitalinterativo.com.br
N8N_EDITOR_BASE_URL: https://n8n.digitalinterativo.com.br/
N8N_PROTOCOL: https
NODE_ENV: production
# webhooks
WEBHOOK_URL: https://webhook.digitalinterativo.com.br/
# modo de execuçao para fila
EXECUTIONS_MODE: queue
# redis
QUEUE_BULL_REDIS_HOST: redis
QUEUE_BULL_REDIS_PORT: 6379
QUEUE_BULL_REDIS_DB: 2
# bibliotecas utilizadas
NODE_FUNCTION_ALLOW_EXTERNAL: moment,lodash,moment-with-locales
EXECUTIONS_DATA_PRUNE: 'true'
EXECUTIONS_DATA_MAX_AGE: 336
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: '0.3'
memory: 512M
labels:
- traefik.enable=true
- traefik.http.routers.n8n_editor.rule=Host(`n8n.digitalinterativo.com.br`)
- traefik.http.routers.n8n_editor.service=n8n_editor
- traefik.http.routers.n8n_editor.entrypoints=websecure
- traefik.http.routers.n8n_editor.tls.certresolver=le
- traefik.http.routers.n8n_editor.tls=true
- traefik.http.services.n8n_editor.loadbalancer.server.port=5678
networks:
- traefik_public
- digital_network
n8n_webhook:
image: n8nio/n8n:latest
command: webhook
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_DATABASE: n8n_fila
DB_POSTGRESDB_USER: postgres
DB_POSTGRESDB_PASSWORD:
# criar chave https://acte.ltd/utils/randomkeygen
N8N_ENCRYPTION_KEY:
# hosts e URL
N8N_HOST: n8n.digitalinterativo.com.br
N8N_EDITOR_BASE_URL: https://n8n.digitalinterativo.com.br/
N8N_PROTOCOL: https
NODE_ENV: production
# webhooks
WEBHOOK_URL: https://webhook.digitalinterativo.com.br/
# modo de execuçao para fila
EXECUTIONS_MODE: queue
# redis
QUEUE_BULL_REDIS_HOST: redis
QUEUE_BULL_REDIS_PORT: 6379
QUEUE_BULL_REDIS_DB: 2
# bibliotecas utilizadas
NODE_FUNCTION_ALLOW_EXTERNAL: moment,lodash,moment-with-locales
EXECUTIONS_DATA_PRUNE: 'true'
EXECUTIONS_DATA_MAX_AGE: 336
deploy:
mode: replicated
# pode criar replicas
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: '0.5'
memory: 320M
labels:
- traefik.enable=true
- traefik.http.routers.n8n_webhook.rule=Host(`webhook.digitalinterativo.com.br`)
- traefik.http.routers.n8n_webhook.service=n8n_webhook
- traefik.http.routers.n8n_webhook.entrypoints=websecure
- traefik.http.routers.n8n_webhook.tls.certresolver=le
- traefik.http.routers.n8n_webhook.tls=true
- traefik.http.services.n8n_webhook.loadbalancer.server.port=5678
networks:
- traefik_public
- digital_network
n8n_worker:
image: n8nio/n8n:latest
command: worker --concurrency=3
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_DATABASE: n8n_fila
DB_POSTGRESDB_USER: postgres
DB_POSTGRESDB_PASSWORD:
# criar chave https://acte.ltd/utils/randomkeygen
N8N_ENCRYPTION_KEY:
# hosts e URL
N8N_HOST: n8n.seu_dominio.com.br
N8N_EDITOR_BASE_URL: https://n8n.digitalinterativo.com.br/
N8N_PROTOCOL: https
NODE_ENV: production
# webhooks
WEBHOOK_URL: https://webhook.digitalinterativo.com.br/
# modo de execuçao para fila
EXECUTIONS_MODE: queue
# redis
QUEUE_BULL_REDIS_HOST: redis
QUEUE_BULL_REDIS_PORT: 6379
QUEUE_BULL_REDIS_DB: 2
# bibliotecas utilizadas
NODE_FUNCTION_ALLOW_EXTERNAL: moment,lodash,moment-with-locales
EXECUTIONS_DATA_PRUNE: 'true'
EXECUTIONS_DATA_MAX_AGE: 336
deploy:
mode: replicated
# pode criar replicas
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: '0.5'
memory: 384M
networks:
- traefik_public
- digital_network
networks:
traefik_public:
external: true
digital_network:
external: true
Use o link abaixo para gerar a senha de 32 caracteres conforme mencionado no vídeo.
Gostou do conteúdo? Quer apoiar nosso trabalho?
Você pode fazer uma doação e nos ajudar a continuar criando conteúdo de qualidade. Acesse o link para ver as formas de pagamento disponíveis: https://www.asaas.com/c/io73sms6maiim7ud
Chave Pix: (15) 99855-8323