#!/bin/bash # Entrypoint script para el contenedor set -e echo "🚀 Iniciando WhatsApp Bot Manager..." # Esperar a que Redis esté disponible echo "⏳ Esperando Redis..." until redis-cli -h ${REDIS_HOST:-redis} ping 2>/dev/null; do echo " Redis no disponible, esperando..." sleep 2 done echo "✅ Redis conectado" # Esperar a que MySQL esté disponible (solo si no es localhost ni IP interna) if [ "${DB_HOST}" != "localhost" ] && [ "${DB_HOST}" != "127.0.0.1" ] && [ "${DB_HOST}" != "db" ]; then echo "ℹ️ Usando base de datos externa (${DB_HOST}), omitiendo verificación de conectividad..." else echo "⏳ Esperando MySQL..." until mysql -h ${DB_HOST:-db} -u ${DB_USER:-whatsapp_user} -p${DB_PASS} -e "SELECT 1" >/dev/null 2>&1; do echo " MySQL no disponible, esperando..." sleep 2 done echo "✅ MySQL conectado" fi # Crear directorios si no existen mkdir -p /var/www/html/logs mkdir -p /var/www/html/uploads mkdir -p /var/cache/nginx mkdir -p /run/php # Establecer permisos chown -R www:www /var/www/html/logs chown -R www:www /var/www/html/uploads chmod -R 755 /var/www/html/logs chmod -R 755 /var/www/html/uploads # Ejecutar migraciones de BD (si existen) if [ -f /var/www/html/database/migrate.php ]; then echo "🔄 Ejecutando migraciones..." php /var/www/html/database/migrate.php || echo "⚠️ Migraciones fallaron o no aplicables" fi # Generar archivo .env desde variables de entorno (si no existe) if [ ! -f /var/www/html/.env ]; then echo "📝 Generando .env desde variables de entorno..." cat > /var/www/html/.env < /etc/crontabs/www <processDelayed('messages'); \$q->processDelayed('media');" 2>&1 | logger -t delayed-processor # Limpiar logs antiguos (diario a las 3 AM) 0 3 * * * cd /var/www/html && /usr/local/bin/php -r "require 'classes/LoggerFactory.php'; echo LoggerFactory::cleanup(30) . ' logs eliminados';" 2>&1 | logger -t log-cleanup # Health check de workers (cada 5 minutos) */5 * * * * supervisorctl status whatsapp-worker:* | grep -q RUNNING || supervisorctl restart whatsapp-worker:* 2>&1 | logger -t worker-monitor EOF chown www:www /etc/crontabs/www echo "✅ Configuración completada" echo "🎯 Iniciando servicios..." # Ejecutar comando pasado al contenedor exec "$@"