OPDS 实用指南
托管自己的书库,并在 Lectern 中打开
文件留在你掌控的硬件上,你可以从 Android 浏览书架并直接下载到 Lectern。Calibre-Web 适合电子书,Storyteller 适合同步阅读。
简短答案
主要管理私人电子书,请选 Calibre-Web。要把无 DRM 的电子书和有声书制作成 EPUB 3 同步阅读书,请选 Storyteller。两者都能向 Lectern 提供 OPDS 书目。
选择合适的服务器
| 问题 | Calibre-Web | Storyteller |
|---|---|---|
| 适合 | 管理和下载电子书 | 电子书、有声书和同步阅读 |
| 书库 | 含 metadata.db 的 Calibre 书库 | 独立数据存储 |
| Lectern | OPDS 中的 EPUB | EPUB 或同步 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- 保存为
compose.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”中重新开启。地址以
/opds结尾。 - 在 Lectern 中使用你平常的 Storyteller 用户名和密码。
连接 Lectern
- 打开书库。点加号,再选免费与自托管图书。
- 选择 Storyteller 或 Calibre-Web。
- 输入地址。例如
http://192.168.1.50:8083或 HTTPS 域名。 - 输入用户名和密码。它们只加密保存在设备上。
- 连接。把 EPUB 下载到普通 Lectern 书库。
反向代理使用子路径时请输入完整书目 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 设备上,只发送给你的服务器。
理解不同选择