Al Kiwi led Ta-tis-ar A-gogo-ped

Documentación Importante del Pfr. Morezane

Herramientas de usuario

Herramientas del sitio


prosody

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
prosody [2026/06/27 03:17] – creado morezaneprosody [2026/06/27 03:59] (actual) morezane
Línea 1: Línea 1:
-====== Proyecto: Servidor de Mensajería XMPP Local - Copiar pegar texto en casa sin Internet en la querida Orange Pi One ======+====== 🍊🏴‍☠️Prosody - servidor de Mensajería XMPP "Local" con pequeño servidor Orange Pi======
  
 Este documento registra el proceso de despliegue y resolución de problemas para montar un servicio de chat privado e instantáneo dentro de la red local, aprovechando la infraestructura existente. Este documento registra el proceso de despliegue y resolución de problemas para montar un servicio de chat privado e instantáneo dentro de la red local, aprovechando la infraestructura existente.
Línea 5: Línea 5:
 ===== 1. Entorno de Red y Servicios ===== ===== 1. Entorno de Red y Servicios =====
  
-El servidor central es una **Orange Pi One** (Allwinner H3, 512MB RAM) corriendo **Debian 9 Stretch** (Armbian). +El servidor central es una placa de desarrollo de recursos medidos (512MB RAM) corriendo una distribución basada en **Debian 9 Stretch** (Armbian). 
  
 Para este proyecto elegimos **Prosody** bajo el protocolo estándar **XMPP** debido a su huella mínima de recursos (10-20 MB de RAM y 0% de CPU en reposo). El servicio coexiste sin inconvenientes con las tareas que la placa ya ejecuta 24/7: Para este proyecto elegimos **Prosody** bajo el protocolo estándar **XMPP** debido a su huella mínima de recursos (10-20 MB de RAM y 0% de CPU en reposo). El servicio coexiste sin inconvenientes con las tareas que la placa ya ejecuta 24/7:
Línea 16: Línea 16:
 Antes de la instalación, se validó el estado de salud de la placa mediante SSH: Antes de la instalación, se validó el estado de salud de la placa mediante SSH:
  
-{{:wiki:specs_orange_pi.jpeg?400|Parámetros del sistema en la Orange Pi One}}+{{:specs_orange_pi.jpeg?400|Parámetros del sistema en el servidor local}}
  
 ^ Parámetro ^ Estado ^ Observaciones ^ ^ Parámetro ^ Estado ^ Observaciones ^
-| Dirección IP | **192.168.0.6** | IP estática local utilizada para la conexión de los clientes. |+| Dirección IP | **192.168.1.50** | IP estática local genérica utilizada para la conexión de los clientes. |
 | Temperatura | ~34°C | Parámetros térmicos óptimos. | | Temperatura | ~34°C | Parámetros térmicos óptimos. |
 | Memoria RAM | ~493 MB libres | Capacidad suficiente para el nuevo servicio. | | Memoria RAM | ~493 MB libres | Capacidad suficiente para el nuevo servicio. |
-| Almacenamiento ''/storage'' | **100% de 58G** | Partición de la SD dedicada a torrents; no interfiere con el sistema. |+| Almacenamiento ''/storage'' | **100% de 58G** | Partición dedicada exclusivamente descargas; no interfiere con el sistema. |
 | Almacenamiento Raíz (''/'') | 18% en uso | Espacio libre saludable en el sistema operativo base. | | Almacenamiento Raíz (''/'') | 18% en uso | Espacio libre saludable en el sistema operativo base. |
  
 ===== 3. Instalación de Dependencias ===== ===== 3. Instalación de Dependencias =====
  
-Al tratarse de una distribución con soporte oficial finalizado (Debian 9), se aseguró el acceso a los repositorios históricos en ''/etc/apt/sources.list'':+Al tratarse de una distribución con soporte oficial finalizado, se aseguró el acceso a los repositorios históricos en ''/etc/apt/sources.list'':
  
 <code> <code>
Línea 34: Línea 34:
 </code> </code>
  
-Con las fuentes listas, se procedió con la instalación del servidor y la librería criptográfica:+Con las fuentes listas, se procedió con la instalación del servidor y la librería criptográfica básica:
  
 <code> <code>
Línea 41: Línea 41:
 </code> </code>
  
-{{:wiki:specs_orange_pi_ii.jpeg?400|Gestión de paquetes para la instalación de Prosody}}+{{:specs_orage_pi_ii.jpeg?400|Gestión de paquetes para la instalación de Prosody}}
  
 ===== 4. Configuración del Servidor (Host Local) ===== ===== 4. Configuración del Servidor (Host Local) =====
