About this project
Sanctumd is a native Android application (Kotlin, Jetpack Compose) that serves as a unified dashboard for self-hosted media stacks, specifically Jellyfin and the *arr suite (Radarr, Sonarr, Lidarr, Prowlarr) along with download clients like NZBGet and notification services like ntfy. It presents a matrix-terminal-themed interface where users can monitor and manage services directly through their own APIs, without any intermediary backend or account system.
Key features include:
- **Media & Requests**: Browse Jellyfin libraries, manage users and permissions, view activity and logs; for Radarr/Sonarr/Lidarr, handle libraries, missing items, cutoff, queues, history, adding media, interactive search, manual import, and per-episode monitoring; for Seerr (Overseerr fork), manage requests, issues, discover, watchlists, and approvals; Prowlarr indexer management and NZBGet queue control.
- **Dashboard**: Customizable home screen with editable tabs, service drawer, cards for queues, missing items, coming soon, recently added, statistics, watch leaderboard, and quick buttons. Themes include flat, solid, and glass with Ken Burns fan-art backgrounds.
- **Notifications**: Integrate ntfy topics for browsing messages, live push subscriptions for instant local notifications, and a fallback polling worker for new media/imports/requests.
- **HTTP Shortcuts**: Create named buttons for any URL, supporting GET/POST with JSON body, accessible from dedicated screens, dashboard cards, or home-screen widgets.
- **Android TV**: A separate APK flavor provides a Jellyfin streaming client with libmpv playback, server discovery via broadcast, Quick Connect sign-in, and remote-friendly navigation.
- **Privacy & Portability**: Credentials encrypted with AES-256-GCM via Android Keystore, optional biometric app lock, password-protected config export (PBKDF2→AES-GCM), and exclusion from cloud backups.
Technical stack: Kotlin, Compose, Material 3, Retrofit/OkHttp, Coil, Glance, WorkManager, androidx.biometric. Minimum SDK 26 (Android 8.0), target SDK 35 (Android 15). The APK is arm64-only for phones; the TV flavor includes armeabi-v7a for compatibility with 32-bit TV sticks.
Tested against specific versions of Jellyfin, Radarr, Sonarr, Lidarr, Prowlarr, Seerr, NZBGet, and ntfy, with daily use on one homelab. The TV build has been tested on one Android TV box. The project includes a test suite of 339 cases, detekt, Android Lint, and emulator launch tests. It is feature-complete and in daily use, with a security audit passed. Installation is via signed APKs from releases; building from source is possible with Gradle. The project is GPL-3.0 licensed.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.