Sobre el proyecto
Sanctumd es una aplicación nativa de Android (Kotlin, Jetpack Compose) que sirve como panel unificado para pilas de medios autoalojadas, específicamente Jellyfin y la suite *arr (Radarr, Sonarr, Lidarr, Prowlarr), junto con clientes de descarga como NZGGet y servicios de notificación como ntfy. Presenta una interfaz con temática de terminal matricial donde los usuarios pueden monitorear y gestionar servicios directamente a través de sus propias APIs, sin ningún backend intermediario ni sistema de cuentas.
Las características clave incluyen:
- **Medios y solicitudes**: Navegar por bibliotecas de Jellyfin, gestionar usuarios y permisos, ver actividad y registros; para Radarr/Sonarr/Lidarr, manejar bibliotecas, elementos faltantes, cutoff, colas, historial, agregar medios, búsqueda interactiva, importación manual y monitoreo por episodio; para Seerr (bifurcación de Overseerr), gestionar solicitudes, problemas, descubrimiento, listas de seguimiento y aprobaciones; gestión de indexadores de Prowlarr y control de cola de NZBGet.
- **Panel**: Pantalla de inicio personalizable con pestañas editables, cajón de servicios, tarjetas para colas, elementos faltantes, próximos estrenos, agregados recientemente, estadísticas, tabla de clasificación de visualización y botones rápidos. Los temas incluyen plano, sólido y vidrio con fondos de fan-art Ken Burns.
- **Notificaciones**: Integrar temas de ntfy para navegar mensajes, suscripciones push en vivo para notificaciones locales instantáneas y un trabajador de sondeo de respaldo para nuevos medios/importaciones/solicitudes.
- **Atajos HTTP**: Crear botones con nombre para cualquier URL, con soporte GET/POST con cuerpo JSON, accesibles desde pantallas dedicadas, tarjetas del panel o widgets de pantalla de inicio.
- **Android TV**: Una variante de APK separada proporciona un cliente de streaming Jellyfin con reproducción libmpv, descubrimiento de servidor por broadcast, inicio de sesión Quick Connect y navegación amigable para control remoto.
- **Privacidad y portabilidad**: Credenciales cifradas con AES-256-GCM mediante Android Keystore, bloqueo de aplicación biométrico opcional, exportación de configuración protegida con contraseña (PBKDF2→AES-GCM) y exclusión de copias de seguridad en la nube.
Pila técnica: Kotlin, Compose, Material 3, Retrofit/OkHttp, Coil, Glance, WorkManager, androidx.biometric. SDK mínimo 26 (Android 8.0), SDK objetivo 35 (Android 15). El APK es solo arm64 para teléfonos; la variante TV incluye armeabi-v7a para compatibilidad con sticks de TV de 32 bits.
Probado contra versiones específicas de Jellyfin, Radarr, Sonarr, Lidarr, Prowlarr, Seerr, NZBGet y ntfy, con uso diario en un homelab. La compilación TV se ha probado en un box de Android TV. El proyecto incluye un conjunto de pruebas de 339 casos, detekt, Android Lint y pruebas de lanzamiento de emulador. Está completo en funciones y en uso diario, con una auditoría de seguridad aprobada. La instalación es mediante APK firmados de los lanzamientos; es posible compilar desde el código fuente con Gradle. El proyecto tiene licencia GPL-3.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.