From 7b7b45e76734366a49f584cad0f343947410704f Mon Sep 17 00:00:00 2001 From: pablinux Date: Wed, 14 Oct 2026 20:11:07 -0500 Subject: [PATCH] feat: integrar servicio siax-app-DROP_SIGMAC_APP para SIAX Monitor y actualizar docs de infra --- .agente/infraestructura.md | 6 +++--- .agente/objetivos.md | 1 + .agente/proyecto_estructura.md | 1 + .agente/proyecto_memoria.md | 3 +++ agents.md | 2 +- desplegar.sh | 7 +++++-- init.sh | 17 ++++++++++++----- siax-app-DROP_SIGMAC_APP.service | 16 ++++++++++++++++ 8 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 siax-app-DROP_SIGMAC_APP.service diff --git a/.agente/infraestructura.md b/.agente/infraestructura.md index ee50581..1098bad 100644 --- a/.agente/infraestructura.md +++ b/.agente/infraestructura.md @@ -144,7 +144,7 @@ cada proyecto debera implementar un algoritomo de control de versiones de las ac | **app_fidelizacion** | [pendiente — crear repo en git.telcotronics.net] | Node.js (Express) + MySQL + EJS | pablinux | 🟡 En desarrollo activo | Plataforma de lealtad, escáner QR y canjes. Gestión de clientes y transacciones de partners. Puerto 2001. BD: MySQL `nexo_fd` en 192.168.10.149. | | **api_service_ia** | `git@github.com:telcotronics/API_Service_IA.git` | Python 3.14 + FastAPI + uvicorn | pablinux | 🟡 En desarrollo activo | API REST de modelos de IA preentrenados (OCR, STT, TTS, visión facial, PDF). Único proyecto Python serio del ecosistema. Puerto 8000. BD: MariaDB `api_ia_python` en .149. | | **API_CENTINEL_SECURITY** | `https://git.telcotronics.net/pablinux/API-CENTINEL-SECURITY.git` | Java 17 + Spring Boot 3.3 + WebClient | pablinux | ✅ Activo | API de Gestión de Seguridad Electrónica — control de acceso físico, biometría, apertura remota de puertas, sincronización de credenciales y eventos en tiempo real. Punto único de integración para cualquier app que gestione seguridad física en el ecosistema. | -| **audio_control** | `https://git.telcotronics.net/pablinux/audio_control.git` | Node.js (Express 4) + MariaDB + DLNA/UPnP + ffplay | pablinux | ✅ Activo / Producción | Backend SoundWave — control remoto de reproducción de audio, descarga YouTube, playlist MySQL, renderer DLNA y auth Google OAuth. Puerto 4005 en CT 132 (`192.168.10.160`). Dominio: `audiocontrol.sigmac.app`. Servicio systemd: `siax-app-AUDIO_CONTROL`. MCP ID: 15. | +| **audio_control** | `https://git.telcotronics.net/pablinux/audio_control.git` | Node.js (Express 4) + MariaDB + DLNA/UPnP + ffplay | pablinux | ✅ Activo / Producción | Backend SoundWave — control remoto de reproducción de audio, descarga YouTube, playlist MySQL, renderer DLNA y auth Google OAuth. Puerto 4005 en CT 132 (`192.168.10.160`). Dominio: `musica.sigmac.app`. Servicio systemd: `siax-app-AUDIO_CONTROL`. MCP ID: 15. | | **SoundWave** | `https://git.telcotronics.net/pablinux/audio-player.git` | Vue 3 + Vite 7 (PWA) / Node.js (Express) + MongoDB | pablinux | 🟢 Activo en producción | Reproductor de música personal PWA. Desplegado en server-webaps (.160) puerto 2005. Auth Google OAuth, streaming con Range requests, descargador YouTube MP3 (yt-dlp) y monitoreado en SIAX Monitor. | | **app_sigma_inventario** (Control Inventario) | [pendiente — git.telcotronics.net] | Flutter (Android / Linux Desktop) / Dart | pablinux | 🟡 En desarrollo activo | App móvil para supervisores y bodegueros: conciliación física de stock, traslados con código de barras y recepción OCR externa. | | **agente_ventas** | [sin repositorio — local] | Flutter 2.11 / Dart 2.17-beta + SQLite | pablinux | 🟡 En desarrollo activo — integrando API real | App "Agente Ventas SIGMAC" — gestión de rutas y pedidos de campo para vendedores de Telcotronics. Ruta del día, catálogo, pedidos, firma digital, scanner QR/barcode, notificaciones in-app. Auth vía API-SIGMA-WEBCONTROL · datos vía API-SIGMA-CLOUD (BD `TELCOTRONICS`). | @@ -1343,7 +1343,7 @@ Aplicación web en Go para transferencia inmediata de archivos, fotos, documento | Servidor de producción | `server-webapps` CT 132 (`192.168.10.160`) — pendiente deploy | | Dominio público | `drop.sigmac.app` | | Puerto | `2006` | -| Servicio systemd | `app-compartir.service` | +| Servicio systemd | `siax-app-DROP_SIGMAC_APP.service` (gestionado por SIAX Monitor) | **Bases de Datos:** * **SQLite** (`data/compartir.db` local en modo WAL): Almacena metadatos de archivos compartidos (`shares`), usuarios vinculados (`users`) y tokens de sesión (`sessions`). @@ -1456,7 +1456,7 @@ Backend de la app **SoundWave**. Permite controlar la reproducción de audio de | Estado actual | ✅ Activo / Desplegado en producción | | Equipo / ubicación local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Node/audio_control` | | Servidor de producción | `server-webaps` CT 132 (`192.168.10.160`) — `/home/user_apps/apps/audio_control` | -| Dominio público | `audiocontrol.sigmac.app` (vhost activo en .160; enrutamiento WAN sujeto a proxy en .109 / NAT) | +| Dominio público | `musica.sigmac.app` (vhost activo en .160; enrutamiento WAN sujeto a proxy en .109 / NAT) | | Puerto | `4005` (dev: `4000`) | | Servicio systemd | `siax-app-AUDIO_CONTROL.service` (activo) | | Registro MCP | Servicio ID `15` en `http://192.168.10.160:3006` | diff --git a/.agente/objetivos.md b/.agente/objetivos.md index 54c717d..6875f04 100644 --- a/.agente/objetivos.md +++ b/.agente/objetivos.md @@ -36,3 +36,4 @@ | 2026-10-13 | Sesión Guest con auto-eliminación obligatoria en 24h (física y BD) | Worker periódico de purga en segundo plano verificado con tests | | 2026-10-13 | Cuentas registradas (Google y WebControl) con almacenamiento permanente | Cuentas no-guest exentas de borrado a las 24h | | 2026-10-13 | Panel / lista de "Mis Archivos" para usuarios registrados con opción de borrado | Interfaz `/mis-archivos` con métricas de visitas y eliminación | +| 2026-10-14 | Scripts de despliegue estándar (`desplegar.sh`, `init.sh`) y servicio para SIAX Monitor | Compilación Go estática, scp, servers.conf y systemd | diff --git a/.agente/proyecto_estructura.md b/.agente/proyecto_estructura.md index 978039a..43fbcb3 100644 --- a/.agente/proyecto_estructura.md +++ b/.agente/proyecto_estructura.md @@ -44,6 +44,7 @@ app_compartir/ ├── desplegar.sh # Script de compilación y despliegue (máquina dev) ├── init.sh # Script ejecutor local en el servidor ├── servers.conf.example # Plantilla de credenciales SSH para despliegue +├── siax-app-DROP_SIGMAC_APP.service # Definición de servicio systemd para SIAX Monitor ├── go.mod ├── go.sum ├── main.go # Punto de entrada y servidor HTTP Go diff --git a/.agente/proyecto_memoria.md b/.agente/proyecto_memoria.md index 3c233d7..3555d16 100644 --- a/.agente/proyecto_memoria.md +++ b/.agente/proyecto_memoria.md @@ -40,6 +40,9 @@ Versión funcional completa y validada: - [x] Implementar auth con WebControl (`api.siax-system.net`) y Google OAuth2 - [x] Implementar panel "Mis Archivos" para usuarios autenticados - [x] Sincronizar sección de infraestructura en global e internal para MCP +- [x] Crear scripts de despliegue estándar (`desplegar.sh`, `init.sh`, `servers.conf.example`) +- [x] Integrar servicio systemd para SIAX Monitor (`siax-app-DROP_SIGMAC_APP.service`) +- [x] Soporte para proxy reverso dinámico Apache (`X-Forwarded-Proto`, `Host`) en puerto 2006 --- diff --git a/agents.md b/agents.md index 8ca6baa..b44d443 100644 --- a/agents.md +++ b/agents.md @@ -75,7 +75,7 @@ Goroutine periódica (ticker) que consulta items donde `is_guest = true AND expi |---|---| | Dominio público | `drop.sigmac.app` | | Puerto interno | `2006` (producción) / `8085` (local) | -| Servicio systemd | `app-compartir.service` | +| Servicio systemd | `siax-app-DROP_SIGMAC_APP.service` (gestionado por SIAX Monitor) | | BD principal | SQLite local (`data/compartir.db`) | | MCP ecosistema | `mcp.telcotronics.net` 🔧 en mantenimiento | diff --git a/desplegar.sh b/desplegar.sh index 2debd78..b9c4d3b 100755 --- a/desplegar.sh +++ b/desplegar.sh @@ -64,7 +64,7 @@ subir() { echo "" echo "🚀 Subiendo binario, plantillas y scripts al servidor..." - copy "$SCRIPT_DIR/app_compartir" "$SCRIPT_DIR/init.sh" "$SCRIPT_DIR/.env.example" "$SERVIDOR:$REMOTE_DIR/" + copy "$SCRIPT_DIR/app_compartir" "$SCRIPT_DIR/init.sh" "$SCRIPT_DIR/.env.example" "$SCRIPT_DIR/siax-app-DROP_SIGMAC_APP.service" "$SERVIDOR:$REMOTE_DIR/" copy "$SCRIPT_DIR/web/templates/"*.html "$SERVIDOR:$REMOTE_DIR/web/templates/" remote "chmod 0755 '$REMOTE_DIR/app_compartir' '$REMOTE_DIR/init.sh'" echo "✅ Archivos sincronizados en $REMOTE_DIR" @@ -94,7 +94,10 @@ estado() { echo "" echo "📊 Estado del servidor en $SERVIDOR:" remote " - if tmux has-session -t drop-sigmac-app 2>/dev/null; then + if systemctl is-active --quiet siax-app-DROP_SIGMAC_APP.service 2>/dev/null; then + echo '==> Servicio systemd siax-app-DROP_SIGMAC_APP (SIAX Monitor) activo:' + systemctl status siax-app-DROP_SIGMAC_APP.service --no-pager + elif tmux has-session -t drop-sigmac-app 2>/dev/null; then echo '==> Sesión tmux drop-sigmac-app activa:' tmux capture-pane -pt drop-sigmac-app | tail -n 25 elif systemctl is-active --quiet drop-sigmac-app.service 2>/dev/null; then diff --git a/init.sh b/init.sh index 8f866d9..b1aac27 100755 --- a/init.sh +++ b/init.sh @@ -27,11 +27,18 @@ mkdir -p "$SCRIPT_DIR/data/uploads" # 3. Permisos de ejecución al binario chmod +x "$SCRIPT_DIR/app_compartir" -# 4. Modo de arranque: Si existe servicio systemd, usarlo; de lo contrario, sesión tmux -if systemctl is-active --quiet drop-sigmac-app.service 2>/dev/null || [ -f /etc/systemd/system/drop-sigmac-app.service ]; then - echo "==> Reiniciando servicio systemd 'drop-sigmac-app.service'..." - sudo systemctl restart drop-sigmac-app.service - sudo systemctl status drop-sigmac-app.service --no-pager +# 4. Modo de arranque: Si existe servicio systemd de SIAX Monitor o estándar, usarlo; de lo contrario, tmux +SERVICE_NAME="" +if systemctl is-active --quiet siax-app-DROP_SIGMAC_APP.service 2>/dev/null || [ -f /etc/systemd/system/siax-app-DROP_SIGMAC_APP.service ]; then + SERVICE_NAME="siax-app-DROP_SIGMAC_APP.service" +elif systemctl is-active --quiet drop-sigmac-app.service 2>/dev/null || [ -f /etc/systemd/system/drop-sigmac-app.service ]; then + SERVICE_NAME="drop-sigmac-app.service" +fi + +if [[ -n "$SERVICE_NAME" ]]; then + echo "==> Reiniciando servicio systemd '$SERVICE_NAME' (SIAX Monitor)..." + sudo systemctl restart "$SERVICE_NAME" + sudo systemctl status "$SERVICE_NAME" --no-pager exit 0 fi diff --git a/siax-app-DROP_SIGMAC_APP.service b/siax-app-DROP_SIGMAC_APP.service new file mode 100644 index 0000000..85f1cf6 --- /dev/null +++ b/siax-app-DROP_SIGMAC_APP.service @@ -0,0 +1,16 @@ +[Unit] +Description=SIAX App: drop.sigmac.app (Plataforma de Transferencia y Visor Rápido de Archivos) +After=network.target + +[Service] +Type=simple +User=user_apps +WorkingDirectory=/home/user_apps/apps/drop_sigmac_app +ExecStart=/home/user_apps/apps/drop_sigmac_app/app_compartir +EnvironmentFile=/home/user_apps/apps/drop_sigmac_app/.env +Restart=always +RestartSec=5s +LimitNOFILE=65535 + +[Install] +WantedBy=multi-user.target