忆愿头像
关注
飞牛 OS 部署 Calibre-Web:Docker 整理电子书库、上传 PDF 到固定公网访问封面图

飞牛 OS 部署 Calibre-Web:Docker 整理电子书库、上传 PDF 到固定公网访问

飞牛 OS 部署 Calibre-Web:Docker 整理电子书库、上传 PDF 到固定公网访问

前言

我以前整理电子书,最常做的事情不是阅读,而是在一层层文件夹里找书:小说、技术资料、PDF、EPUB 混着放,临时下载的文件名看不出内容,换到手机上又得重新翻一遍。把硬盘扩容并不能解决这件事,真正缺的是能按书名、作者和简介查找的统一入口。Calibre-Web 恰好适合给已有书库做一个网页界面:书还放在自己的设备上,浏览器负责展示、搜索和访问,不必因为换了阅读设备就重新整理文件。

这次我用飞牛 OS 的 Docker 搭建这套书库。先准备 config 与 books 两个目录,启动 lscr.io/linuxserver/calibre-web:latest,再连接 /books 下的 metadata.db。打开后台以后,继续修改中文显示、开启上传权限、上传一本 PDF 并补齐基本信息,确认书籍确实出现在首页。局域网访问跑通,再通过 cpolar 给 8083 配置随机公网地址,最后预留固定二级子域名 cw1。我会特别留意几个容易混淆的地方:书籍文件和数据库不是同一回事,浏览器能登录不等于书库初始化完成,能生成公网地址也不代表默认管理员密码已经适合长期对外使用。我更愿意先拿一份熟悉的 PDF 把上传、保存和书目显示逐个确认,再开始配置远程入口,免得日后找不到书时分不清是网络还是书库本身出了问题。

511d6d9e391bbafb99eb2b72a41b0abf

一、Calibre-Web 是书库入口,不是另一个网盘

我希望打开浏览器就能看到书名、封面和分类,而不是面对一堆下载文件名。Calibre-Web 提供的正是这层书库界面:它读取 Calibre 格式的书库及其 metadata.db,把书籍信息组织成可浏览、可查找的页面。实际文件仍存放在 NAS 的书库目录,上传操作也会写入相应的存储位置;“网页门面”不等于文件凭空脱离了本地硬盘。

这类部署尤其适合已经把 PDF、EPUB、MOBI 和其他资料集中放在一台设备上的人。我的目标先定得简单一些:完成数据库连接、显示一本上传的 PDF,再从外网打开同一座书库。在线阅读、格式处理或跨设备阅读进度等具体体验,应按实际格式与客户端分别确认,不能仅凭首页截图就认定全部能力已经验证。

二、在飞牛 OS 上准备 Docker 与书库目录

打开飞牛 OS,先进入 Docker。镜像仓库里搜索 Calibre-Web,按页面步骤下载镜像;随后到文件管理器中建立 docker 文件夹,并在下面准备 books 与 config 两个目录。前者作为书库位置,后者保存应用配置。先把目录安排好,再启动容器,后面查文件、备份和排错都比较清楚。

15cd2d1c181f74d71294dd8b58320ed3

97e6346410616a1324dd93d0dfa9af9f

4222f9326afc2340e941d7aea5e8023c

714f62e25062367e1a3358085863e532

124e8a4aaacd47a79cc3bb2655052647

f9eebedf2f61b10072369c56f30e828a

c32ed83d47f9c2d514ac7b939fbb163f

书库初始化的演示中还准备了一个 metadata.db 文件;配套文件地址是:https://xiaoxu.lanzoub.com/iYSDi2ae3xud 。这里要注意,Calibre-Web 需要的是能够识别的 Calibre 书库数据库,而不是任意零字节文件改个名字。若选中数据库后无法保存或读取书籍,应先检查文件是否存在、是否是有效数据库,以及 /books 的读写权限。

f78928a6511ccb3af52e8e45503fe718

通过终端远程进入飞牛 OS,使用 sudo -i 切换到管理员用户,在确认宿主机路径存在后执行 Docker 命令:

docker run -d --name=calibre-web -e PUID=1000 -e PGID=1000 -e TZ=Asia/Shanghai -p 8083:8083 -v /vol1/1000/docker/calibre/config:/config -v /vol1/1000/docker/books:/books --restart unless-stopped lscr.io/linuxserver/calibre-web:latest

38914c720ab014dc29e1b6f1b1cecdaa

这条命令使用镜像 lscr.io/linuxserver/calibre-web:latest,容器名为 calibre-web,端口映射是 8083:8083。PUID=1000 和 PGID=1000 关系到容器写入文件时的权限,TZ=Asia/Shanghai 设置时区;两个挂载分别是 /vol1/1000/docker/calibre/config:/config 和 /vol1/1000/docker/books:/books。因此,文件管理器里建目录时要核对完整路径:命令中的配置目录比书籍目录多了一级 calibre,不要只看见同名 config 就以为已经对应上。

三、先登录,再把数据库指向 /books

容器启动后,在浏览器访问 http://IP:8083,其中 IP 换成飞牛 OS 的局域网地址。登录页使用的示例初始账号为 admin,密码为 admin123。如果登录后反复跳回登录页,可以先尝试强制刷新或清理浏览器缓存;但在后面开放公网之前,应该先改掉默认密码。

bfb03585602891d623ed8d4bd65aaeb7

241e8a897db17d8adef1124872cda7a6

