## Frontend - Add media display (images, audio, video, docs) in Inbox - Add pause/resume functionality for WhatsApp accounts - Fix media URLs to use nginx proxy (relative URLs) ## API Gateway - Add /accounts/:id/pause and /accounts/:id/resume endpoints - Fix media URL handling for browser access ## WhatsApp Core - Add pauseSession() - disconnect without logout - Add resumeSession() - reconnect using saved credentials - Add media download and storage for incoming messages - Serve media files via /media/ static route ## Odoo Module (odoo_whatsapp_hub) - Add Chat Hub interface with DOLLARS theme (dark, 3-column layout) - Add WhatsApp/DRRR theme switcher for chat view - Add "ABRIR CHAT" button in conversation form - Add send_message_from_chat() method - Add security/ir.model.access.csv - Fix CSS scoping to avoid breaking Odoo UI - Update webhook to handle message events properly ## Documentation - Add docs/CONTEXTO_DESARROLLO.md with complete project context ## Infrastructure - Add whatsapp_media Docker volume - Configure nginx proxy for /media/ route - Update .gitignore to track src/sessions/ source files Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
151 lines
3.9 KiB
YAML
151 lines
3.9 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: wac_postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: ${DB_NAME:-whatsapp_central}
|
|
POSTGRES_USER: ${DB_USER:-whatsapp_admin}
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD:?DB_PASSWORD required}
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
ports:
|
|
- "5432:5432"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-whatsapp_admin}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- wac_network
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: wac_redis
|
|
restart: unless-stopped
|
|
command: redis-server --appendonly yes
|
|
volumes:
|
|
- redis_data:/data
|
|
ports:
|
|
- "6379:6379"
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- wac_network
|
|
|
|
whatsapp-core:
|
|
build:
|
|
context: ./services/whatsapp-core
|
|
dockerfile: Dockerfile
|
|
container_name: wac_whatsapp
|
|
restart: unless-stopped
|
|
environment:
|
|
NODE_ENV: ${NODE_ENV:-production}
|
|
REDIS_URL: redis://redis:6379
|
|
API_GATEWAY_URL: http://api-gateway:8000
|
|
WS_PORT: 3001
|
|
volumes:
|
|
- whatsapp_sessions:/app/sessions
|
|
- whatsapp_media:/app/media
|
|
ports:
|
|
- "3001:3001"
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
networks:
|
|
- wac_network
|
|
|
|
api-gateway:
|
|
build:
|
|
context: ./services/api-gateway
|
|
dockerfile: Dockerfile
|
|
container_name: wac_api
|
|
restart: unless-stopped
|
|
environment:
|
|
DATABASE_URL: postgresql://${DB_USER:-whatsapp_admin}:${DB_PASSWORD}@postgres:5432/${DB_NAME:-whatsapp_central}
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: ${JWT_SECRET:?JWT_SECRET required}
|
|
WHATSAPP_CORE_URL: http://whatsapp-core:3001
|
|
WHATSAPP_CORE_PUBLIC_URL: ${WHATSAPP_CORE_PUBLIC_URL:-http://localhost:3001}
|
|
FLOW_ENGINE_URL: http://flow-engine:8001
|
|
ODOO_WEBHOOK_URL: ${ODOO_WEBHOOK_URL:-http://192.168.10.188:8069/whatsapp/webhook}
|
|
CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost:5173,http://localhost:3000}
|
|
ports:
|
|
- "8000:8000"
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
networks:
|
|
- wac_network
|
|
|
|
flow-engine:
|
|
build:
|
|
context: ./services/flow-engine
|
|
dockerfile: Dockerfile
|
|
container_name: wac_flow_engine
|
|
restart: unless-stopped
|
|
environment:
|
|
DATABASE_URL: postgresql://${DB_USER:-whatsapp_admin}:${DB_PASSWORD}@postgres:5432/${DB_NAME:-whatsapp_central}
|
|
REDIS_URL: redis://redis:6379
|
|
API_GATEWAY_URL: http://api-gateway:8000
|
|
WHATSAPP_CORE_URL: http://whatsapp-core:3001
|
|
DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}
|
|
DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}
|
|
DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}
|
|
INTEGRATIONS_URL: http://integrations:8002
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
networks:
|
|
- wac_network
|
|
|
|
integrations:
|
|
build:
|
|
context: ./services/integrations
|
|
dockerfile: Dockerfile
|
|
container_name: wac_integrations
|
|
restart: unless-stopped
|
|
environment:
|
|
ODOO_URL: ${ODOO_URL:-}
|
|
ODOO_DB: ${ODOO_DB:-}
|
|
ODOO_USER: ${ODOO_USER:-}
|
|
ODOO_API_KEY: ${ODOO_API_KEY:-}
|
|
API_GATEWAY_URL: http://api-gateway:8000
|
|
FLOW_ENGINE_URL: http://flow-engine:8001
|
|
ports:
|
|
- "8002:8002"
|
|
networks:
|
|
- wac_network
|
|
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
dockerfile: Dockerfile
|
|
container_name: wac_frontend
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:80"
|
|
depends_on:
|
|
- api-gateway
|
|
networks:
|
|
- wac_network
|
|
|
|
volumes:
|
|
postgres_data:
|
|
redis_data:
|
|
whatsapp_sessions:
|
|
whatsapp_media:
|
|
|
|
networks:
|
|
wac_network:
|
|
driver: bridge
|