Skip to content

Instantly share code, notes, and snippets.

@samuelcaldas
Last active December 10, 2024 21:28
Show Gist options
  • Save samuelcaldas/d95976c1cc8760febb09667558052dc5 to your computer and use it in GitHub Desktop.
Save samuelcaldas/d95976c1cc8760febb09667558052dc5 to your computer and use it in GitHub Desktop.
whatsapp-stack
version: "3.9"
services:
postgres:
image: postgres:14
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=SenhaSeguraAqui
- POSTGRES_DB=n8ndb
- TZ=America/Sao_Paulo
volumes:
- stack_postgres_data:/var/lib/postgresql/data
networks:
- stack_public
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: "0.5"
memory: 1024M
labels:
# Mantendo labels do Traefik para retrocompatibilidade
- traefik.enable=true
- traefik.http.routers.postgres.rule=Host(`postgres.alanweslley.com.br`)
- traefik.http.routers.postgres.entrypoints=websecure
- traefik.http.routers.postgres.tls.certresolver=letsencryptresolver
- traefik.http.services.postgres.loadbalancer.server.port=5432
redis:
image: redis:latest
command: ["redis-server","--appendonly","yes","--port","6379"]
volumes:
- stack_redis_data:/data
networks:
- stack_public
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: "0.5"
memory: 1024M
labels:
- traefik.enable=true
- traefik.http.routers.redis.rule=Host(`redis.alanweslley.com.br`)
- traefik.http.routers.redis.entrypoints=websecure
- traefik.http.routers.redis.tls.certresolver=letsencryptresolver
- traefik.http.services.redis.loadbalancer.server.port=6379
n8n_editor:
image: n8nio/n8n:latest
command: start
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_DATABASE=n8ndb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_USER=postgres
- DB_POSTGRESDB_PASSWORD=SenhaSeguraAqui
- N8N_ENCRYPTION_KEY=ChaveGeradaUnicaAqui
- N8N_HOST=n8n.alanweslley.com.br
- N8N_EDITOR_BASE_URL=https://n8n.alanweslley.com.br/
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://webhook.alanweslley.com.br/
- EXECUTIONS_MODE=queue
- N8N_REINSTALL_MISSING_PACKAGES=true
- N8N_COMMUNITY_PACKAGES_ENABLED=true
- N8N_NODE_PATH=/home/node/.n8n/nodes
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_BULL_REDIS_DB=2
- NODE_FUNCTION_ALLOW_EXTERNAL=moment,lodash,moment-with-locales
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=336
- GENERIC_TIMEZONE=America/Sao_Paulo
- TZ=America/Sao_Paulo
volumes:
- stack_n8n_data:/home/node/.n8n
networks:
- stack_public
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: "0.5"
memory: 1024M
labels:
- traefik.enable=true
- traefik.http.routers.n8n_editor.rule=Host(`n8n.alanweslley.com.br`)
- traefik.http.routers.n8n_editor.entrypoints=websecure
- traefik.http.routers.n8n_editor.tls.certresolver=letsencryptresolver
- traefik.http.services.n8n_editor.loadbalancer.server.port=5678
n8n_webhook:
image: n8nio/n8n:latest
command: webhook
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_DATABASE=n8ndb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_USER=postgres
- DB_POSTGRESDB_PASSWORD=SenhaSeguraAqui
- N8N_ENCRYPTION_KEY=ChaveGeradaUnicaAqui
- N8N_HOST=n8n.alanweslley.com.br
- N8N_EDITOR_BASE_URL=https://n8n.alanweslley.com.br/
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://webhook.alanweslley.com.br/
- EXECUTIONS_MODE=queue
- N8N_REINSTALL_MISSING_PACKAGES=true
- N8N_COMMUNITY_PACKAGES_ENABLED=true
- N8N_NODE_PATH=/home/node/.n8n/nodes
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_BULL_REDIS_DB=2
- NODE_FUNCTION_ALLOW_EXTERNAL=moment,lodash,moment-with-locales
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=336
- GENERIC_TIMEZONE=America/Sao_Paulo
- TZ=America/Sao_Paulo
networks:
- stack_public
deploy:
mode: replicated
replicas: 2
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: "0.5"
memory: 1024M
labels:
- traefik.enable=true
- traefik.http.routers.n8n_webhook.rule=Host(`webhook.alanweslley.com.br`)
- traefik.http.routers.n8n_webhook.entrypoints=websecure
- traefik.http.routers.n8n_webhook.tls.certresolver=letsencryptresolver
- traefik.http.services.n8n_webhook.loadbalancer.server.port=5678
n8n_worker:
image: n8nio/n8n:latest
command: worker --concurrency=10
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_DATABASE=n8ndb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_USER=postgres
- DB_POSTGRESDB_PASSWORD=SenhaSeguraAqui
- N8N_ENCRYPTION_KEY=ChaveGeradaUnicaAqui
- N8N_HOST=n8n.alanweslley.com.br
- N8N_EDITOR_BASE_URL=https://n8n.alanweslley.com.br/
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://webhook.alanweslley.com.br/
- EXECUTIONS_MODE=queue
- N8N_REINSTALL_MISSING_PACKAGES=true
- N8N_COMMUNITY_PACKAGES_ENABLED=true
- N8N_NODE_PATH=/home/node/.n8n/nodes
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_BULL_REDIS_DB=2
- NODE_FUNCTION_ALLOW_EXTERNAL=moment,lodash,moment-with-locales
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=336
- GENERIC_TIMEZONE=America/Sao_Paulo
- TZ=America/Sao_Paulo
networks:
- stack_public
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: "0.5"
memory: 1024M
meow:
image: aldinokemal2104/go-whatsapp-web-multidevice:latest
environment:
- PORT=3000
- DEBUG=false
- TZ=America/Sao_Paulo
volumes:
- stack_meow_data:/app/data
networks:
- stack_public
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: "0.5"
memory: 1024M
labels:
- traefik.enable=true
- traefik.http.routers.meow.rule=Host(`meow.alanweslley.com.br`)
- traefik.http.routers.meow.entrypoints=websecure
- traefik.http.routers.meow.tls.certresolver=letsencryptresolver
- traefik.http.services.meow.loadbalancer.server.port=3000
networks:
stack_public:
driver: overlay
volumes:
stack_n8n_data:
stack_postgres_data:
stack_redis_data:
stack_meow_data:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment