# Docker Compose para PRODUCCIÓN # Base de datos: gestionada externamente (Coolify Database Resource o cualquier MySQL/MariaDB externo) # Configurar DB_HOST, DB_NAME, DB_USER, DB_PASS en las variables de entorno de Coolify. services: # Aplicación PHP con Nginx - MODO PRODUCCIÓN app: build: context: . dockerfile: Dockerfile args: - APP_ENV=production # container_name: NO definir — Coolify asigna su propio nombre restart: always # Coolify/Traefik gestiona el enrutamiento - no exponer puertos directamente expose: - "80" volumes: - app-logs:/var/www/html/logs - app-uploads:/var/www/html/uploads environment: # Zona horaria Colombia - TZ=America/Bogota # Entorno - APP_ENV=production - APP_DEBUG=false # Base de datos - configurar en Coolify Environment Variables - DB_HOST=${DB_HOST:-mysql} - DB_PORT=${DB_PORT:-3306} - DB_NAME=${DB_NAME:-usite_whatsapp_bot} - DB_USER=${DB_USER:-usite_whatsapp_user} - DB_PASS=${DB_PASS} # Redis — gestionado por Coolify (configurar REDIS_HOST en env vars) - REDIS_HOST=${REDIS_HOST:-127.0.0.1} - REDIS_PORT=${REDIS_PORT:-6379} - REDIS_PASSWORD=${REDIS_PASSWORD:-} # WhatsApp API - WHATSAPP_TOKEN=${WHATSAPP_TOKEN} - WHATSAPP_PHONE_NUMBER_ID=${WHATSAPP_PHONE_NUMBER_ID} - WEBHOOK_VERIFY_TOKEN=${WEBHOOK_VERIFY_TOKEN} # Configuración de producción - LOG_LEVEL=WARNING - ENABLE_RATE_LIMIT=true - DISPLAY_ERRORS=0 - ERROR_REPORTING=0 # PHP optimizado para producción - PHP_MEMORY_LIMIT=512M - PHP_MAX_EXECUTION_TIME=300 - PHP_OPCACHE_ENABLE=1 networks: - coolify healthcheck: test: ["CMD-SHELL", "curl -sf http://localhost/health.php || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 60s # Redis: gestionado como Database Resource en Coolify (externo) # Worker: corre dentro del contenedor app vía Supervisor # Maintenance: deshabilitado en Coolify volumes: app-logs: driver: local app-uploads: driver: local networks: coolify: external: true