Subir archivos a "stack-odoohub"
This commit is contained in:
227
stack-odoohub/odoo-stack.yml
Normal file
227
stack-odoohub/odoo-stack.yml
Normal file
@@ -0,0 +1,227 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
# --------------------------- DATABASE (PostgreSQL) --------------------------- #
|
||||
# Serviço de banco de dados relacional utilizado por Odoo e Evolution para persistência de dados.
|
||||
db:
|
||||
image: postgres:16
|
||||
user: root
|
||||
environment:
|
||||
- POSTGRES_USER= # Usuário do banco de dados (ex: admin)
|
||||
- POSTGRES_PASSWORD= # Senha do banco de dados
|
||||
- POSTGRES_DB= # Nome do banco de dados (ex: postgres)
|
||||
volumes:
|
||||
- db_data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- netpevo
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
resources:
|
||||
limits:
|
||||
cpus: "1"
|
||||
memory: 1024M
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
# Remova a porta abaixo se for usar Traefik para expor o serviço
|
||||
#ports:
|
||||
# - 5432:5432
|
||||
|
||||
# --------------------------- ODOO (DiscussHub) --------------------------- #
|
||||
# ERP Odoo customizado com DiscussHub, plataforma de gestão empresarial e comunicação integrada.
|
||||
odoo:
|
||||
image: discusshub/discuss_hub:latest
|
||||
depends_on:
|
||||
- db
|
||||
tty: true
|
||||
command: odoo -d odoo -i discuss_hub -u discuss_hub
|
||||
environment:
|
||||
- ODOO_RC=/etc/odoo/odoo.conf
|
||||
- HOST=db
|
||||
- USER= # Usuário do banco de dados (ex: admin)
|
||||
- PASSWORD= # Senha do banco de dados
|
||||
- ADMIN_PASSWORD= # Senha do usuário admin do Odoo
|
||||
- SMTP_SERVER=mailpit
|
||||
- SMTP_PORT=1025
|
||||
- EVOLUTION_URL=http://evolution:8080
|
||||
- EVOLUTION_API_KEY= # Chave de API do Evolution
|
||||
- EVOLUTION_ODOO_URL=http://odoo:8069
|
||||
volumes:
|
||||
- odoo_conf:/etc/odoo
|
||||
- odoo_data:/var/lib/odoo
|
||||
networks:
|
||||
- netpevo
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
resources:
|
||||
limits:
|
||||
cpus: "2"
|
||||
memory: 2048M
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.odoo.rule=Host(`odoo.seudominio.com.br`) # Altere para seu domínio
|
||||
- traefik.http.services.odoo.loadbalancer.server.port=8069
|
||||
- traefik.http.routers.odoo.service=odoo
|
||||
- traefik.http.routers.odoo.tls.certresolver=letsencryptresolver
|
||||
- traefik.http.routers.odoo.entrypoints=websecure
|
||||
- traefik.http.routers.odoo.tls=true
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
# Remova a porta abaixo se for usar Traefik para expor o serviço
|
||||
#ports:
|
||||
# - "8069:8069"
|
||||
|
||||
# --------------------------- EVOLUTION API --------------------------- #
|
||||
# API Evolution: plataforma de automação, integração e comunicação multicanal (WhatsApp, etc).
|
||||
evolution:
|
||||
image: evoapicloud/evolution-api:v2.3.0
|
||||
depends_on:
|
||||
- redis
|
||||
- db
|
||||
volumes:
|
||||
- evolution_instances:/evolution/instances
|
||||
networks:
|
||||
- netpevo
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
resources:
|
||||
limits:
|
||||
cpus: "1"
|
||||
memory: 1024M
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.evolution.rule=Host(`evolution.seudominio.com.br`) # Altere para seu domínio
|
||||
- traefik.http.services.evolution.loadbalancer.server.port=8080
|
||||
- traefik.http.routers.evolution.service=evolution
|
||||
- traefik.http.routers.evolution.tls.certresolver=letsencryptresolver
|
||||
- traefik.http.routers.evolution.entrypoints=websecure
|
||||
- traefik.http.routers.evolution.tls=true
|
||||
environment:
|
||||
- SERVER_URL=http://localhost:8080
|
||||
- DATABASE_PROVIDER=postgresql
|
||||
- DATABASE_CONNECTION_URI= # URI de conexão do banco (ex: postgresql://usuario:senha@db:5432/nome_db?schema=public)
|
||||
- DATABASE_SAVE_DATA_INSTANCE=true
|
||||
- DATABASE_SAVE_DATA_NEW_MESSAGE=true
|
||||
- DATABASE_SAVE_MESSAGE_UPDATE=true
|
||||
- DATABASE_SAVE_DATA_CONTACTS=true
|
||||
- DATABASE_SAVE_DATA_CHATS=true
|
||||
- DATABASE_SAVE_DATA_LABELS=true
|
||||
- DATABASE_SAVE_DATA_HISTORIC=true
|
||||
- DATABASE_SAVE_IS_ON_WHATSAPP=true
|
||||
- DATABASE_SAVE_IS_ON_WHATSAPP_DAYS=14
|
||||
- DATABASE_DELETE_MESSAGE=true
|
||||
- CACHE_REDIS_ENABLED=true
|
||||
- CACHE_REDIS_URI=redis://redis:6379/6
|
||||
- CACHE_REDIS_TTL=604800
|
||||
- CACHE_REDIS_PREFIX_KEY=evolution
|
||||
- CACHE_REDIS_SAVE_INSTANCES=false
|
||||
- CACHE_LOCAL_ENABLED=false
|
||||
- CONFIG_SESSION_PHONE_CLIENT=Conexao Azul
|
||||
- CONFIG_SESSION_PHONE_NAME=Chrome
|
||||
- CONFIG_SESSION_PHONE_VERSION=2.3000.1020885143
|
||||
- AUTHENTICATION_API_KEY= # Chave de API de autenticação
|
||||
- WA_BUSINESS_TOKEN_WEBHOOK=evolution
|
||||
- WA_BUSINESS_URL=https://graph.facebook.com
|
||||
- WA_BUSINESS_VERSION=v21.0
|
||||
- WA_BUSINESS_LANGUAGE=pt_BR
|
||||
- OPENAI_ENABLED=true
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
# Remova a porta abaixo se for usar Traefik para expor o serviço
|
||||
#ports:
|
||||
# - 8080:8080
|
||||
|
||||
# --------------------------- REDIS --------------------------- #
|
||||
# Redis: banco de dados em memória utilizado como cache e para filas de mensagens pela Evolution API.
|
||||
redis:
|
||||
image: redis:latest
|
||||
command: redis-server --port 6379 --appendonly yes
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
networks:
|
||||
- netpevo
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
resources:
|
||||
limits:
|
||||
cpus: "0.5"
|
||||
memory: 512M
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
# Remova a porta abaixo se for usar Traefik para expor o serviço
|
||||
#ports:
|
||||
# - 6379:6379
|
||||
|
||||
# --------------------------- MAILPIT --------------------------- #
|
||||
# Mailpit: servidor SMTP fake para testes de envio de e-mails em ambiente de desenvolvimento.
|
||||
mailpit:
|
||||
image: docker.io/axllent/mailpit:latest
|
||||
networks:
|
||||
- netpevo
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
resources:
|
||||
limits:
|
||||
cpus: "0.5"
|
||||
memory: 512M
|
||||
# Remova as portas abaixo se for usar Traefik para expor o serviço
|
||||
#ports:
|
||||
# - "8025:8025"
|
||||
# - "1025:1025"
|
||||
|
||||
# --------------------------- VOLUMES EXTERNOS --------------------------- #
|
||||
# Volumes externos para persistência dos dados dos serviços. Devem ser criados previamente no cluster Swarm.
|
||||
volumes:
|
||||
db_data:
|
||||
external: true
|
||||
name: db_data
|
||||
odoo_data:
|
||||
external: true
|
||||
name: odoo_data
|
||||
odoo_conf:
|
||||
external: true
|
||||
name: odoo_conf
|
||||
evolution_instances:
|
||||
external: true
|
||||
name: evolution_instances
|
||||
redis_data:
|
||||
external: true
|
||||
name: redis_data
|
||||
|
||||
# --------------------------- REDE OVERLAY EXTERNA --------------------------- #
|
||||
# Rede overlay compartilhada entre todos os serviços da stack, permitindo comunicação interna segura e isolada no cluster Swarm.
|
||||
networks:
|
||||
netpevo:
|
||||
external: true
|
||||
name: netpevo # Rede overlay para comunicação interna entre os serviços da stack (ajuste conforme sua infraestrutura)
|
||||
Reference in New Issue
Block a user