Skip to content

Instantly share code, notes, and snippets.

@DRIMOL
Last active March 2, 2024 14:25
Show Gist options
  • Save DRIMOL/6396b5599909b7abfd84ccfedf0b47c3 to your computer and use it in GitHub Desktop.
Save DRIMOL/6396b5599909b7abfd84ccfedf0b47c3 to your computer and use it in GitHub Desktop.
version: "3.7"
# Definição dos Serviços
services:
# Definição do Serviço do Editor
n8n_editor:
# imagem do docker
image: n8nio/n8n:1.6.1
# comando padrão para subir o servidor web
command: start
# configura a rede do serviço
networks:
- network_public
# configura as variáveis de ambiente
environment:
# Define o Tipo de Banco de Dados para Postgres
- DB_TYPE=postgresdb
# Configura o Nome do Banco de Dados
- DB_POSTGRESDB_DATABASE=n8n
# Configura o Host do Banco de Dados
- DB_POSTGRESDB_HOST=postgres
# Configura a Porta do Banco de Dados
- DB_POSTGRESDB_PORT=5432
# Configura o Usuário do Banco de Dados
- DB_POSTGRESDB_USER=postgres
# Configura a Senha do Banco de Dados
- DB_POSTGRESDB_PASSWORD=<<PASSWORD>>
# Cria uma chave de criptografia para o N8N
# Gere uma nova aqui https://www.allkeysgenerator.com/Random/Security-Encryption-Key-Generator.aspx
# escolha a opção GUID
- N8N_ENCRYPTION_KEY=<<KEY>>
# Configura o Host do Editor do N8N
- N8N_HOST=n8nsys.work.dev
# Configura o Endereço competo do Editor
- N8N_EDITOR_BASE_URL=https://n8nsys.work.dev/
# Força o uso de SSL
- N8N_PROTOCOL=https
# Configura o ambiente de execução
- NODE_ENV=production
# Configura o Endereço do Webhook
- WEBHOOK_URL=https://n8nwhk.work.dev/
# Configura o modo de execução para fila
- EXECUTIONS_MODE=queue
# Configura o host do Redis
- QUEUE_BULL_REDIS_HOST=redisn8n_redis
# Configura a porta do Redis
- QUEUE_BULL_REDIS_PORT=6379
# Configura o indice do banco de dados do Redis
- QUEUE_BULL_REDIS_DB=2
# Configura as bibliotecas externas que serão utilizadas
- NODE_FUNCTION_ALLOW_EXTERNAL=moment,lodash,moment-with-locales
# Configura a limpeza dos dados de execução
- EXECUTIONS_DATA_PRUNE=true
# Configura o tempo máximo de armazenamento dos dados de execução
- EXECUTIONS_DATA_MAX_AGE=336 # 2 semanas
# Configura o Modo de Deploy da Aplicação
- GENERIC_TIMEZONE=America/Recife
deploy:
# O editor será executado no modo de replicação
mode: replicated
# Vamos ter apenas uma instância do editor
replicas: 1
# Configura o local de execução
placement:
constraints:
# Você pode rodar o Editor no Manager mesmo pois usa poucos recursos
#- node.role == manager
- node.hostname == system
# - node.labels.app == http # nome do label: app, valor do label: http
# Limitação
resources:
# Definição dos Limites de Recursos deste Serviço
limits:
# Define a quantidade de CPU para o CodeChat para evitar travamento do Host
cpus: "1"
# Define a quantidade de RAM para o CodeChat para evitar travamento do Host
memory: 1024M
labels:
# Configura o Roteamento do Traefik
- traefik.enable=true
- traefik.http.routers.n8n_editor.rule=Host(`n8nsys.work.dev`)
- traefik.http.routers.n8n_editor.entrypoints=websecure
- traefik.http.routers.n8n_editor.priority=1
- traefik.http.routers.n8n_editor.tls.certresolver=letsencryptresolver
- traefik.http.routers.n8n_editor.service=n8n_editor
- traefik.http.services.n8n_editor.loadbalancer.server.port=5678
- traefik.http.services.n8n_editor.loadbalancer.passHostHeader=1
n8n_webhook:
# imagem do docker
image: n8nio/n8n:1.6.1
# comando padrão para subir o servidor web
command: webhook
# configura a rede do serviço
networks:
- network_public
# configura as variáveis de ambiente
environment:
# Define o Tipo de Banco de Dados para Postgres
- DB_TYPE=postgresdb
# Configura o Nome do Banco de Dados
- DB_POSTGRESDB_DATABASE=n8n
# Configura o Host do Banco de Dados
- DB_POSTGRESDB_HOST=postgres
# Configura a Porta do Banco de Dados
- DB_POSTGRESDB_PORT=5432
# Configura o Usuário do Banco de Dados
- DB_POSTGRESDB_USER=postgres
# Configura a Senha do Banco de Dados
- DB_POSTGRESDB_PASSWORD=<<PASSWORD>>
# usa a mesma chave criada no editor
- N8N_ENCRYPTION_KEY=<<encript>>
# Configura o Host do Editor do N8N
- N8N_HOST=n8nsys.work.dev
# Configura o Endereço competo do Editor
- N8N_EDITOR_BASE_URL=https://n8nsys.work.dev/
# Força o uso de SSL
- N8N_PROTOCOL=https
# Configura o ambiente de execução
- NODE_ENV=production
# Configura o Endereço do Webhook
- WEBHOOK_URL=https://n8nwhk.work.dev/
# Configura o modo de execução para fila
- EXECUTIONS_MODE=queue
# Configura o host do Redis
- QUEUE_BULL_REDIS_HOST=redisn8n_redis
# Configura a porta do Redis
- QUEUE_BULL_REDIS_PORT=6379
# Configura o indice do banco de dados do Redis
- QUEUE_BULL_REDIS_DB=2
# Configura as bibliotecas externas que serão utilizadas
- NODE_FUNCTION_ALLOW_EXTERNAL=moment,lodash,moment-with-locales
# Configura a limpeza dos dados de execução
- EXECUTIONS_DATA_PRUNE=true
# Configura o tempo máximo de armazenamento dos dados de execução
- EXECUTIONS_DATA_MAX_AGE=336 # 2 semanas
# Configura o Modo de Deploy da Aplicação
- GENERIC_TIMEZONE=America/Recife
deploy:
# O editor será executado no modo de replicação
mode: replicated
# Vamos ter apenas uma instância do editor
replicas: 1
# Configura o local de execução
placement:
# Você pode rodar o Editor no Manager mesmo pois usa poucos recursos
constraints:
#- node.role == manager
- node.hostname == system
# - node.labels.app == workers # nome do label: app, valor do label: workers
resources:
# Definição dos Limites de Recursos deste Serviço
limits:
# Define a quantidade de CPU para o CodeChat para evitar travamento do Host
cpus: "1"
# Define a quantidade de RAM para o CodeChat para evitar travamento do Host
memory: 1024M
labels:
# Configura o Roteamento do Traefik
- traefik.enable=true
- traefik.http.routers.n8n_webhook.rule=(Host(`n8nwhk.work.dev`))
- traefik.http.routers.n8n_webhook.entrypoints=websecure
- traefik.http.routers.n8n_webhook.priority=1
- traefik.http.routers.n8n_webhook.tls.certresolver=letsencryptresolver
- traefik.http.routers.n8n_webhook.service=n8n_webhook
- traefik.http.services.n8n_webhook.loadbalancer.server.port=5678
- traefik.http.services.n8n_webhook.loadbalancer.passHostHeader=1
n8n_worker:
# imagem do docker
image: n8nio/n8n:1.6.1
# comando padrão para subir o servidor web
command: worker --concurrency=10
# configura a rede do serviço
networks:
- network_public
# configura as variáveis de ambiente
environment:
# Define o Tipo de Banco de Dados para Postgres
- DB_TYPE=postgresdb
# Configura o Nome do Banco de Dados
- DB_POSTGRESDB_DATABASE=n8n
# Configura o Host do Banco de Dados
- DB_POSTGRESDB_HOST=postgres
# Configura a Porta do Banco de Dados
- DB_POSTGRESDB_PORT=5432
# Configura o Usuário do Banco de Dados
- DB_POSTGRESDB_USER=postgres
# Configura a Senha do Banco de Dados
- DB_POSTGRESDB_PASSWORD=<<PASSWORD>>
# usa a mesma chave criada no editor
- N8N_ENCRYPTION_KEY=<<encript>>
# Configura o Host do Editor do N8N
- N8N_HOST=n8nsys.work.dev
# Configura o Endereço competo do Editor
- N8N_EDITOR_BASE_URL=https://n8nsys.work.dev
# Força o uso de SSL
- N8N_PROTOCOL=https
# Configura o ambiente de execução
- NODE_ENV=production
# Configura o Endereço do Webhook
- WEBHOOK_URL=https://n8nwhk.work.dev/
# Configura o modo de execução para fila
- EXECUTIONS_MODE=queue
# Configura o host do Redis
- QUEUE_BULL_REDIS_HOST=redisn8n_redis
# Configura a porta do Redis
- QUEUE_BULL_REDIS_PORT=6379
# Configura o indice do banco de dados do Redis
- QUEUE_BULL_REDIS_DB=2
# Configura as bibliotecas externas que serão utilizadas
- NODE_FUNCTION_ALLOW_EXTERNAL=moment,lodash,moment-with-locales
# Configura a limpeza dos dados de execução
- EXECUTIONS_DATA_PRUNE=true
# Configura o tempo máximo de armazenamento dos dados de execução
- EXECUTIONS_DATA_MAX_AGE=336 # 2 semanas
# Configura o Modo de Deploy da Aplicação
- GENERIC_TIMEZONE=America/Recife
deploy:
# O editor será executado no modo de replicação
mode: replicated
# Vamos ter apenas uma instância do editor
replicas: 1
# Configura o local de execução
placement:
# Você pode rodar o Editor no Manager mesmo pois usa poucos recursos
constraints:
#- node.role == manager
- node.hostname == system
# - node.labels.app == webhooks # nome do label: app, valor do label: webhooks
resources:
# Definição dos Limites de Recursos deste Serviço
limits:
# Define a quantidade de CPU para o CodeChat para evitar travamento do Host
cpus: "1"
# Define a quantidade de RAM para o CodeChat para evitar travamento do Host
memory: 1024M
networks:
network_public:
name: network_public
external: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment