0%

群晖Docker部署Calibre Web打造全功能书库

功能简介

平时喜欢搜集网络上的精品电子书,那么管理成为了一个问题,放在硬盘的一堆电子书文件,想看也不知道看哪本,正好之前安装的黑群晖,了解到Calibre web这样的一个开源项目,于是就完成了这样的项目搭建。功能包括:

  1. 管理自己的电子书,可管理海量书籍,包括书籍的分类、作者、简介等
  2. 可在线观看、书籍格式转换、推送到Kindle等
  3. 可选:通过frp等内外穿透工具实现任意地方访问

Calibre Web 安装步骤

前提:安装好了群晖并安装了Docker(需要CPU支持)

首先打开群晖管理界面的Docker,在注册表里搜索calibre-web,选择第二个Docker映像双击下载。

推荐使用

对应的Docker Hub地址:technosoft2000/calibre-web - Docker Hub

PS:试过很多的Calibre web镜像,这个镜像是功能最强大的,包括电子书格式转换和在线阅读,而linuxserver/calibre-web 只能没有在线阅读和转换的功能。

technosoft2000的镜像详细功能如下
  • Bootstrap 3 HTML5界面
  • 完整的图形设置
  • 用户管理
  • 管理界面
  • 用户界面为英语,法语,德语,波兰语,简体中文,西班牙语
  • 电子书阅读器应用程序的OPDS提要
  • 按标题,作者,标签,系列和语言过滤和搜索
  • 创建自定义书籍收藏(书架)
  • 支持编辑电子书元数据
  • 支持将电子书从EPUB转换为Kindle格式(mobi / azw)
  • 将电子书下载限制为登录用户
  • 支持公共用户注册
  • 只需单击一个按钮即可将电子书发送到Kindle设备
  • 支持直接在浏览器中阅读电子书(.txt,.epub,.pdf)
  • 上载PDF,epub,fb2格式的新书
  • 支持口径自定义列
  • 细粒度的每用户权限
  • 自我更新能力

等待下载完成后,在映像中,双击下载好的映像,则可以创建容器。

创建Calibre web容器

官方推荐的启动代码为:

1
2
3
4
docker create --name=calibre-web --restart=always \
-v <your Calibre books folder>:/books \
-p <HTTP PORT>:8083 \
technosoft2000/calibre-web

因此我们设置一个文件夹映射和端口映射即可。首先打开File Station,创建一个用于存放电子书的文件夹,我是直接建立了一个books共享文件夹,然后再建立了一个calibre文件夹用于存放电子书(推荐)。建好之后,回到Docker中来。

设置名称为calibre-web,可根据喜好设置,对应代码中的--name=calibre-web,然后点击高级设置。

设置好名称

勾选启用自动重新启动,对应代码中的--restart=always,可根据需要设置,若不勾选,则重启群晖则不自动运行此容器。

自动启动

点击,添加文件夹,选择刚刚创建用于存放电子书的文件夹,转载路径为/books,对应代码中的-v <your Calibre books folder>:/books

映射文件夹

然后点击端口映射,设置一个本地端口,不冲突即可,如我的为25556,那么之后访问即:http://IP:25556,对应代码中的:`-p :8083。不推荐使用默认的自动`,这样每次重启会改变端口,造成访问地址的改变。

端口映射

点击应用即可,然后启动该容器。

这里打开群晖IP:端口访问,如我的IP为192.168.0.102,可以看到已经可以成功打开。

配置书库

在书库配置中,设置为/books,点击保存。

此时会提示数据库路径无效,请输入正确的路径

报错

由于Calibre-web是基于Calibre这款软件的,书库里会有metadata.db的数据库文件,而我们创建的文件夹是没有任何文件。

因此我们电脑中安装Calibre,然后用电脑挂载群晖,在此位置建立一个空白书库(注意:群晖需要安装WebDAV Server)。

创建书库

创建书库

完成后,就会在该位置生成一个metadata.db的文件。然后重试,提示配置已经更新。

配置

若仍出现问题,则在File Station中设置一下该文件夹的权限,设置为Everyone为读取、写入。

点击登录,用户名:admin 密码:admin123

登录

终于成功

配置

设置中文

默认为英文界面,在admin——language设置即可。

设置中文

开启网页上传,对于少量书籍上传非常实用

在管理权限——编辑基本配置——功能配置中,其它功能也可在此开启。

启用上传

刷新一下页面,在右上角则出现上传书籍。测试上传书籍报错:

1
数据库错误:(sqlite3.OperationalError) attempt to write a readonly database [SQL: INSERT INTO authors (name, sort, link) VALUES (?, ?, ?)] [parameters: (u'\u672a\u77e5', u'\u672a\u77e5', u'')] (Background on this error at: http://sqlalche.me/e/e3q8)。

原因在于无写入权限,将创建的文件夹设置为完全控制(读取、写入应该就可以了),然后重启容器,即可解决此问题。

成功在Web上传:

web上传

上传或编辑书籍时,可点击最下面的获取元数据,即可获得作者、解决、封面图片等各类信息,这是我非常喜欢的一个功能,很强大。获取后保存即可,封面更改有时会迟一点生效。

获取元数据

转换书籍为epub格式从而在线观看

此程序可以在线观看TXT、pdf和epub格式,epub格式是一个通用的电子书格式,因此将其它书籍转换为此格式从而在线阅读。

编辑书籍

转换为epub格式

这样就可以在线阅读了,有目录导航,可以添加书签,全屏阅读等,并且可以记住阅读位置,下一次打开接着阅读(不可跨设备,书签可以跨设备),体验非常棒。

在线阅读

设置Kindle推送

可参考:Kindle 推送教程:教你用电子邮箱推送电子书 – 书伴

Kindle推送稍微复杂点,首先必须有一个亚马逊账号,登录Kindle(Kindle软件或设备都可以)后,会有一个个人文档邮箱,然后在Kindle设备或APP或登录亚马逊账号都可以查看,以@kindle.cn结尾的邮箱。

第一步,到Calibre web中,填写Kindle邮箱;

Kindle邮箱

第二步,配置邮件发送服务器;

配置邮件服务器

这里推荐使用163邮箱,主机名为smtp.163.com,配置如下:

邮箱配置

登录163邮箱,开启smtp服务,然后生成一个授权码:

开启smtp

授权码生成

然后将授权码填入到SMTP密码一栏。

第三步,将配置的发送邮件服务器添加到Kindle已认可邮箱列表

设置中,首选项——个人文档设置——已认可的发件人电子邮箱列表,添加该邮箱即可。

添加认可的电子邮件

全部完成后,即可一键发送电子书到Kindle设备了。

批量上传电子书

那么如果有大量电子书该如何上传呢?思路还是一样,直接用电脑挂载群晖的文件夹,使用Calibre打开该书库,然后就可以批量上传、管理了。

总结

总之,搭建过程还是较为麻烦,涉及的方面较多,需要了解相关的基础知识,但是此篇教程我写的较为详细,相信只要耐心都能搭建成功,毕竟我使用这个有一段时间了,有的需要注意的地方我都写出来了,Docker映像也选择好了,注意文件夹的权限是一个大坑,搭建不成功很大方面是这个原因。

另外内外穿透方面,这涉及的更多了,提供这一种思路,有能力自行折腾了。

欢迎留言交流。