用 VPS 搭个人电子书库:Calibre-Web 部署与多端同步

想把散落各处的电子书集中成私人云端图书馆?本文手把手教你在便宜 VPS 上用 Docker 部署 Calibre-Web,配置书库、开启上传与格式转换,并通过 OPDS、Send-to-Kindle 和 Kobo 同步在手机、平板、墨水屏多端无缝阅读。

延伸阅读

更多相关攻略推荐:Ollama AI系列(2):VPS上的AI推理与API应用Ollama AI系列(2):VPS上的AI推理与API应用【CPU选型 01】搭载 AMD Ryzen 9950X 的 VPSARM / Ampere 席卷 VPS:性价比真香还是兼容陷阱?Ollama AI系列(2):VPS上的AI推理与API应用

一、Calibre-Web 是什么,为什么要在 VPS 上自建电子书库

Calibre-Web 是一个基于网页的电子书管理界面,它把你在桌面端 Calibre 里整理好的书库搬到了浏览器里。你不需要在每台设备上安装 Calibre 客户端,只要打开网页就能浏览封面、在线阅读、下载书籍,甚至把书推送到 Kindle。社区里常把它比作"电子书界的 Jellyfin"——和影音库一样,你的书也该由自己掌控。

自建书库的价值很明显。第一是集中:过去你下载的 EPUB、PDF、MOBI 散落在电脑、手机、网盘各处,搜一本旧书要翻半天;放进一个库后,全局搜索、按作者和标签筛选,几千本也能秒查。第二是跨端:网页、手机 App、墨水屏阅读器都能通过标准 OPDS 协议直接连上你的库,不必反复拷线传文件。第三是隐私与所有权:你读什么、读到第几页都不经过任何商业平台,书本身就是你下载的 DRM-free 文件,真正属于你。

它支持 EPUB、PDF、MOBI、AZW3 等常见格式,内置网页阅读器,还能自动从 Google Books、Amazon 抓取封面与简介。多人家庭使用时,可以给每个成员开不同权限的账号,小孩只看得到适合的内容。

二、为 Calibre-Web 选一台什么样的 VPS

Calibre-Web 非常轻量,官方镜像空载只占大约 100 到 200MB 内存,社区给出的下限是 256MB、推荐 512MB,这对配置要求低到惊人。换句话说,一台最便宜的 1 核 1GB 入门 VPS 就能轻松跑起来,甚至树莓派或旧笔记本都行。

真正决定体验的不是 CPU 和内存,而是硬盘容量与带宽。电子书单本通常几 MB 到几十 MB,但如果你要存上千本、或者顺手把 PDF 教材和漫画都收进来,几十 GB 很快会被吃满,所以建议选 20GB 起步、能弹性扩容的 SSD 套餐。带宽方面,自己看问题不大,若要外部分享给家人,3Mbps 以上会更顺。操作系统用 Ubuntu 22.04 或 Debian 12 都没问题。

三、准备 Calibre 书库:metadata.db 从哪来

Calibre-Web 不是从零建库的工具,它需要一个现成的 Calibre 书库目录,也就是那个包含 metadata.db 数据库文件和书籍子目录的文件夹。最简单的方法是先在你自己的电脑上装一次桌面版 Calibre,导入几本书,然后把整个书库目录拷到服务器上。

如果你手头没有桌面端,也可以在服务器上用命令行初始化一个空库:用 apt 安装 calibre 软件包后,用 calibredb 命令带上新库路径添加一本免费公版书(比如从古登堡计划下载的 EPUB),系统就会生成 metadata.db。之后所有新书都可以通过网页上传,由 Calibre-Web 自动写进这个数据库。关键是:/books 这个挂载目录里必须能找到 metadata.db,否则首次配置时库加载不出来。

四、用 Docker Compose 部署 Calibre-Web

我们采用 LinuxServer.io 维护的官方镜像 lscr.io/linuxserver/calibre-web,它更新及时、文档完善。新建一个项目目录,写一个 docker-compose.yml,定义 calibre-web 服务:映射 8083 端口做网页访问,把 ./config 挂到 /config 存配置和数据库,把你的书库目录挂到 /books。

环境变量里有两个最容易踩坑的点。其一是 PUID 和 PGID,它们决定容器里文件归属哪个 Linux 用户,建议设成你当前用户的 id(用 id -u 和 id -g 查),设错是启动报权限错误的头号原因。其二是 TZ 时区,设成 Asia/Shanghai 让时间显示正常。如果你想开启格式转换(比如 EPUB 转 MOBI),就加上 DOCKER_MODS 环境变量指向 universal-calibre 这个 Docker 模块,它会把完整的 Calibre 转换工具装进容器,代价是首次启动多花几分钟、镜像大几百 MB。

