実践 OPDS ガイド
自分の本棚をホストして Lectern で開く
ファイルは自分のハードウェアに置いたまま、Android から本棚を閲覧して Lectern に直接ダウンロードできます。電子書籍なら Calibre-Web、同期読書なら Storyteller が向きます。
短い答え
個人の電子書籍棚には Calibre-Web。DRM のない電子書籍とオーディオブックを EPUB 3 の同期読書本にするなら Storyteller。どちらも Lectern が閲覧できる OPDS カタログを公開します。
用途に合うサーバーを選ぶ
| 項目 | Calibre-Web | Storyteller |
|---|---|---|
| 得意 | 電子書籍の管理と配布 | 電子書籍、音声、同期読書 |
| ライブラリ | metadata.db を含む Calibre | 独自のデータ保存 |
| Lectern | EPUB 版 | EPUB または同期 EPUB |
| 負荷 | 軽い | 位置合わせは高負荷になる場合あり |
家庭内だけなら Calibre-Web から始めるのが簡単です。読むことと聴くことを同期したい場合は詳しい比較を確認してください。
始める前に
- 閲覧中に稼働する PC、NAS、ホームサーバー。
- Docker Compose と永続データフォルダー。
- DRM のない EPUB。Lectern は音声のみの項目を隠します。
192.168.1.50などの LAN IP。
まず家庭の Wi-Fi で試します。外部からはプライベート VPN または正しく設定した HTTPS リバースプロキシを使い、暗号化されないログインを公開しないでください。
方法 A:Calibre-Web
/path/to/... を置き換え、PUID、PGID、タイムゾーンを調整します。本のフォルダーには metadata.db を含む Calibre ライブラリが必要です。
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- /path/to/calibre-web/config:/config
- /path/to/calibre/library:/books
ports:
- 8083:8083
restart: unless-stoppedcompose.yamlとして保存し、docker compose up -dを実行。http://SERVER-IP:8083を開き、ライブラリを/booksに設定。adminとadmin123で入り、すぐにパスワードを変更。- Calibre で本を追加。自動取り込みには Calibre-Web Automated を利用。
http://SERVER-IP:8083/opdsをテスト。
最新情報は公式 LinuxServer リポジトリを参照してください。
方法 B:Storyteller
openssl rand -base64 32 で秘密鍵を作り、その値だけを STORYTELLER_SECRET_KEY.txt に保存します。
services:
web:
image: registry.gitlab.com/storyteller-platform/storyteller:latest
volumes:
- /path/to/storyteller/data:/data:rw
environment:
- STORYTELLER_SECRET_KEY_FILE=/run/secrets/secret_key
ports:
- "8001:8001"
secrets:
- secret_key
restart: unless-stopped
secrets:
secret_key:
file: ./STORYTELLER_SECRET_KEY.txt- Compose を起動し
http://SERVER-IP:8001を開く。 - 管理者を作り、電子書籍、オーディオブック、または両方を追加。
- 両方ある場合は位置合わせを開始して完了を待つ。
- OPDS フィードは既定で有効なので、通常はログイン情報だけで済みます。無効なら設定 → OPDS で戻します。URL は
/opdsで終わります。 - Lectern では通常の Storyteller ユーザー名とパスワードを使う。
公式セルフホストガイドと OPDS ドキュメントも確認してください。
Lectern に接続
- ライブラリを開く。プラスから無料・セルフホストの本を選択。
- Storyteller または Calibre-Web を選択。
- アドレスを入力。
http://192.168.1.50:8083または HTTPS ドメイン。 - ユーザー名とパスワードを入力。端末内に暗号化して保存されます。
- 接続。EPUB を通常の Lectern ライブラリへダウンロード。
リバースプロキシのサブパスでは完全なフィード URL を入力します。その他のサーバーには別の OPDS フィードを使います。
よくある問題
接続できない
スマートフォンの localhost はスマートフォン自身です。LAN IP、Wi-Fi、ファイアウォールを確認します。
再ログインを求められる
同じ情報で Web に入れるか試します。OAuth のみの場合は OPDS 用ローカルユーザーが必要なことがあります。
カタログが空
フィードに EPUB が必要です。Lectern は音声のみの項目を表示しません。
HTTPS エラー
Android が信頼する証明書と完全な証明書チェーンを使用します。
セルフホスト OPDS のよくある質問
サーバーアドレスと完全な OPDS URL のどちら?
Storyteller と Calibre-Web はサーバーアドレスだけで十分です。サブパスや他のサーバーは完全な URL を使います。
インターネット経由でも使える?
信頼できる HTTPS またはプライベート VPN なら可能です。暗号化されないログインは公開しないでください。
Lectern は Storyteller の音声を再生する?
いいえ。EPUB と同期 EPUB を取り込み、音声のみの項目は隠します。
認証情報は Lectern の開発者に送られる?
いいえ。Android 端末に暗号化して保存され、設定したサーバーだけに送られます。
選択肢を理解する