经测试,pdf支持在线阅读,也就是网页打开,而且也可以记住阅读进度,doc文档不可以在线阅读,只有下载功能,其他暂未测试。
!!!请注意,阅读进度是保存在浏览器缓存的,也就是说换一个浏览器或者换一个设备,就无法同步了。目前几个比较多人用的类似的电子书架,几乎都基于Calibre改的,因此几乎都不支持跨设备同步阅读进度,若要同步,一般是基于WebDev实现。
一.Calibre-Web是什么
Calibre-Web 是 Calibre 的 Web 实现,支持网页管理书籍、下载书籍、在线阅读等功能,Calibre是一个电子书书管理工具。简单说,Calibre-Web是一个网页版电子书架。
二.Calibre-Web如何用Docker搭建
1. 测试环境
系统:Centos 7
架构:x86_64
Docker版本:26.1.4(当前最新版本)
使用VMWare测试。
2. 搭建步骤
2.1 前置步骤
要求Docker已经安装好。
2.2 搭建Calibre-Web
2.2.1 创建目录
Calibre-Web需要创建两个目录用于Docker映射。我创建的:
mkdir /data/calibre-web/configmkdir /data/calibre-web/books
其中,config用于存放Calibre-Web的配置文件,books用于存放书籍。这里的目录路径和目录名是可以随意的,但是建议使用有意义的命名,用于后面做映射用。
2.2.2 Docker拉取镜像
Calibre-Web项目存在GitHub上,在国内不太好拉取。它有三四个版本的Docker镜像,其中有一个已经停止维护很久了,但是使用的人还是不少的。这几个版本略有差异,但不会太大,我这里用的是johngong版本的一个国内可用镜像。
Docker镜像地址:
https://docker.aityp.com/image/docker.io/johngong/calibre-web:0.6.22-7.9.0
Docker镜像拉取:
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/johngong/calibre-web:0.6.22-7.9.0docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/johngong/calibre-web:0.6.22-7.9.0 docker.io/johngong/calibre-web:0.6.22-7.9.0
2.2.3 启动Docker镜像
执行以下命令即可,注意替换参数
docker run -d \--name=calibre-web \-e PUID=1000 \-e PGID=1000 \-e TZ=Asia/Shanghai \-p 8083:8083 \-v /data/calibre-web/books:/library \-v /data/calibre-web/config:/config \-e DOCKER_MODS=linuxserver/calibre-web:calibre \-e CALIBRE_SERVER_WEB_LANGUAGE=zh_CN \--restart unless-stopped \johngong/calibre-web:0.6.22-7.9.0
参数含义如下:
-d: 后台运行容器。--name=calibre-web: 指定容器的名称,可以按喜好更改。-e PUID=1000: 指定运行 Calibre-Web 的用户 ID,可以不用更改。-e PGID=1000: 指定运行 Calibre-Web 的用户组 ID,可以不用更改。-e TZ=Asia/Shanghai: 设置容器的时区。-p 8083:8083: 将容器的 8083 端口映射到主机的 8083 端口,不建议更改,除非主机端口被占用。-v /data/carlibre-web/books:/library: 将本地电子书库目录挂载到容器内的 /books 目录,冒号前的路径就是在第一步时创建的books的目录,记得改为你自己的目录,后面上传到Calibre-Web的书籍会被保存到这里。很多别的文章这里会写:-v /data/calibre-web/books:/books,这样子虽然看起来更统一,但是在这个镜像下,我测试了下,如果这么写,会因为镜像自身的配置导致出问题(后面说明),建议把容器内的目录直接映射到library,这是镜像自身的目录。-v /data/calibre-web/config:/config: 将本地配置目录挂载到容器内的 /config 目录,冒号前的路径就是第一步创建的config目录,启动Calibre-Web的容器后,配置信息会保存到这里,注意改为你自己的目录。--restart unless-stopped: 容器在退出时自动重启。johngong/calibre-web:0.6.22-7.9.0: 这里是第二步下下来的镜像名称和Tag,Tag可以通过命令:docker images
查看,执行这个命令,输出的信息中有Tag一列,记得要加Tag,不然会Docker会去拉最新版本,网络不好就拉不下来了。 至此,Calibre-Web部署完毕。
2.2.4 使用Calibre-Web
打开浏览器,访问:ip:8083即可,初始账密:admin/admin123。如果前面操作都一样,一般这里是没有问题的。只是需要进行一些必要设置。
设置书籍信息数据库位置
开启上传图书功能
设置完成后,刷新一下,右上角就有“上传书籍”按钮了,这个功能默认是没有开启的。
3. 其他问题
Q:界面不是中文?
A:如果用的是同一个镜像的话,一般就是中文了。不然尝试下看看启动Docker时设置的时区不是上海会不会影响。在Calibre-Web内部暂时未找到关于语言的设置。
Q:提示需要上传metadata.db?
A:这个文件是Calibre用于存储书籍信息的数据库文件。如果操作步骤都跟前面的说明一样的话,一般是不会有这个问题的。如果问题还存在,可以重装试试,还是不行的话可以百度一下解决办法,这个问题很多人都有,解决方法其实也很简单,就是下载Calibre的客户端,拿出它的metadata.db,上传到你部署的服务器上的主机的books目录下就行了。
Q:上传图书就出现500报错,看日志出现:permission denial?
A:这个就是前面说的,在Docker映射的时候,没有映射到容器内部的library上。建议是按照前面的步骤来。如果非要映射到容器内的其他目录,需要进入容器中,在里面将metadata.db移动或者复制到其他目录。但我不知道这会不会出现别的问题,不建议这么做。