¿Qué es Framewrk?
Framewrk es una solución de software diseñada para cerrar la brecha tecnológica entre las bibliotecas de medios autogestionadas y el hardware de visualización física. Actúa como un puente inteligente (bridge) que permite a los usuarios sincronizar automáticamente imágenes desde plataformas de gestión de fotos privadas, como PhotoPrism o Immich, hacia marcos digitales populares como Aura y Nixplay.
A diferencia de las aplicaciones oficiales que suelen imponer limitaciones en la frecuencia de actualización o en el tipo de contenido permitido, Framewrk otorga al usuario el control total sobre qué imágenes se muestran, bajo qué reglas de calidad y con qué frecuencia, eliminando la necesidad de intervención manual constante para mantener los marcos actualizados.
¿Para quién es Framewrk?
Esta herramienta está orientada principalmente a:
- Entusiastas del Homelab: Usuarios que ya gestionan infraestructuras de servidor en casa y buscan automatizar la interacción entre diferentes servicios.
- Defensores de la Privacidad: Personas que prefieren utilizar plataformas como Immich o PhotoPrism para mantener el control sobre sus metadatos y archivos originales.
- Propietarios de Marcos Digitales: Usuarios de dispositivos Aura o Nixplay que desean una rotación dinámica de contenido sin depender de las limitaciones de las aplicaciones móviles oficiales.
Funcionalidades Principales
Framewrk no es solo un script de transferencia; es un motor de gestión de contenido con capacidades avanzadas:
- Sincronización Automática y Programada: El sistema monitorea las bibliotecas de origen y actualiza los marcos en tiempo real o según intervalos definidos.
- Deduplicación Inteligente: Utiliza una base de datos local para rastrear qué imágenes ya han sido enviadas a cada dispositivo específico, evitando que el marco muestre la misma foto repetidamente.
- Reglas de Calidad y Orientación: Filtra automáticamente las imágenes según su formato (paisaje o retrato) y resolución mínima antes del envío, asegurando que solo contenido compatible llegue al hardware.
- Gestión Dinámica de Contenido: Si una imagen deja de cumplir los criterios de selección definidos en la configuración (por ejemplo, si se marca como 'no deseada' en Imm11), el sistema puede removerla automáticamente del flujo del marco.
- Consola Web de Administración: Una interfaz web dedicada permite supervisar logs en tiempo real, gestionar las configuraciones de los dispositivos y monitorizar el estado de la conexión con los servidores externos.
- Aplicación Móvil (Beta): Permite a los usuarios enviar imágenes instantáneamente desde un dispositivo móvil sin necesidad de pasar por la biblioteca principal, ideal para compartir momentos inmediatos.
Arquitectura Técnica
La arquitectura de Framewrk ha sido diseñada bajo el principio de simplicidad operativa, permitiendo que una herramienta potente se ejecute con un mínimo de recursos:
- Un Único Contenedor: Todo el ecosistema (servidor web, motor de sincronización y gestor de base de datos) reside en un único proceso Docker, simplificando enormemente el despliegue y mantenimiento.
- Modelo Multihilo (Multi-threading): Utiliza un planificador central para gestionar las tareas de los diferentes marcos, un trabajador dedicado para manejar las sesiones con Aura/Nixplay sin bloqueos, y un escritor de logs que utiliza batching hacia la base de datos para minimizar el impacto en el rendimiento.
- Persistencia Local: El estado del sistema, las credenciales (encriptadas o gestionadas localmente), el historial de sincronización y las configuraciones se almacenan en una base de datos SQLite, garantizando que los datos no se pierdan tras un reinicio del contenedor.
Requisitos y Despliegue
Para garantizar un funcionamiento óptimo, Framewrk requiere el cumplimiento de ciertos requisitos técnicos:
- Infraestructura: Entorno Docker compatible (Docker Engine o Docker Compose).
- Integraciones:1 Acceso a las APIs de PhotoPrism o Immich (se recomienda versión 3.1+ para una integración completa con metadatos).
- Conectividad: Conexión estable a internet para comunicarse con los servidores de autenticación y gestión de Aura y Nixplay.
Instalación Recomendada:
El despliegue estándar se realiza mediante Docker Compose. Es fundamental definir la variable de entorno FRAMEWRK_ADMIN_PASSWORD antes del primer inicio para asegurar el acceso a la consola web.
Configuración de Red y Seguridad:
Es altamente recomendable (y en algunos casos necesario) utilizar un Reverse Proxy (como Nginx, Traefik o Caddy). El proxy debe estar configurado con SSL habilitado para manejar correctamente los encabezados X-Forwarded-*. Además, el servidor de proxy debe permitir cuerpos de solicitud (request bodies) de al menos 17 MiB para procesar las imágenes sin interrupciones.
Ventajas y Limitaciones
| Ventajas | Limitaciones |
|---|---|
| Automatización total del flujo de contenido. | No es una solución de backup (las fotos en el marco no son copias de seguridad). |
| Filtros avanzados por orientación y calidad. | Dependencia de APIs externas (Aura/Nixplay) que pueden cambiar sin previo aviso. |
| Gestión centralizada en un solo contenedor Docker. | Contraseñas almacenadas localmente en el archivo SQLite. |
Preguntas Frecuentes (FAQ)
¿Es Framewrk de código abierto?
No es estrictamente software open source bajo licencias permisivas; permite el uso libre y la autogestión, pero prohíbe la redistribución o modificación del código fuente.
¿Cómo se gestionan las actualizaciones?
Se recomienda realizar un respaldo manual del archivo sync.db antes de aplicar saltos de versión mayores para preservar el historial de sincronización y las configuraciones personalizadas.
¿Por qué es necesario un Reverse Proxy?
El uso de un proxy asegura que los encabezados de red se transmitan correctamente al contenedor, permitiendo que la consola web identifique la IP del usuario y gestione sesiones seguras mediante SSL.