mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 09:34:46 +08:00
Hostgator é parceiro comercial do projeto, justificando preferência sobre Hetzner mesmo com custo maior (~R$140 vs ~$5/mês). Datacenter São Paulo adiciona vantagem real de latência <30ms pro Meta BR (vs ~150ms da EU). - Novo runbook docs/runbooks/waha-hostgator.md (13 seções: bootstrap, Nginx + egress allowlist Vercel CIDRs, restic→B2, watchdog, restore drill) - Specs/PRDs/research/presentation atualizados com plano Turing, custo R$, datacenter SP - Hetzner mantido como plano B documentado (sem parceria) e DR cross-region - Backup: substituído "Hetzner Volume Snapshots" por "restic → Backblaze B2" (Hostgator não tem snapshots nativos — restore drill mensal documentado)
52 lines
2.0 KiB
YAML
52 lines
2.0 KiB
YAML
# Stack local de dependências externas para o DeskcommCRM.
|
|
#
|
|
# Sobe apenas o WAHA (Plus / NOWEB) pra desenvolvimento. Postgres + Auth + Storage
|
|
# vêm do Supabase Cloud (ou supabase local CLI separadamente, conforme o time preferir).
|
|
#
|
|
# Uso:
|
|
# 1. Copie .env.example -> .env.local e preencha WAHA_API_KEY (plaintext)
|
|
# 2. Gere o hash: echo -n "$WAHA_API_KEY" | shasum -a 512 | awk '{print $1}'
|
|
# 3. Cole esse hash em WAHA_API_KEY abaixo (NÃO o plaintext)
|
|
# 4. docker compose up -d
|
|
# 5. Acesse http://localhost:3030/dashboard/ (UI do WAHA Plus)
|
|
# (host port 3030 — :3000 fica reservado pra outros dev tools como Remotion)
|
|
#
|
|
# Em prod, WAHA roda em VPS dedicada (Hostgator) atrás de Nginx (proxy_buffering off
|
|
# pra SSE). docker-compose aqui é DEV ONLY.
|
|
|
|
version: "3.9"
|
|
|
|
services:
|
|
waha:
|
|
image: devlikeapro/waha-plus:latest
|
|
platform: linux/amd64
|
|
container_name: deskcomm-waha
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3030:3000"
|
|
environment:
|
|
# Hash SHA512 hex da api key (NÃO plaintext). Cliente envia plaintext em X-Api-Key.
|
|
WAHA_API_KEY: ${WAHA_API_KEY_SHA512}
|
|
# Webhook base URL — precisa ser pública (use ngrok/cloudflared em dev).
|
|
WHATSAPP_HOOK_URL: ${WAHA_WEBHOOK_BASE_URL}/api/v1/webhooks/waha
|
|
WHATSAPP_HOOK_EVENTS: "message,message.any,message.ack,session.status,state.change"
|
|
# HMAC SHA512 do payload, validado server-side via crypto.timingSafeEqual.
|
|
WHATSAPP_HOOK_HMAC: ${WAHA_HMAC_SECRET}
|
|
# Engine NOWEB por default (mais leve, ~150MB; estável).
|
|
WAHA_DEFAULT_ENGINE: NOWEB
|
|
# Storage de mídia: Supabase Storage via Backend (NÃO inline base64).
|
|
WAHA_DASHBOARD_ENABLED: "true"
|
|
volumes:
|
|
- waha-data:/app/.sessions
|
|
- waha-media:/app/.media
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api/health"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
volumes:
|
|
waha-data:
|
|
waha-media:
|