Línea 47: Línea 47:
 Editamos el archivo de configuración principal en ''/etc/prosody/prosody.cfg.lua''. Editamos el archivo de configuración principal en ''/etc/prosody/prosody.cfg.lua''.
  
-{{:wiki:localhost.jpeg?400|Sección por defecto del bloque VirtualHost}} 
  
-Modificamos el host de ejemplo para apuntar a la IP local de la placa y relajamos las restricciones de cifrado para facilitar la compatibilidad en red interna sin certificados SSL de internet:+{{:virtualhost.jpeg?400|Sección por defecto del bloque VirtualHost}} 
 + 
 +Modificamos el host de ejemplo para apuntar a la IP local simulada y relajamos las restricciones de cifrado para facilitar la compatibilidad en red interna sin certificados SSL de internet:
  
 <code> <code>
-VirtualHost "192.168.0.6"+VirtualHost "192.168.1.50"
     enabled = true     enabled = true
  
Línea 71: Línea 72:
 </code> </code>
  
-Y generamos las credenciales para los dispositivos desde la terminal:+Y generamos las credenciales genéricas para los dispositivos desde la terminal:
 <code> <code>
-prosodyctl adduser morezane@192.168.0.6 +prosodyctl adduser usuario_pc@192.168.1.50 
-prosodyctl adduser motorola@192.168.0.6+prosodyctl adduser usuario_movil@192.168.1.50
 </code> </code>
  
Línea 83: Línea 84:
 La integración en el cliente de escritorio fue inmediata y exitosa. La integración en el cliente de escritorio fue inmediata y exitosa.
  
-{{:wiki:recurso.jpeg?400|Parámetros de cuenta XMPP en Pidgin}}+{{:recurso.jpeg?400|Parámetros de cuenta XMPP en Pidgin}} 
  
   * **Protocolo:** XMPP   * **Protocolo:** XMPP
-  * **Usuario:** ''morezane'' +  * **Usuario:** ''usuario_pc'' 
-  * **Dominio:** ''192.168.0.6''+  * **Dominio:** ''192.168.1.50''
   * **Recurso:** Vacío (asignación automática por defecto).   * **Recurso:** Vacío (asignación automática por defecto).
   * **Ajustes Avanzados:** Se configuró la seguridad en //"Usar cifrado si está disponible"// y se especificó el Servidor de conexión a la IP del host. Estado: Disponible (Verde).   * **Ajustes Avanzados:** Se configuró la seguridad en //"Usar cifrado si está disponible"// y se especificó el Servidor de conexión a la IP del host. Estado: Disponible (Verde).
 +
 +{{:eladmin.jpeg?400|Yin yón}}
 +
  
 ==== Dispositivo Móvil (Android) ==== ==== Dispositivo Móvil (Android) ====
Línea 95: Línea 100:
 El despliegue en smartphones presentó restricciones severas por las políticas de seguridad del software moderno. El despliegue en smartphones presentó restricciones severas por las políticas de seguridad del software moderno.
  
-{{:wiki:conversations.jpeg?400|Restricciones de enlace en Conversations}} 
  
-  * **Punto de control:** Se verificó que el dispositivo estuviera en el Wi-Fi local, ya que la IP del host es inaccesible desde redes móviles (4G).+  * **Punto de control:** Se verificó que el dispositivo estuviera en el Wi-Fi local, ya que la IP del host es inaccesible desde redes móviles externas (4G/5G).
   * **Conflicto de software:** Clientes actuales basados en Conversations (como Monocles o Blabber) bloquearon el acceso lanzando alertas insaltables de **"Seguridad de transporte débil (sin TLS 1.3)"** y **"Dominio no verificable"**. Esto ocurre porque las librerías modernas de Android impiden por código el uso de IPs numéricas locales sin certificados firmados por entidades externas.   * **Conflicto de software:** Clientes actuales basados en Conversations (como Monocles o Blabber) bloquearon el acceso lanzando alertas insaltables de **"Seguridad de transporte débil (sin TLS 1.3)"** y **"Dominio no verificable"**. Esto ocurre porque las librerías modernas de Android impiden por código el uso de IPs numéricas locales sin certificados firmados por entidades externas.
  
 ==== Solución con Yaxim ==== ==== Solución con Yaxim ====
  