b40bb454915e3caa0b1288f8a092d8dc

登录成功后,还不能把空页面当成已经有了图书馆。Calibre-Web 接下来需要知道书库数据库在哪里:打开数据库路径选择器,按页面操作返回上层目录,再进入 books,选择 metadata.db,点击 select 并保存。目录结构与数据库文件要一起核对,这一步决定应用能否读取后续上传与管理的书籍信息。

15a361c6db8b26f270c3058c94212215

93436a0e66b6c4a704773b03224c6bd7

4c207eab89114908852852ade96e3516

eb46d8147fca1095f162df639313cdd1

四、切换中文、开放上传,并用一本 PDF 验证

数据库连接好以后,先在用户设置里切换中文显示,再进入管理权限和基本设置,勾选上传权限并保存。这个权限开关很关键:找不到“上传书籍”按钮时,不一定是容器或端口出错,也可能只是没有开放对应功能。

ba6b6d850138ac85d34106eda7c1b6aa

2ac1cf8d070e5ceabe3e284e0671294a

e57dacfed4e06fd5a43a3fb58b06d53e

635040d4c509795557f53e646fa33c51

6356f2b5c2d4fc777c91eb71b840e15a

5a1c7e27d0845263f1b59876b43d66da

随后选取一份 PDF 上传,补充书名等基本信息,再保存并返回书库查看。这比只展示登录页更能证明整条链路:/books 可以使用、数据库能够记录书籍、页面也能把上传结果展示出来。这里演示的是 PDF 上传,不把其他格式的转换效果或阅读进度同步写成已经完成的测试。

c51dca24fe0a8dda63defe4ed0bd5c79

4ac0c991ff1464238681309fa05e568e

6f6d3637cd91c8ef597efdd007336e88

a4ed0ecce9a46a5a287f4481a40cd9d4

511d6d9e391bbafb99eb2b72a41b0abf

5f4dd052629beae55990037fb1cc7d73

五、书库在内网能打开以后,再安装 cpolar

书已经能从飞牛 OS 的 8083 页面找到,下一步才考虑人在外面怎样进入。cpolar 的职责只是把现有 Web 服务提供到公网;书籍文件、数据库和 Calibre-Web 容器仍在 NAS 上,不会因为有了公网地址就变成托管在外部的书库。

先在飞牛 OS 设置中开启 SSH,使用设备局域网 IP 远程连接。按 Linux 安装方式执行:

09e2f65ca7688ad8d6791293491c8175

afe8e53fc04d11c1a147129d43332429

sudo curl https://get.cpolar.sh | sh

安装后检查 cpolar 服务状态:

sudo systemctl status cpolar

2ada61864d693faaac167c396ef8ad75

服务正常时,通过飞牛 OS 的局域网 IP 加 9200 进入 cpolar 管理界面,用已经注册的账号登录。这里需要区分两个端口:9200 是隧道管理页面,真正需要被外部访问的书库仍是 8083。

image-20250909154147424

六、先用随机域名验证公网访问

进入 隧道管理 → 创建隧道,名称填写 cw,协议选 HTTP,本地地址填 8083,域名类型选随机域名,地区选 China Top。创建后到在线隧道列表复制生成的地址,再用另一台不在同一局域网内的设备打开,确认看到的是 Calibre-Web 页面。

image-20250909154312974

image-20250909154400243

image-20250909154450325

这一层验证的是“外部浏览器 → cpolar → NAS 的 8083 → Calibre-Web”,不是重新部署一套书库。如果公网地址能打开,但书籍打不开,还应回到数据库、目录挂载及应用权限这一层继续排查。

七、为经常使用的书库保留固定入口

随机地址适合先试通网络;需要长期从手机、平板或其他地方进入时,固定二级子域名更方便收藏。进入 cpolar 的预留页面,选择保留二级子域名,地区为 china top,示例名称为 cw1,按提示填写备注并保留。名称有唯一性,最终以自己账号实际保留成功的结果为准。

image-20250909154604672

image-20250909154650708

再回到 隧道管理 → 隧道列表,找到前面名为 cw 的隧道,点击编辑,把域名类型改为二级子域名,在 Sub Domain 中填写预留成功的名称,地区选择 China Top,点击更新。到在线隧道列表查看新的固定地址,并从外部浏览器再次访问确认。

image-20250909154728614

image-20250909154759134

image-20250909154846697

固定的是访问入口,而不是容器永不停止或 NAS 永不断网。也不要忘记,公开地址会扩大书库的可访问范围;除了更改初始密码,还应根据家庭使用范围管理账号、上传权限和藏书分享范围。电子书的上传、下载与分享也应遵守相应内容的使用授权。

总结

以前面对一整盘电子书,我最花时间的是寻找和辨认文件;现在有了 Calibre-Web,能把查书、浏览书目信息和上传新书集中到一个页面。飞牛 OS 负责承载容器和书库,/config 保存应用配置,/books 对应藏书与书库数据库,这三个位置弄清楚以后,比只追求一个漂亮首页更便于长期维护。

从本地的 8083 到 cpolar 随机地址,再到固定二级子域名 cw1,远程访问只是最后一环。真正值得留意的还是数据库是否有效、目录是否准确、上传权限是否打开,以及默认账号是否已经更换。把这些基础环节确认好,这座私人图书馆才不只是能访问,也能继续往里添书、整理和使用。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/qq_51601665/article/details/166785369

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--