一,calibre-web环境搭建
如果你家里有一台群晖或者可以安装docker的服务器,不妨跟我一起从零开始搭建一个电子书图书馆,这个图书馆使用了开源项目calibre-web,这个项目是基于calibre这个单机版图书馆做出来的,这也是为什么下面需要在相应目录下存放一个calibre的数据库文件的原因。
calibre-web的功能很强大主要有以下几大功能点:
1、无缝集成calibre单机版图书馆,只要将calibre的数据库文件和相应的图书复制进calibre-web指定目录,calibre的所有书籍就可以通过web端管理阅读推送了。
2、支持上传下载图书、建立编辑书架功能(上传的时候可从互联网获取完善书籍信息并保存)
3、在线阅读pdf、epub等格式,支持的电子书格式众多。
3、支持电子书格式在线转换,如pdf—>epub等等
4、支持图书推送到自己的kindle设备
5、支持在线注册用户,用户权限管理(如管理员可指定用户是否拥有上传、阅读、下载等权限)
下面就开始一步步来搭建calibre-web:
打开群晖docker
在docker注册表中搜索calibre,出现很多镜像,星星最多的是linuxserver/calibre-web,为什么这个镜像星星最多,因为这个开发团队一直在维护更新,目前的版本已经非常完善了,所以选择这个镜像没有错,在下载之前我们需要了解这个镜像,点击这个镜像右上角的箭头去docker-hub看这个镜像的使用方法,群晖的镜像启动配置都要去看官方的说明文档而不要去参照网上博客的参数生搬硬套,一旦版本变了官方文档会变化,博客几乎不会更新。

来到镜像的说明网址:
https://registry.hub.docker.com/r/linuxserver/calibre-web/ 翻到参数一栏

这里我们可以看到需要配置的完整内容,-p 代表端口映射是8083,-e代表环境变量配置 ,PUID\PGID是处理权限的,DOCKER_MODS是电子书转换功能需要配置的,OAUTHLIB_RELAX_TOKEN_SCOPE是谷歌登录所需的(当然如果要实现这个肯定要去google申请应用),-v表示目录挂载 需要挂载两个目录分别是/config /books
当我们分析了官方文档后就知道下载完成后启动容器需要配置哪些内容了,这个无论是群晖内的docker还是其他系统的docker,查看官网说明文档是最直接的,切记不要盲目去看别人博客中写的。

前面我们看到要挂载两个目录,我们在群晖docker目录中建一个文件夹linuxserver-cabibre-books,这个文件夹名称根据自己喜好来定,在文件夹里边建立books,config文件夹,文件名也是根据喜欢来写,没必要和我写的一样。

下完镜像后我们点击启动

勾选使用高权限执行容器

在存储空间中添加要挂载的两个文件夹,装载路径是根据官网文档的固定写法,不可变,左侧的文件夹是刚自己建立的两个文件夹。

容器端口8083是官方文档要求的不可变,本地端口只要是没占用的,可以自己定,这边填9000,这个是一会访问需要用到的。
把官网要求加的环境变量全部加上,因为我们要使用全功能的容器,需要添加以下四个环境变量,如上图
GUID $(id -u) 这个写法是指用户的uid是当前用户,也就是哪个用户启动了这个容器,这个容器就使用哪个用户的权限,这个直接关系到挂载的文件夹是否可以读写,很重要。
PGID $(id -g) 这是指定当前用户组的id,保持这个写法即可
OAUTHLIB_RELAX_TOKEN_SCOPE 1 开启谷歌auth
DOCKER_MODS linuxserver/calibre-web:calibre 开启电子书格式转换的能力
补充:官方文档写的GUID\PGID 都填1000 这边不能按照官方的来,因为你不知道你系统的用户id是多少,如果要填写具体数据,就要开启ssh 在群晖中执行 id 用户名 来查看具体的GUID PGID,这里使用$(id -u) $(id -g)是一劳永逸的写法,实际上在读到这边的时候就是执行命令获取相应的id。

检查下各项参数有没有问题

链接: https://pan.baidu.com/s/13Y-DSQGvezoQiNyLXZW6tg 提取码: cjmt
–来自百度网盘超级会员v5的分享 如下图

