OPDS 实用指南

托管自己的书库,并在 Lectern 中打开

文件留在你掌控的硬件上,你可以从 Android 浏览书架并直接下载到 Lectern。Calibre-Web 适合电子书,Storyteller 适合同步阅读。

简短答案

主要管理私人电子书,请选 Calibre-Web。要把无 DRM 的电子书和有声书制作成 EPUB 3 同步阅读书,请选 Storyteller。两者都能向 Lectern 提供 OPDS 书目。

选择合适的服务器

问题Calibre-WebStoryteller
适合管理和下载电子书电子书、有声书和同步阅读
书库含 metadata.db 的 Calibre 书库独立数据存储
LecternOPDS 中的 EPUBEPUB 或同步 EPUB
负载较轻对齐可能需要大量资源

家庭网络建议先用 Calibre-Web。若重点是边读边听,请看完整比较

开始之前

  • 浏览时保持开机的电脑、NAS 或家庭服务器。
  • Docker Compose 和持久化数据目录。
  • 无 DRM 的 EPUB。Lectern 会隐藏纯音频项目。
  • 服务器局域网 IP,例如 192.168.1.50

先在家庭 Wi-Fi 上测试。外网访问请使用私人 VPN 或正确配置的 HTTPS 反向代理,不要公开未加密的登录。

路线 A:Calibre-Web

替换 /path/to/... 路径,并调整 PUID、PGID 和时区。图书目录必须包含 Calibre 书库和 metadata.db

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-stopped
  1. 保存为 compose.yaml,运行 docker compose up -d
  2. 打开 http://SERVER-IP:8083,将书库设为 /books
  3. 使用 adminadmin123 登录,并立即修改密码。
  4. 通过 Calibre 添加图书。自动导入可用 Calibre-Web Automated
  5. 测试 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
  1. 启动 Compose,打开 http://SERVER-IP:8001
  2. 创建管理员,添加电子书、有声书或两者。
  3. 两种文件齐全时启动对齐并等待完成。
  4. OPDS 默认已启用,通常只需登录信息。若被关闭,可在“设置 → OPDS”中重新开启。地址以 /opds 结尾。
  5. 在 Lectern 中使用你平常的 Storyteller 用户名和密码。

更新前查看官方自托管指南OPDS 文档

连接 Lectern

  1. 打开书库。点加号,再选免费与自托管图书
  2. 选择 Storyteller 或 Calibre-Web。
  3. 输入地址。例如 http://192.168.1.50:8083 或 HTTPS 域名。
  4. 输入用户名和密码。它们只加密保存在设备上。
  5. 连接。把 EPUB 下载到普通 Lectern 书库。
空白 Lectern 书库中的免费与自托管图书按钮
空书库会直接提供自托管入口,无需增加常驻控件。
Lectern 的 Storyteller 连接窗口,含地址、用户名和密码
选择服务器,输入地址与凭据,然后连接。

反向代理使用子路径时请输入完整书目 URL。其他服务器请选择其他 OPDS 源

排查常见问题

无法连接

手机上的 localhost 指手机本身。请用局域网 IP,并检查 Wi-Fi 和防火墙。

再次要求登录

先在网页测试同一账号。仅 OAuth 的配置可能需要单独的本地 OPDS 用户。

书目为空

源必须提供 EPUB。Lectern 不显示纯音频项目。

HTTPS 失败

使用 Android 信任的证书,并提供完整证书链。

自建 OPDS 常见问题

输入服务器地址还是完整 OPDS URL?

Storyteller 和 Calibre-Web 输入服务器地址即可。子路径或其他服务器要用完整 URL。

能从互联网连接吗?

可以,但请使用可信 HTTPS 或私人 VPN,不要公开未加密登录。

Lectern 会播放 Storyteller 有声书吗?

不会。Lectern 导入 EPUB 和同步 EPUB,并隐藏纯音频项目。

凭据会发给 Lectern 开发者吗?

不会。它们加密保存在 Android 设备上,只发送给你的服务器。

你的书,你的服务器

连接一次,下载需要的图书,之后在 Lectern 离线阅读或聆听。

前往下载Google Play