diff --git a/.agente/objetivos.md b/.agente/objetivos.md index 1a433c0..60c0f17 100644 --- a/.agente/objetivos.md +++ b/.agente/objetivos.md @@ -41,3 +41,4 @@ | 2026-10-17 | Registro en centro de comunicaciones de agentes (sigma-robot) | Identidad `Agente drop.sigmac.app` registrada vía REST; credenciales en `.env` | | 2026-10-17 | Sincronización de normas y archivos base del ecosistema | Creación de `id_agente.md`, `reglas.md`, `tareas.md` y espejo de `infraestructura.md` | | 2026-10-19 | Despliegue en producción en CT 132 con SIAX Monitor (:8080) | Servicio `siax-app-DROP_SIGMAC_APP.service` operativo en puerto 2008 | +| 2026-10-20 | Puesta en producción pública vía HTTPS en drop.sigmac.app | Proxy Apache con SSL operativo, URLs y QR dinámicos con protocolo HTTPS verificado | diff --git a/.agente/proyecto_memoria.md b/.agente/proyecto_memoria.md index 89e7809..e164684 100644 --- a/.agente/proyecto_memoria.md +++ b/.agente/proyecto_memoria.md @@ -19,6 +19,7 @@ | 2026-10-17 | Registro oficial en MCP Infraestructura (ID 34) e identidad de agente | Se vinculó el proyecto al inventario central MariaDB vía API REST (:3007), asignando ID 34 bajo categoría application, y se creó `id_agente.md` según el estándar de identidad del ecosistema. | | 2026-10-19 | Despliegue en producción en CT 132 con supervisión SIAX Monitor | Se desplegó en `server-webapps`. Registrado en SIAX Monitor (:8080) como `siax-app-DROP_SIGMAC_APP.service`, habilitando reinicio atómico vía API sin sudo. | | 2026-10-20 | Reasignación de puerto a 2008 para liberar 2006 a audio_control | Se acordó con pablinux liberar el puerto 2006 para `audio_control` (correlativo a SoundWave en 2005) y trasladar `drop.sigmac.app` al puerto 2008 en CT 132 y MCP Infraestructura (ID 34). | +| 2026-10-20 | Activación de dominio público https://drop.sigmac.app | Pablinux configuró el proxy reverso Apache en CT 150 con SSL Let's Encrypt. Se optimizó `getBaseURL()` para forzar HTTPS en los enlaces y códigos QR generados cuando el Host es `drop.sigmac.app`. | --- @@ -32,6 +33,7 @@ Versión funcional completa y validada: - Cuentas registradas con almacenamiento permanente y panel `/mis-archivos`. - Registrado oficialmente en el MCP de Infraestructura (ID 34) y sincronizado con espejo local `.agente/infraestructura.md`. - Desplegado y ejecutándose activamente en producción (CT 132 puerto 2008) supervisado por SIAX Monitor. +- Enrutamiento público operativo al 100% en `https://drop.sigmac.app` con SSL. --- diff --git a/.agente/tareas.md b/.agente/tareas.md index 5fc2651..08500b6 100644 --- a/.agente/tareas.md +++ b/.agente/tareas.md @@ -22,13 +22,12 @@ - [x] **Identidad del Agente:** Creación de `id_agente.md` en la raíz del repositorio. - [x] **Centro de Comunicaciones sigma-robot:** Autorizado formalmente por Pablinux como **Agente ID 86** (`Agente drop.sigmac.app`). Token definitivo resguardado en `.env` (modo 600). - [x] **Despliegue a Producción (CT 132 server-webapps):** Desplegado y ejecutándose activamente como `siax-app-DROP_SIGMAC_APP.service` supervisado por SIAX Monitor (`:8080`), escuchando en puerto interno `2008` (dejando el 2006 reservado para `audio_control`). Subida atómica y reinicio automático operativo. +- [x] **Proxy Reverso Apache (SSL port 443 en CT 150):** Configurado por Pablinux y verificado operando al 100% en `https://drop.sigmac.app` (redirección 301 de HTTP a HTTPS, terminación SSL y proxy a `:2008`). Detección inteligente de HTTPS en enlaces generados y códigos QR. --- ## 🚀 En Progreso / Inmediatas -- [ ] **Ajuste de Proxy Reverso Apache (SSL port 443 en CT 150):** - - Asegurar que el VirtualHost SSL (``) para `drop.sigmac.app` tenga configurado `ProxyPass / http://192.168.10.160:2008/` y `ProxyPassReverse / http://192.168.10.160:2008/` (actualmente en puerto 443 responde el VirtualHost por defecto de Marketing SIGMA). - [ ] **Creación del Repositorio Git Remoto:** - Crear repo en `git.telcotronics.net/pablinux/app_compartir.git`. - Configurar `git remote add origin ...` y realizar primer push. diff --git a/README.md b/README.md index 3690518..f9e2a44 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ Este proyecto forma parte oficial del **Ecosistema Telcotronics** y se encuentra | **Registro Central MCP** | Registrado en MariaDB como **Servicio ID 34** (Categoría: `application`) | | **Centro de Agentes (sigma-robot)** | **Agente ID 86** (`Agente drop.sigmac.app`) activo y autorizado vía API REST | | **Servidor de Producción** | `server-webapps` CT 132 (`192.168.10.160`), puerto interno `2008` | -| **Dominio y Proxy Apache** | `https://drop.sigmac.app` con terminación SSL/TLS Let's Encrypt | +| **Dominio y Proxy Apache** | `https://drop.sigmac.app` con terminación SSL/TLS Let's Encrypt (✅ Operativo) | | **Supervisión de Procesos** | Servicio `siax-app-DROP_SIGMAC_APP.service` en [SIAX Monitor](http://192.168.10.160:8080) | | **Identidad y Normas** | Consultar [`id_agente.md`](id_agente.md), [`agents.md`](agents.md) y [`.agente/reglas.md`](.agente/reglas.md) | | **Espejo de Infraestructura** | Sincronizado en [`.agente/infraestructura.md`](.agente/infraestructura.md) desde `/home/pablinux/Projects/infraestructura.md` | diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go index 1ef89a2..91b10b7 100644 --- a/internal/handlers/handlers.go +++ b/internal/handlers/handlers.go @@ -72,7 +72,10 @@ type PageData struct { func (h *Handlers) getBaseURL(r *http.Request) string { proto := "http" - if r.TLS != nil || r.Header.Get("X-Forwarded-Proto") == "https" { + if r.TLS != nil || + strings.EqualFold(r.Header.Get("X-Forwarded-Proto"), "https") || + strings.EqualFold(r.Header.Get("X-Forwarded-Ssl"), "on") || + r.Header.Get("X-Forwarded-Port") == "443" { proto = "https" } host := r.Host @@ -80,6 +83,9 @@ func (h *Handlers) getBaseURL(r *http.Request) string { host = r.Header.Get("X-Forwarded-Host") } if host != "" { + if strings.HasPrefix(h.cfg.BaseURL, "https://") && strings.Contains(h.cfg.BaseURL, host) { + proto = "https" + } return fmt.Sprintf("%s://%s", proto, host) } return h.cfg.BaseURL