2021-02-06
使用 calibre-webserver 一段时间后,发现它更新不太活跃,而另一个项目 Calibre-web 更新活跃,于是考虑迁移到后者。因为两个项目都是对 Calibre 进行套壳,底层数据库是一样的,理论上是可行的。在本文中通过实践探索,成功实现迁移。
社区里有很多 Calibre-web 镜像:
linuxserver/calibre-web
technosoft2000/calibre-web
这里选择 calibre-web,依据是 star 更多、更新更频繁。
calibre-web 项目首页。
这个项目的突出特色:
这里想到一个更加稳妥的方案:
之后 ssh 登陆到 NAS 上,创建对应目录:
// 主目录
/srv/dev-disk-by-uuid-a451ce1f-eaad-4831-844f-00d2d611536c/hd1_bk/calibre-web-data
// config
/srv/dev-disk-by-uuid-a451ce1f-eaad-4831-844f-00d2d611536c/hd1_bk/calibre-web-data/config
// books
/srv/dev-disk-by-uuid-a451ce1f-eaad-4831-844f-00d2d611536c/hd1_bk/calibre-web-data/books
执行 Docker 命令:
docker run -d \
--name=calibre-web \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 8083:8083 \
-v /srv/dev-disk-by-uuid-a451ce1f-eaad-4831-844f-00d2d611536c/hd1_bk/calibre-web-data/config:/config \
-v /srv/dev-disk-by-uuid-a451ce1f-eaad-4831-844f-00d2d611536c/hd1_bk/calibre-web-data/books:/books \
--restart unless-stopped \
ghcr.io/linuxserver/calibre-web
这个镜像托管在 ghcr.io 上,拉取速度非常慢。
书库配置,设置地址为 /books。
此时会报错【数据库路径无效,请输入正确的路径】,原因是我们挂载的 books 目录是一个空目录,找不到 metadata.db。
解决方法是把 calibre-webserver 的书库复制过去。
calibre-webserver 的书库位于 library 下,复制到 calibre-web 的 books 目录下。
之后再配置,说数据库不可写入:
调整一下 meatadata 权限即可。
下一步登录,默认用户为 admin 密码为 admin123。
登录进去之后,能看到电子书加载正常。
体验了一番 calibre-web 后,我发现它的功能确实要比 calibre-webserver,并且维护更加积极,这也表明未来会有更加丰富的功能被引入,不得不说这波折腾非常值了。