IoPlay

IoPlay Suite

MANUAL DE DESPLIEGUE & OPERACIONES
Protocolo DevOps & SysAdmin v1.0

Manual de Despliegue & Operaciones en Producción

Guía de administración para despliegue nativo (Bare-Metal) sin Docker en servidores Linux Ubuntu 24.04/Debian, coexistencia con servidores de streaming RTMP y scripts de actualización continua.

🖥️ 1. Requisitos del Servidor y Coexistencia de Puertos

Servicio / Aplicación Puerto Uso / Estado
IoPlay Customers 5540 Portal Web de Autogestión (Nginx + PHP-FPM)
IoPlay DCM 5541 Microservicio Indexador Facturas (127.0.0.1 Loopback)
IoPlay ACS 5542 Microservicio TR-069 Telemetría (127.0.0.1 Loopback)
Reservado / Soporte 5543 Canal de Diagnóstico & APIs Adicionales
Streaming RTMP / HLS 1935, 88, 8088, 8888 Transmisión de Video en Vivo (Intacto)
Sitios Existentes 80, 443, 1080, 10443 Webs corporativas e ioplayco (Intactos)

🚀 2. Despliegue Inicial Automatizado

El script scripts/deploy_production_native.sh instala paquetes, configura venvs de Python, permisos y servicios de forma 100% desatendida:

Terminal cd /var/www/html/ioplay-suite sudo bash scripts/deploy_production_native.sh
✅

Diagnóstico Automático Integrado

Al finalizar la instalación, el script ejecuta pruebas de salud HTTP en los puertos 5541, 5542 y 5540 para confirmar que todos los servicios estén en estado OK (HTTP 200).

🔄 3. Protocolo de Actualizaciones Rápidas con GitHub

Para aplicar nuevas versiones subidas al repositorio de GitHub sin tocar bases de datos ni configuraciones:

Terminal cd /var/www/html/ioplay-suite sudo bash scripts/update_production.sh

Este script se encarga automáticamente de:

  1. Configurar la excepción de directorio seguro de Git (safe.directory).
  2. Descargar los cambios con git pull origin main.
  3. Actualizar librerías de Python en los entornos virtuales (venv) si requirements.txt cambió.
  4. Asegurar permisos de escritura para el usuario www-data.
  5. Reiniciar los demonios de Systemd y recargar Nginx/PHP-FPM en menos de 2 segundos.

⚙️ 4. Gestión de Servicios con PM2 o Systemd

La suite soporta gestión mediante PM2 o Systemd según la preferencia de operaciones:

Operación con PM2 # 1. Activar / Migrar a PM2 (Script automatizado): sudo bash scripts/setup_pm2.sh # 2. Ver estado de los microservicios en vivo: pm2 list # 3. Monitoreo visual de CPU / Memoria: pm2 monit # 4. Logs en tiempo real: pm2 logs ioplay-dcm pm2 logs ioplay-acs # 5. Reiniciar servicios: pm2 restart all
Operación con Systemd # Ver estado de los microservicios: sudo systemctl status ioplay-dcm.service sudo systemctl status ioplay-acs.service # Reiniciar servicios: sudo systemctl restart ioplay-dcm.service ioplay-acs.service sudo systemctl restart nginx

📋 5. Monitoreo de Logs en Vivo

Monitoreo # Logs de indexación y visor documental DCM: journalctl -u ioplay-dcm.service -f # Logs de comunicación TR-069 ACS: journalctl -u ioplay-acs.service -f # Logs de errores web en Nginx: tail -f /var/log/nginx/ioplay_customers_error.log

💾 6. Políticas de Respaldo de Bases de Datos

Las bases de datos SQLite residen en carpetas dedicadas. Para crear un respaldo instantáneo:

Backup Script # Respaldo rápido de bases de datos: tar -czvf /root/backup_ioplay_$(date +%Y%m%d).tar.gz \ /var/www/html/ioplay-suite/ioplay-customers/data \ /var/www/html/ioplay-suite/ioplay-dcm/data