Calibre-Web Docker部署

清遥丷 2024-10-20 12:03:01 阅读 80

     经测试,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/config

mkdir /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.0

docker 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移动或者复制到其他目录。但我不知道这会不会出现别的问题,不建议这么做。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。