-Para mantener la configuración por IP sin añadir complejidad de DNS locales, se optó por **Yaxim** (un cliente clásico disponible en la Play Store). +Para mantener la configuración por IP sin añadir complejidad de DNS locales o certificados auto-firmados, se optó por **Yaxim** (un cliente clásico disponible en la Play Store). 
-  * **Configuración:** ID Jabber ''motorola@192.168.0.6'', puerto ''5222'', y la opción activa **"Ignore TLS errors"** (Ignorar errores de TLS).+  * **Configuración:** ID Jabber ''usuario_movil@192.168.1.50'', puerto ''5222'', y la opción activa **"Ignore TLS errors"** (Ignorar errores de TLS).
   * **Resultado:** Conexión exitosa y puente de comunicación establecido.   * **Resultado:** Conexión exitosa y puente de comunicación establecido.
  
-===== 6. Estado Actual del Proyecto ===== 
  
-  * **Rendimiento:** Latencia imperceptible (mensajes instantáneosy consumo de recursos de hardware nulo+ 
-  * **Alcance:** Canal operativo dedicado a texto planoLa transferencia multimedia (fotos/archivosno está disponible en esta fase debido a la versión antigua de Prosody las limitaciones del cliente móvil ligero+ 
-  * **Escalabilidad:** Si en el futuro se requiere soporte multimedia, se deberá migrar hacia un nombre de dominio local (ej: ''casita.local''compilar el módulo ''mod_http_upload''.+===== 6. Proyecciones de Uso y Mejoras Futuras ===== 
 + 
 +Para expandir las capacidades de este nodo local sin saturar el hardware de la placa, se plantean las siguientes líneas de mejora y casos de uso prácticos a mediano plazo: 
 + 
 +==== A. Activación de Transferencia de Archivos (Multimedia) ==== 
 +Actualmente el canal está limitado a texto. Para habilitar el envío de imágenes, notas de voz y documentos entre la PC y el móvil, los pasos requeridos son: 
 +  * **Migración a Dominio Local:** Configurar un dominio ficticio de texto (ej: ''nodo_local.local''usando el servidor DNS interno de **AdGuard Home**. Esto solucionará el bloqueo de certificados en las apps móviles modernas
 +  * **Módulo HTTP Upload:** Compilar o activar el módulo ''mod_http_upload'' en ProsodySe configurará un límite estricto de tamaño (ej: máximo 10 MB por archivoy una tarea programada (cronjob) para limpiar la caché automáticamente cada 48 horas, protegiendo el almacenamiento de la tarjeta SD. 
 + 
 +==== B. Integración de Canales Bots de Notificación (Automatización) ==== 
 +Dado que la placa ya centraliza servicios críticos de la casa, el servidor XMPP puede transformarse en un centro de alertas automatizadas mediante scripts ligeros en Bash o Python: 
 +  * **Alertas del Torrent Seeder:** Configurar **Transmission** para que envíe un mensaje automático al chat ("''usuario_pc''") en cuanto una descarga finalice con éxito
 +  * **Reportes de AdGuard Home:** Notificaciones semanales con estadísticas de consultas bloqueadas o alertas si se detecta actividad inusual en la red. 
 +  * **Estado del Servidor:** Alertas automáticas si la temperatura de la CPU de la Orange Pi supera los 60°C o si el almacenamiento de la raíz (''/'') llega al 90%. 
 + 
 +==== C. Salas de Conversación Temáticas (MUC) ==== 
 +Configurar el módulo de salas multiusuario (Multi-User Chat) para fragmentar la comunicación local sin salir del ecosistema ligero de Yaxim/Pidgin: 
 +  * Crear salas fijas independientes (ej: ''#alertas@192.168.1.50'' para los bots y ''#general@192.168.1.50'' para comunicación humana), manteniendo el flujo de datos ordenado. 
 + 
 +==== D. Puente de Respaldos de Texto Plano ==== 
 +Utilizar el canal como un bloc de notas instantáneo y privado. Al enviarse comandos, fragmentos de código o notas rápidas entre el celular y la computadora, todo queda guardado en el historial local del servidor, sirviendo como una alternativa privada a herramientas comerciales de sincronización de notas.
  
 ===== 7. Recursos y Enlaces de Interés ===== ===== 7. Recursos y Enlaces de Interés =====
Línea 118: Línea 141:
   * [[https://www.pidgin.im/ | Pidgin - Cliente XMPP de escritorio]]   * [[https://www.pidgin.im/ | Pidgin - Cliente XMPP de escritorio]]
   * [[https://www.debian.org/ | Debian - Sistema Operativo]]   * [[https://www.debian.org/ | Debian - Sistema Operativo]]
 +  * [[http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-pi-One.html|Orange Pi One Specs.]]
prosody.1782530256.txt.gz · Última modificación: por morezane