995f211288
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>
49 lines
1.4 KiB
YAML
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
|