补充:为什么要这个数据库文件,因为calibre-web是基于calibre的,它并不负责图书库的创建,所以需要有一个数据仓库,metadata.db就是这个数据仓库,john schember是这个数据仓库中的一本指南书。如果你不使用我的这个空库文件,你也可以去电脑本地安装一个calibre软件,官方下载地址:https://calibre-ebook.com/download,下载安装会让你指定一个数据库存放目录,安装完成后就会自动生成这个数据库文件和第一本一本指南书,去这个目录下拿文件即可。
将文件拖动到群晖linuxserver-calibre-books/books目录中,这一步是calibre-web需要有一个数据库文件,没有后面会报错,做完以后可以登录,根据上面一步步下来,后面的配置会相当顺滑,所有的坑都不复存在了。
输入群晖nas ip:9000 上面配置的端口号访问网站即可登录,登录用户默认是admin, 密码admin123
搭建完毕需要对calibre-web进行详细的配置
二,calibre-web配置
在calibre-web搭建完毕之后,我们要使用它的所有功能,我们要进行详细的配置。
下面我们的配置要解决以下问题:
1、需要添加数据库路径
2、默认没有开启上传功能,需要打开
3、默认admin没有在线阅读功能,需要打开
4、默认没有电子书格式转换功能,需要配置
5、默认没有开放注册功能,需要打开
6、默认语言是英文,需要切换中文
首先,登录admin账号


添加数据库路径为/books 默认写法,不可改变

点击右上角有人头像的admin,在language中将语言切换成中文并保存。

进入–>管理权限–>编辑基本配置–>启动上传打勾, 启动注册,使用邮箱或用户名打勾
备注:注册功能需要配置发送邮箱!

进入–>管理用户–>勾选允许查看书籍

进入–>基本配置–>扩展程序配置
calibre电子书转换器路径设置为/usr/bin/ebook-convert kepubify电子书转换器路径设置为/usr/bin/kepubify.
这两个其实就是calibre-web的两个插件,一个功能强大到什么格式都能互转,另一个是将epub转为kepub,kepub应该是带有认证信息的电子书格式,如果要深入了解电子书格式可以网上搜索一下。
这个配置是官方给的固定写法,所以不做解释,有兴趣的请翻阅官方文档
https://registry.hub.docker.com/r/linuxserver/calibre-web/

配置完成后,左上角出现上传书籍图标,我们测试上传pdf书籍
上传完成

点击编辑元数据测试转换格式功能

从pfd转为epub

上面转换完毕测试从epub转为kepub

转换的任务进度可以通过右上角的任务列表查看
基本配置已完成,开放注册的邮箱配置会和kindle推送功能整合
三,calibre-web配置kindle电子书推送
配置kindle推送主要分为以下步骤:
1、登录kindle设备,查看账号的接收邮箱,如下图是我的kindle4中的邮箱地址

记录最下方的邮箱地址,转到calibre-web管理界面完善admin用户的信息

填入测试用接收的邮件地址,用来测试邮件服务器发送是否配置正确
填入kindle接收地址,就是刚刚在设备上查到的地址
下面进入邮件服务器编辑,我这边有电信号码,默认开通的189的邮箱,如果你也有电信号码,也可以参照我的配置,如果你用其他邮箱,就去邮箱官网查找下面的配置项,下面是常用邮箱的配置:
- 163 邮箱:主机名 smtp.163.com 端口 465 或 587(加密类型:SSL)
- 126 邮箱:主机名 smtp.126.com 端口 465 或 587(加密类型:SSL)
- yeah 邮箱:主机名 smtp.yeah.net 端口 465 或 587(加密类型:SSL)
- 新浪邮箱:主机名 smtp.sina.com 端口 端口 465(加密类型:SSL)
- Gmail 邮箱:主机名 smtp.gmail.com 端口 587(加密类型:TLS)
- Hotmail/Live/Outlook邮箱:主机名 smtp-mail.outlook.com 端口 587(加密类型:TLS)
- QQ 邮箱:主机名 smtp.qq.com 端口 465(加密类型:SSL)

填完以后保存设置并发送测试邮件,验证邮箱服务器可以发送,在你配置的测试接收邮箱中查看是否收到邮件,如果收到,证明配置邮箱服务器已经完成,这个时候前面的用户注册功能就可以使用了,用户点击注册填写邮箱后,系统会通过你这个邮箱服务器给用户发送一封密码邮件,用户收到邮件就可以登录到你的calibre-web图书管了。


任务列表可以查看测试邮箱发送失败与否。
登录亚马逊:登录地址

输入你亚马逊账号密码

点击管理我的内容和设备

在下面已认可的发件人电子邮件列表中添加上你的邮件服务器发件地址。

下面可以选一本书进行发送了,发送后查看任务列表的进度,注意亚马逊电子书最大只接收50m的文件,除了亚马逊限制,你还要看你选择的邮件服务器发送邮件限制。

最后在你的kindle设备查看推送过来的书籍。
有可能你的发送邮箱会收到来自亚马逊的验证消息,这是因为你没有将发件地址添加到受信任的邮箱列表,按上面的方式添加即可,如果添加了还是要验证才能发送,就多试几次。

原文地址:https://www.lategege.com/?p=639