Files
whatsapp-api-oficial/docker-compose.yml
T
ecio 995f211288 feat: projeto whatsapp-api-oficial — wrapper Meta Cloud API
API Node.js/Express que encapsula a Meta Cloud API (Graph API v21.0):
- POST /account/configure/:accountId — salva credenciais WABA no SQLite
- GET  /account/status/:accountId   — verifica credenciais via Meta API
- POST /message/send/:accountId     — envia texto, template ou mídia
- GET  /templates/:accountId        — lista templates aprovados da WABA
- GET  /webhooks/meta               — verificação de token (Meta handshake)
- POST /webhooks/meta               — recebe eventos Meta e repassa ao sys
- Dockerfile + docker-compose.yml com Traefik (apimsgoficial.neuralsys.com.br)
- Swagger em /api-docs com autenticação por x-api-key

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 16:49:24 -03:00

49 lines
1.4 KiB
YAML

version: '3.8'
services:
api_zdg_oficial:
image: chrishubert/whatsapp-oficial-api:latest
build:
context: .
dockerfile: Dockerfile
networks:
- comunidadezdg
volumes:
- api_zdg_oficial_data:/usr/src/app/data
environment:
- PORT=3001
- API_KEY=${API_KEY}
- BASE_WEBHOOK_URL=${BASE_WEBHOOK_URL}
- META_WEBHOOK_VERIFY_TOKEN=${META_WEBHOOK_VERIFY_TOKEN}
- ENABLE_SWAGGER_ENDPOINT=TRUE
- DB_PATH=/usr/src/app/data/accounts.db
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: "0.5"
memory: 256M
labels:
- traefik.enable=true
- traefik.http.routers.api_zdg_oficial.rule=Host(`apimsgoficial.neuralsys.com.br`)
- traefik.http.routers.api_zdg_oficial.entrypoints=websecure
- traefik.http.routers.api_zdg_oficial.tls.certresolver=letsencryptresolver
- traefik.http.routers.api_zdg_oficial.priority=1
- traefik.http.routers.api_zdg_oficial.service=api_zdg_oficial
- traefik.http.services.api_zdg_oficial.loadbalancer.server.port=3001
- traefik.http.services.api_zdg_oficial.loadbalancer.passHostHeader=true
volumes:
api_zdg_oficial_data:
external: true
name: api_zdg_oficial_data
networks:
comunidadezdg:
name: comunidadezdg
external: true