Files
whatsapp/docker-compose.yml
T
Lizandro Guarnizo d50abb3ff3 fix: eliminar Redis y worker locales del docker-compose.yml
- Redis ahora es un Database Resource externo en Coolify
  Configurar: REDIS_HOST, REDIS_PORT, REDIS_PASSWORD en env vars
- Worker corre dentro del contenedor app via Supervisor (no servicio aparte)
- Eliminados: servicio redis, worker, redis-commander, volumenes db-data/redis-data
- Solo queda: servicio app + volumen php-socket
2026-03-12 13:44:41 -05:00

86 lines
2.6 KiB
YAML

services:
# Aplicación PHP con Nginx y Workers
app:
build:
context: .
dockerfile: Dockerfile
container_name: whatsapp-bot-app
restart: unless-stopped
working_dir: /var/www/html
# Coolify/Traefik gestiona el enrutamiento - no exponer puertos al host
expose:
- "80"
volumes:
- ./:/var/www/html
- ./logs:/var/www/html/logs
- ./uploads:/var/www/html/uploads
- php-socket:/run/php
environment:
- APP_ENV=${APP_ENV:-production}
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT:-3306}
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASS=${DB_PASS}
# Redis gestionado por Coolify — configurar REDIS_HOST en env vars de Coolify
- REDIS_HOST=${REDIS_HOST:-127.0.0.1}
- REDIS_PORT=${REDIS_PORT:-6379}
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
- WHATSAPP_TOKEN=${WHATSAPP_TOKEN}
- WHATSAPP_PHONE_NUMBER_ID=${WHATSAPP_PHONE_NUMBER_ID}
- WEBHOOK_VERIFY_TOKEN=${WEBHOOK_VERIFY_TOKEN}
- LOG_LEVEL=${LOG_LEVEL:-INFO}
- ENABLE_RATE_LIMIT=${ENABLE_RATE_LIMIT:-true}
networks:
- whatsapp-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/health.php"]
interval: 30s
timeout: 5s
retries: 3
start_period: 40s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# MySQL Database (DESHABILITADO - usando BD externa)
# Descomenta si quieres usar MySQL en Docker
# db:
# image: mysql:8.0
# container_name: whatsapp-bot-db
# restart: unless-stopped
# ports:
# - "${DB_PORT:-3306}:3306"
# environment:
# MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
# MYSQL_DATABASE: ${DB_NAME:-whatsapp_bot}
# MYSQL_USER: ${DB_USER:-whatsapp_user}
# MYSQL_PASSWORD: ${DB_PASS}
# MYSQL_CHARACTER_SET_SERVER: utf8mb4
# MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
# volumes:
# - db-data:/var/lib/mysql
# - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
# networks:
# - whatsapp-network
# healthcheck:
# test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_ROOT_PASSWORD}"]
# interval: 10s
# timeout: 5s
# retries: 5
# start_period: 30s
# command: --default-authentication-plugin=mysql_native_password --max_connections=500
# Redis: gestionado como Database Resource en Coolify (externo)
# Worker: corre dentro del contenedor app vía Supervisor
volumes:
php-socket:
driver: local
networks:
whatsapp-network:
driver: bridge