写好之后执行 docker compose up -d 启动,再用 docker compose logs 看日志,出现监听 8083 的提示就说明起来了。浏览器打开 http://服务器IP:8083,用默认账号 admin、密码 admin123 登录。

五、首次配置:改密码、挂书库、开上传

第一次登录后有三件事必须做。第一,立刻改管理员密码:进入管理后台编辑用户里的 admin,把默认密码换成强密码,这是所有自托管服务的安全第一守则。第二,在基本配置里设置 Calibre 数据库位置,填 /books 这个容器内的挂载点,保存后库里的书就会列出来。第三,开启上传权限:在 Feature Configuration 里勾选启用上传,之后有权限的用户就能通过网页直接把新书传进库。

顺手还能做几件提升体验的事:把界面语言改成中文(简体);在基本配置里开启 OPDS 目录;如果准备做邮件推送,就去邮箱设置里填 SMTP。多用户家庭建议关掉开放注册,改为管理员手动建号,避免陌生人乱入。

六、多端同步:OPDS、Kindle 与 Kobo

Calibre-Web 真正好用的地方在于多端同步,核心是一项叫 OPDS 的标准目录协议。开启后,你的书库会在 /opds 这个地址暴露成一个"个人书店",绝大多数严肃阅读 App 都能直接订阅它。安卓上用 Moon+ Reader 或 Librera,在"网络图书馆"里添加 OPDS 目录;Kindle、Kobo、安卓的 KOReader 在搜索菜单里添加;iOS 上用 Panels 或 Cantook 添加 OPDS。填好你的服务器地址、账号密码,整座书库就像应用商店一样在设备上可浏览、可搜索、可一键下载。

针对 Kindle,Calibre-Web 提供 Send-to-Kindle:在后台配好 SMTP(Gmail、Fastmail 都行),再在每个用户的资料里填他们的 Kindle 邮箱,并把发件地址加入亚马逊的"已批准发件人"清单。之后每本书旁边都有"发送到 Kindle"按钮,点一下书就通过邮件推到墨水屏上。注意亚马逊从 2023 年起已支持直接收 EPUB,所以转换不再是刚需。

针对 Kobo,Calibre-Web 有内置的 Kobo 同步支持,这是它区别于 Kavita、Komga 的独门绝技。在后台开启 Kobo 同步后,每个用户资料里会生成一条专属同步地址,把 Kobo 设备上的商店 API 地址改成它,书就会像从 Kobo 官方店一样自动出现,阅读进度还能双向同步。

七、格式转换与邮件推送技巧

不同设备爱吃的格式不同:安卓和平板通用 EPUB,老 Kindle 偏好 MOBI/AZW3,Kobo 则有优化过的 KEPUB。开启 universal-calibre 模块后,Calibre-Web 能在下载时按需把 EPUB 转成目标格式——用户在网页上点"转换并下载"即可,Kobo 的 KEPUB 转换由容器内置的 Kepubify 自动完成。对只存 EPUB、从不需要转换的用户,可以跳过这个模块,启动更快、更省空间。

关于收书策略,一个实用建议是:主力收集 EPUB 这一种通用格式,它通吃几乎所有自托管服务和阅读 App;尽量避免囤积已经淘汰的 MOBI。遇到特殊设备要别的格式时,再让 Calibre-Web 临时转,既省存储又少折腾。

八、备份、权限与日常维护

书库的数据其实就两部分:/books 里的 metadata.db 加书籍文件,以及 /config 里的应用配置。备份只需定期把这两个目录打包压缩,比如用 tar 打成压缩包传到对象存储或另一台机器。书籍文件本身一般不常变,可以低频备份;metadata.db 记录着所有元数据、书架和阅读进度,建议每天备。

权限方面,PUID/PGID 设对能省掉绝大多数"拒绝访问"的麻烦;如果上传的书在网页看不到,多半是文件属主不对。日常维护很轻:镜像升级用 docker compose pull 加 up -d 即可;日志用 docker compose logs 看。需要提醒的是,元数据整理(批量改封面、正则替换)在网页端不如桌面版 Calibre 强,大量整理还是回到桌面端做完再同步更省心。

#Calibre-Web #VPS部署 #电子书库 #自托管 #OPDS #Kindle #Kobo