# ============================================================ # WACore - Docker Compose (desarrollo / producción single-node) # ============================================================ services: wacore: build: context: . dockerfile: Dockerfile container_name: wacore volumes: - wa_sessions:/data/sessions - ./src:/app/src ports: - "${HEALTH_PORT:-9877}:9877" - "${API_PORT:-9878}:9878" environment: - WA_INSTANCE_NAME=${WA_INSTANCE_NAME:-bot-dev} - HEALTH_PORT=${HEALTH_PORT:-9877} - API_PORT=${API_PORT:-9878} - LOG_LEVEL=${LOG_LEVEL:-debug} - SESSION_STORE=${SESSION_STORE:-postgres} - DATABASE_URL=postgres://wacore:wacore@postgres:5432/wacore - CONNECT_ON_STARTUP=${CONNECT_ON_STARTUP:-true} - QR_TIMEOUT=${QR_TIMEOUT:-60000} - WEBHOOK_URL=${WEBHOOK_URL:-} - WEBHOOK_SECRET=${WEBHOOK_SECRET:-} - WEBHOOK_EVENTS=${WEBHOOK_EVENTS:-message} - WEBHOOK_RETRY_COUNT=${WEBHOOK_RETRY_COUNT:-3} - WEBHOOK_RETRY_DELAY=${WEBHOOK_RETRY_DELAY:-5000} - API_KEY=${API_KEY:-} - NODE_ENV=${NODE_ENV:-development} depends_on: redis: condition: service_started postgres: condition: service_healthy restart: unless-stopped redis: image: redis:7-alpine container_name: wacore-redis volumes: - redis_data:/data restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 5 webhook-sink: image: webhooksite/webhook:latest container_name: wacore-webhook-sink ports: - "9000:9000" restart: unless-stopped profiles: - dev - debug postgres: image: postgres:16-alpine container_name: wacore-postgres environment: POSTGRES_USER: wacore POSTGRES_PASSWORD: wacore POSTGRES_DB: wacore volumes: - pg_data:/var/lib/postgresql/data restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U wacore"] interval: 5s timeout: 3s retries: 5 ports: - "5444:5432" volumes: wa_sessions: redis_data: pg_data: