このプロジェクトについて
Sanctumdは、KotlinとJetpack Composeで構築されたネイティブAndroidアプリで、自己ホスト型メディアスタック(具体的にはJellyfinと*arrスイート(Radarr、Sonarr、Lidarr、Prowlarr)、NZBGetなどのダウンロードクライアント、ntfyなどの通知サービス)の統合ダッシュボードとして機能します。マトリックス端末風のインターフェースを備え、仲介バックエンドやアカウントシステムを介さずに、各サービスのAPIを直接使用して監視・管理できます。
主な機能は以下の通りです。
- **メディアとリクエスト**: Jellyfinライブラリの閲覧、ユーザーと権限の管理、アクティビティとログの表示。Radarr/Sonarr/Lidarrでは、ライブラリ、欠落アイテム、カットオフ、キュー、履歴、メディア追加、対話型検索、手動インポート、エピソード単位の監視を処理。Seerr(Overseerrフォーク)では、リクエスト、問題、ディスカバー、ウォッチリスト、承認を管理。Prowlarrインデクサー管理とNZBGetキューの制御。
- **ダッシュボード**: 編集可能なタブ、サービスドロワー、キュー、欠落アイテム、近日公開、最近追加、統計、視聴リーダーボード、クイックボタン用のカードを備えたカスタマイズ可能なホーム画面。テーマはフラット、ソリッド、ガラスで、Ken Burnsファンアート背景に対応。
- **通知**: ntfyトピックを統合してメッセージを閲覧。ライブプッシュサブスクリプションによる即時ローカル通知と、新しいメディア/インポート/リクエスト用のフォールバックポーリングワーカー。
- **HTTPショートカット**: 任意のURLに対して名前付きボタンを作成。JSONボディを使用したGET/POSTをサポートし、専用画面、ダッシュボードカード、ホーム画面ウィジェットからアクセス可能。
- **Android TV**: 別のAPKフレーバーとして、libmpv再生、ブロードキャストによるサーバー検出、Quick Connectサインイン、リモコン操作に適したナビゲーションを備えたJellyfinストリーミングクライアントを提供。
- **プライバシーと移植性**: 認証情報はAndroid Keystore経由でAES-256-GCM暗号化。オプションの生体認証アプリロック、パスワード保護付き設定エクスポート(PBKDF2→AES-GCM)、クラウドバックアップからの除外。
技術スタック: Kotlin、Compose、Material 3、Retrofit/OkHttp、Coil、Glance、WorkManager、androidx.biometric。最小SDK 26(Android 8.0)、ターゲットSDK 35(Android 15)。APKはスマートフォン向けにarm64のみ。TVフレーバーには32ビットTVスティック互換のためarmeabi-v7aが含まれます。
Jellyfin、Radarr、Sonarr、Lidarr、Prowlarr、Seerr、NZBGet、ntfyの特定バージョンでテスト済みで、1つのホームラボで毎日使用されています。TVビルドは1台のAndroid TVボックスでテスト済み。プロジェクトには339件のテストケース、detekt、Android Lint、エミュレータ起動テストが含まれます。機能は完成しており毎日使用されており、セキュリティ監査に合格しています。インストールはリリースからの署名付きAPKで行います。ソースからGradleでビルドも可能です。プロジェクトはGPL-3.0ライセンスです。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.