发布时间:2025年10月9日 | 更新时间:2026年1月19日
原文
2026-02-11 10:53:13 星期三作者:William Elimbi
我只做了以分享为目的的翻译工作
如果你是作者希望移除此文章,可以在此联系我
I only did translation for the purpose of sharing.If you are the author and wish to remove this article, you can contact me here.
通过 Z-Library (Telegram)、Syncthing 文件同步和 dir2opds 服务器,构建自托管数字图书馆的完整指南。适用于 Kobo, PocketBook, Kindle, KOReader 以及所有兼容 OPDS 的电子阅读器。
构建你的自托管数字图书馆:完整指南
今天,我将展示我如何搭建个人的自托管数字图书馆。目标很简单:通过 Telegram 从 Z-Library 下载电子书,自动同步到我的服务器,并通过 OPDS 协议在任何电子阅读器(Kobo, PocketBook, Kindle 或 Android)上轻松访问。
使用 Z-Library Telegram 机器人下载电子书
Z-Library 提供了海量的英文和法文电子书资源。与其使用 URL 经常变动的网页版,我选择使用他们的 Telegram 机器人,它更加稳定且下载电子书更方便。
首先,你需要创建一个 Z-Library Telegram 机器人:

配置完成后,该机器人允许你直接在 Telegram 中搜索并下载任何 EPUB 或 PDF 格式的书籍:

我安装了 Telegram 桌面客户端,这意味着所有下载的文件会自动保存到我电脑上的本地目录中。这就是同步“魔法”开始的地方。
使用 Syncthing 自动同步电子书
为了让我的书能自动出现在远程服务器上,我使用了 Syncthing。它是一个去中心化、开源且极其可靠的文件同步工具——非常适合在多个设备间同步电子书库。
Syncthing 服务器端配置 (Docker Compose)
在我的 VPS 上,我通过 Docker Compose 部署了 Syncthing:
services:
syncthing:
image: lscr.io/linuxserver/syncthing:latest
container_name: syncthing
hostname: syncthing
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ./config:/config
- ./data:/data
ports:
- 8384:8384
- 22000:22000/tcp
- 22000:22000/udp
- 21027:21027/udp
restart: unless-stopped
管理界面可以通过 8384 端口访问。为了简化访问,我使用了 Caddy 反向代理:
sync.domain.com {
reverse_proxy http://syncthing:8384
}
客户端 Syncthing 配置
在我的本地电脑上,我安装了 Syncthing 守护进程,并配置共享 Telegram 下载书籍的那个目录。这样,一旦有新书下载,它就会在几秒钟内自动同步到我的服务器。
使用 dir2opds 搭建 OPDS 服务器:从电子阅读器访问书籍
OPDS (Open Publication Distribution System) 是一种协议,允许电子阅读器像浏览在线图书馆一样浏览和下载书籍。这是 Kobo, PocketBook, KOReader 和大多数阅读应用使用的标准。
我使用的是 dir2opds,这是一个用 Go 语言编写的 OPDS 服务器,超轻量级,并且当有新文件到达时会即时更新。
安装并运行 dir2opds
podman run --name dir2opds --rm --userns=keep-id \
--mount type=bind,src=/home/pi/syncthing/data,dst=/books,Z \
--publish 8008:8080 \
-i -t localhost/dir2opds /dir2opds -debug
这里的关键点是正确挂载 Syncthing 同步书籍的目录(在我的例子中是 /home/pi/syncthing/data)。
为了简化 OPDS 服务器的访问,我同样使用了 Caddy 反向代理:
opds.domain.com {
reverse_proxy http://dir2opds:8080
}
为什么选择 dir2opds 作为 OPDS 服务器?
市面上有好几种 OPDS 服务器(如 Calibre-web, COPS 等),但我选择 dir2opds 有几个原因:
- Go 语言编写:超快且资源占用极低。
- 即时更新:新文件到达时立即更新。
- 无需数据库。
- 配置极简。
- 非常适合自托管使用。
在 Kobo, PocketBook 和 KOReader 上设置 OPDS
现在 OPDS 服务器已经就位,任何带有 OPDS 客户端的电子阅读器都可以连接到它。
兼容 OPDS 的电子阅读器
- Kobo: 通过 KOReader 或 NickelMenu 应用。
- PocketBook: 原生内置 OPDS 支持。
- Kindle: 通过 KOReader(需要越狱后)。
- Android: 众多应用支持(Moon+ Reader, FBReader 等)。
为了将我的手机连接到 OPDS 服务器,我只需在客户端配置服务器 URL:

连接后,我就可以浏览我的整个图书馆了:

我特别推荐 KOReader,这是一款开源阅读器,支持多种设备(Kobo, Kindle, PocketBook, Android),并且完美集成了 OPDS 支持。
2026年1月更新:3个月使用回顾
经过超过3个月的日常使用,以下是我对这套设置的反馈:
完美运行的部分
- Z-Library Telegram 机器人:依然功能完备且稳定,无需更改 URL 或配置。
- Syncthing:同步即时且可靠,没有丢失文件。
- dir2opds:OPDS 服务器自10月以来一直运行无中断。
做出的调整
- 添加了 Docker healthcheck,以便在需要时自动重启 dir2opds。
- 将电子书按流派整理到子文件夹中,以便在阅读器上更轻松地导航。
如果 Z-Library Telegram 发生变动(替代方案)
如果 Telegram 机器人发生变化或消失:
- Anna’s Archive: 去中心化的替代方案,拥有庞大的馆藏。
- Library Genesis: 依然可以通过镜像访问。
- Calibre + DeDRM: 适用于你自己合法购买的电子书。
结论:你的自托管数字图书馆
通过这套设置,我现在拥有:
- 通过 Z-Library Telegram 机器人轻松访问数百万本书籍。
- 通过 Syncthing 自动同步到我的个人服务器。
- 通过 OPDS 在任何电子阅读器(Kobo, PocketBook, Kindle, Android)上进行通用访问。
一切都是自托管的、开源的,并且完全自动运行。再也不用把阅读器插到电脑上,或者手动处理文件了!
当你需要在多个设备上阅读,或者想与家庭成员共享图书馆时,这个方案特别方便。