À propos du projet

Sanctumd est une application Android native (Kotlin, Jetpack Compose) qui sert de tableau de bord unifié pour les piles médias auto-hébergées, spécifiquement Jellyfin et la suite *arr (Radarr, Sonarr, Lidarr, Prowlarr) ainsi que des clients de téléchargement comme NZBGet et des services de notification comme ntfy. Elle présente une interface à thème terminal matriciel où les utilisateurs peuvent surveiller et gérer les services directement via leurs propres API, sans backend intermédiaire ni système de compte. Les principales fonctionnalités incluent : - **Médias et demandes** : Parcourir les bibliothèques Jellyfin, gérer les utilisateurs et les permissions, consulter l'activité et les journaux ; pour Radarr/Sonarr/Lidarr, gérer les bibliothèques, les éléments manquants, les seuils, les files d'attente, l'historique, l'ajout de médias, la recherche interactive, l'importation manuelle et le suivi par épisode ; pour Seerr (fork d'Overseerr), gérer les demandes, les problèmes, la découverte, les listes de surveillance et les approbations ; gestion des indexeurs Prowlarr et contrôle de la file d'attente NZBGet. - **Tableau de bord** : Écran d'accueil personnalisable avec onglets modifiables, tiroir de services, cartes pour les files d'attente, les éléments manquants, les sorties à venir, les ajouts récents, les statistiques, le classement de visionnage et des boutons rapides. Thèmes incluant plat, solide et verre avec fonds d'écran Ken Burns. - **Notifications** : Intégration des sujets ntfy pour parcourir les messages, abonnements push en direct pour des notifications locales instantanées, et un travailleur de sondage de secours pour les nouveaux médias/importations/demandes. - **Raccourcis HTTP** : Créer des boutons nommés pour toute URL, prenant en charge GET/POST avec corps JSON, accessibles depuis des écrans dédiés, des cartes du tableau de bord ou des widgets d'écran d'accueil. - **Android TV** : Une variante APK distincte fournit un client de streaming Jellyfin avec lecture libmpv, découverte de serveur par diffusion, connexion Quick Connect et navigation adaptée à la télécommande. - **Confidentialité et portabilité** : Identifiants chiffrés avec AES-256-GCM via Android Keystore, verrouillage biométrique optionnel, export de configuration protégé par mot de passe (PBKDF2→AES-GCM) et exclusion des sauvegardes cloud. Pile technique : Kotlin, Compose, Material 3, Retrofit/OkHttp, Coil, Glance, WorkManager, androidx.biometric. SDK minimum 26 (Android 8.0), SDK cible 35 (Android 15). L'APK est uniquement arm64 pour les téléphones ; la variante TV inclut armeabi-v7a pour la compatibilité avec les clés TV 32 bits. Testé contre des versions spécifiques de Jellyfin, Radarr, Sonarr, Lidarr, Prowlarr, Seerr, NZBGet et ntfy, avec une utilisation quotidienne sur un homelab. La version TV a été testée sur un boîtier Android TV. Le projet comprend une suite de tests de 339 cas, detekt, Android Lint et des tests de lancement d'émulateur. Il est complet en fonctionnalités et utilisé quotidiennement, avec un audit de sécurité réussi. L'installation se fait via des APK signés depuis les versions ; la compilation depuis les sources est possible avec Gradle. Le projet est sous licence GPL-3.0.