前言
calibre 是一款功能强大且易于使用的电子书管理器,而calibre-web是calibre的web服务,可以提供网页管理书籍、下载书籍、在线阅读等功能。关于calibre的功能,详细可以参考它的官网。https://calibre-ebook.com/zh_CN
1、部署环境及下载
环境
相信大多数人是用NAS部署,通过内网穿透实现线上管理、下载、阅读功能。而本文是部署在linux服务器上(别问,问就是没钱买NAS)
下载
可以去github找,直接把项目git clone下来,推荐2个git项目都可以选择。
https://github.com/janeczku/calibre-web
https://github.com/linuxserver/docker-calibre-web
或者去docker hub搜索calibre-web,通过docker pull下来。
docker hub上也有很多别人二开的docker镜像,功能也蛮不错的。
本文选择了
git clone https://github.com/linuxserver/docker-calibre-web
2、安装
2.1 编写docker-compose.yml文件
通过docker-compose拉起镜像,在项目根目录新建docker-compose.yml,然后编写以下内容:
---
version: "2.1"
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
- DOCKER_MODS=linuxserver/mods:universal-calibre #optional
- OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
volumes:
- ./config:/config
- ./books:/books
- ./imports:/imports
ports:
- 8083:8083
restart: unless-stopped
上面写的都是基本参数,关于calibre-web镜像的一些额外参数,可以参考自己下载的镜像说明。
参数都比较简单,这里重点讲一下PUID
和PGID
linux系统输入,
id yourusename
就可以查看当前账号的PUID
和PGID
。这个参数一定不能错,不然拉起镜像后会出现权限问题,无法写入书库。
2.2 拉起docker镜像
输入
sudo docker-compose up -d
即可拉起镜像。
然后通过查询
sudo docker ps -a
可以查看拉起的镜像状态。
首次拉起,calibre-web需要下载一些包,会比较耗时,大概是国内访问外网速度慢的问题?或者是我的服务器配置太拉了?
我的calibre-web服务在compose up之后,大概是花了2个小时才能成功访问,曾经多次一度以为是自己拉错了。。
如果性子急的朋友,可以通过打开目录/var/lib/docker/containers
找到自己的镜像,查看log文件观察进度。
2.3 访问calibre-web
docker拉起后,等calibre-web初始化结束,就可以通过访问 http://公网ip:8083 ,初始账号是admin,初始密码是admin123。如果访问不了的朋友,检查一下自己的8083端口有没有打开。
3、安装过程出现的问题
3.1 DB Location is not Valid, Please Enter Correct Path
如果出现这个问题,说明安装目录下缺少了metadata.db
文件。
那么你需要上传metadata.db
文件到/books
目录下才能解决。/books
目录就是docker-compose.yml
里面/books
的设置的路径。
这个文件去哪里找?
1、通过下载calibre的PC端安装包,安装在windows系统后,通过书库目录找到metadata.db
,再通过xshell上传到自己服务器的/books
目录下。
2、github上面有人提了issue,issue下面直接下载别人的metadata.db
文件
https://github.com/janeczku/calibre-web/issues/1695
3、通过docker容器重新生成
# 进入容器内
docker exec -it calibre-web bash
# 执行命令生成metadata.db文件
calibredb restore_database --really-do-it --with-library /ebooks/
# 添加写权限
chmod 666 /ebooks/metadata.db
不管是哪种方式上传的metadata.db
,都需要设置权限666或777。
3.2 attempt to write a readonly database
这是上传书籍时候有可能报的错,原因就是权限问题。请重新检查PUID
和PGID
是否正确。实在搞不明白这2个参数的朋友,如果你有root权限,那么你的root的PUID
和PGID
都是0,用root拉起即可。
4、一些简单的设置
- 语言设置:点击右上角的admin账号,在账号设置里找到language,选择中文,保存并刷新页面即可。
- 上传书籍设置:点击右上角“管理权限”,找到“配置”->“编辑基本配置”,找到“功能配置”,勾选“启用上传”。
总结
calibre-web是一个优秀的开源项目,管理书籍非常便利,通过docker部署也非常方便。另外,个人感觉还是部署到NAS上会比较好,毕竟服务器的硬盘容量有限。