fix: eliminar REDIS_HOST hardcodeado 'redis' en todos los archivos

- docker-compose.prod.yml: REDIS_HOST=redis → ${REDIS_HOST:-127.0.0.1}
  eliminados servicios redis/worker/maintenance (usan Coolify/Supervisor)
- .env, .env.docker: REDIS_HOST=redis → 127.0.0.1 (fallback seguro)
- .env.example: actualizado con comentario de Coolify
- health.php: fallback 'redis' → '127.0.0.1'
- PHP files (RedisQueue, ConversationState, etc.) ya usaban getenv() correctamente
This commit is contained in:
Lizandro Guarnizo
2026-03-12 13:48:01 -05:00
parent d50abb3ff3
commit 30e38720e2
5 changed files with 43 additions and 108 deletions
+34 -16
View File
@@ -1,37 +1,55 @@
# Configuración de ejemplo para WhatsApp Bot Manager
# Copia este archivo como .env y completa los valores
# ============================================================
# WhatsApp Bot Manager — Variables de entorno
# Fuente única de verdad para desarrollo local.
# En producción (Coolify): configurar en Environment Variables de la app.
# ⚠️ Este archivo NO se sube a git (.gitignore lo excluye).
# ============================================================
# Base de datos
# ── Base de datos ─────────────────────────────────────────────
DB_HOST=46.202.93.92
DB_PORT=3306
DB_NAME=usite_whatsapp_bot
DB_USER=usite_whatsapp_user
DB_PASS=6q!Vio0fn@PFmsLyHjH5
DB_ROOT_PASSWORD=root_password_2026
DB_CHARSET=utf8mb4
# WhatsApp Business API
# ── Redis ─────────────────────────────────────────────────────
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=
# ── WhatsApp Business API ─────────────────────────────────────
WHATSAPP_TOKEN=EAAcGjPRqunIBQjy3mZAVLX2vfMcyfUtcAXAwul5tZCQjsdxyEljIV1C4mOfTNAOIseZCMDZCy2O5AVM6wBXZC6nEfSNxkhosevtlZCRDr8uxe4zHiiZClW88mnjj2sv2t6PAh63VtUfY5DYAands4O5E9E6L6yiugZCZCBRIFjEWEtE1WXOn6GZCy8mgKpqTD2aQvNogZDZD
WHATSAPP_PHONE_NUMBER_ID=959898150536936
WHATSAPP_API_URL=https://graph.facebook.com/v22.0/
WEBHOOK_VERIFY_TOKEN=XimenaCaicedo2026*+
# Auto-approve templates: true|false
AUTO_APPROVE_TEMPLATES=true
# Configuración general
# ── Aplicación ────────────────────────────────────────────────
APP_ENV=development
APP_DEBUG=true
APP_NAME=WhatsApp Bot System
APP_VERSION=1.0.0
APP_VERSION=2.0.0
APP_URL=https://bot.u-s.app/
TIMEZONE=America/Bogota
# Seguridad
ADMIN_USERNAME=admin
ADMIN_PASSWORD=contraseña_admin_segura
SESSION_TIMEOUT=31536000
# ── Logs ──────────────────────────────────────────────────────
# Valores: DEBUG | INFO | WARNING | ERROR
LOG_LEVEL=DEBUG
ENABLE_LOGGING=true
LOG_FILE=logs/system.log
# ── Seguridad ─────────────────────────────────────────────────
SESSION_TIMEOUT=1800
MAX_LOGIN_ATTEMPTS=3
LOGIN_LOCKOUT_TIME=900
# Logs
ENABLE_LOGGING=true
LOG_LEVEL=INFO
LOG_FILE=logs/system.log
# ── Rate Limiting ─────────────────────────────────────────────
ENABLE_RATE_LIMIT=false
# ── PHP ───────────────────────────────────────────────────────
PHP_MEMORY_LIMIT=512M
PHP_MAX_EXECUTION_TIME=300
DISPLAY_ERRORS=1
ERROR_REPORTING=E_ALL
+1 -1
View File
@@ -20,7 +20,7 @@ DB_ROOT_PASSWORD=root_password_super_seguro
# ===========================================
# REDIS
# ===========================================
REDIS_HOST=redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
+1
View File
@@ -36,6 +36,7 @@ LOG_PATH=logs
# Redis (para colas y caché)
REDIS_SCHEME=tcp
# Redis gestionado por Coolify — reemplazar con el hostname del recurso Redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=
+6 -90
View File
@@ -33,9 +33,9 @@ services:
- DB_USER=${DB_USER:-usite_whatsapp_user}
- DB_PASS=${DB_PASS}
# Redis
- REDIS_HOST=redis
- REDIS_PORT=6379
# 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
@@ -54,9 +54,6 @@ services:
- PHP_MAX_EXECUTION_TIME=300
- PHP_OPCACHE_ENABLE=1
depends_on:
redis:
condition: service_healthy
networks:
- whatsapp-network
healthcheck:
@@ -66,96 +63,15 @@ services:
retries: 3
start_period: 30s
# Redis para colas y caché
redis:
image: redis:7-alpine
container_name: whatsapp-redis
restart: always
command: >
redis-server
--appendonly yes
--maxmemory 128mb
--maxmemory-policy allkeys-lru
volumes:
- redis-data:/data
networks:
- whatsapp-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 5
# Workers para procesamiento en background
worker:
build:
context: .
dockerfile: Dockerfile.worker
container_name: whatsapp-worker
restart: always
volumes:
- app-logs:/var/www/html/logs
environment:
- TZ=America/Bogota
- APP_ENV=production
- APP_DEBUG=false
- 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_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
- LOG_LEVEL=WARNING
depends_on:
redis:
condition: service_healthy
networks:
- whatsapp-network
command: php worker.php --daemon
# Mantenimiento automatizado - PRODUCCIÓN
maintenance:
build:
context: .
dockerfile: Dockerfile.maintenance
container_name: whatsapp-maintenance-prod
restart: always
cap_add:
- SYS_NICE
- SETGID
- SETUID
volumes:
- app-logs:/var/www/html/logs
- ./backups:/backups
- maintenance-cron-logs:/var/log/cron
environment:
- TZ=America/Bogota
- APP_ENV=production
- 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_HOST=redis
- REDIS_PORT=6379
- APP_URL=http://app
depends_on:
redis:
condition: service_healthy
networks:
- whatsapp-network
# Redis: gestionado como Database Resource en Coolify (externo)
# Worker: corre dentro del contenedor app vía Supervisor
# Maintenance: deshabilitado en Coolify
volumes:
redis-data:
driver: local
app-logs:
driver: local
app-uploads:
driver: local
maintenance-cron-logs:
driver: local
networks:
whatsapp-network:
+1 -1
View File
@@ -53,7 +53,7 @@ try {
$health['checks']['redis'] = [
'status' => ((string)$ping === 'PONG' || $ping === true) ? 'ok' : 'error',
'host' => getenv('REDIS_HOST') ?: 'redis'
'host' => getenv('REDIS_HOST') ?: '127.0.0.1'
];
} catch (Exception $e) {
$health['checks']['redis'] = [