群晖 nas 搭建个人图书馆一(calibre-web 环境搭建)
功能简介
平时喜欢搜集网络上的精品电子书,那么管理成为了一个问题,放在硬盘的一堆电子书文件,想看也不知道看哪本,正好安装了黑群晖,了解到 Calibre web 这样的一个开源项目,于是就完成了这样的项目搭建。功能包括:
- 管理自己的电子书,可管理海量书籍,包括书籍的分类、作者、简介等
- 可在线观看、书籍格式转换、推送到Kindle等
- 可选:通过frp,反向代理等内外穿透工具实现任意地方访问
Calibre Web 安装步骤
前提:安装好了群晖并安装了 Docker(需要 CPU 支持)
本文采用群晖 DSM7.1 部署,其他版本操作类似。
对应的 Docker Hub 地址:linuxserver/calibre-web - Docker Hub
linuxserver/calibre-web 的镜像详细功能如下
- 无缝集成calibre单机版图书馆,只要将calibre的数据库文件和相应的图书复制进calibre-web指定目录,calibre的所有书籍就可以通过web端管理阅读推送了。
- 支持上传下载图书、建立编辑书架功能(上传的时候可从互联网获取完善书籍信息并保存)
- 在线阅读pdf、epub等格式,支持的电子书格式众多。
- 支持电子书格式在线转换,如pdf—>epub等等
- 支持图书推送到自己的kindle设备
等待下载完成后,在映像中,双击下载好的映像,则可以创建容器。
calibre-2022-11-28-21.39.50
calibre_2022-11-28_22-39-58
这里我们可以看到需要配置的完整内容,-p 代表端口映射是 8083,-e 代表环境变量配置 ,PUIDPGID 是处理权限的,DOCKER_MODS 是电子书转换功能需要配置的,OAUTHLIB_RELAX_TOKEN_SCOPE 是谷歌登录所需的 (当然如果要实现这个肯定要去 google 申请应用),-v 表示目录挂载 需要挂载两个目录分别是 /config /books
当我们分析了官方文档后就知道下载完成后启动容器需要配置哪些内容了,这个无论是群晖内的 docker 还是其他系统的 docker,查看官网说明文档是最直接的,切记不要盲目去看别人博客中写的。
首先打开 File Station,创建一个用于存放电子书的文件夹,我是直接建立了一个 books
共享文件夹,然后再建立了一个 calibre
文件夹用于存放电子书(推荐),建好之后,回到 Docker 中来。
- 首先找到刚才下载的映像,双击 Docker 的映像。
calibre-2022-11-28-21.40.47
- 然后选择网络,选中 bridge 网络即可,然后点击下一步。
calibre_2022-11-28_21-41-50
- 设置名称为
calibre-web
,可根据喜好设置,勾选 启用自动重新启动 然后点击下一步。(可根据需要设置,若不勾选,则重启群晖则不自动运行此容器。)
calibre_2022-11-28_21-43-10
- 然后点击
端口映射
,设置一个本地端口,不冲突即可,如我的为9000,那么之后访问即:http://IP:9000,对应代码中的:-p <HTTP PORT>:8083
。不推荐使用默认的自动
,这样每次重启会改变端口,造成访问地址的改变。
calibre_2022-11-28_21-45-48
- 点击
卷
,添加文件夹,选择刚刚创建用于存放电子书的文件夹,转载路径为/books
。
calibre_2022-11-28_21-46-48
- 点击应用即可,然后启动该容器。此时就安装完成了。
这里打开群晖 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 设备或 APP 或登录亚马逊账号都可以查看,以 @kindle.cn
结尾的邮箱。
第一步,到 Calibre web 中,填写 Kindle 邮箱;
Kindle邮箱
第二步,配置邮件发送服务器;
配置邮件服务器
这里推荐使用 163 邮箱,主机名为 smtp.163.com
,配置如下:
邮箱配置
登录 163 邮箱,开启 smtp 服务,然后生成一个授权码:
开启smtp
授权码生成
然后将授权码填入到 SMTP 密码一栏。
第三步,将配置的发送邮件服务器添加到 Kindle 已认可邮箱列表
在设置中,首选项 —— 个人文档设置 —— 已认可的发件人电子邮箱列表,添加该邮箱即可。
添加认可的电子邮件
全部完成后,即可一键发送电子书到 Kindle 设备了。
批量上传电子书
那么如果有大量电子书该如何上传呢?思路还是一样,直接用电脑挂载群晖的文件夹,使用 Calibre 打开该书库,然后就可以批量上传、管理了。
总结
总之,搭建过程还是较为麻烦,涉及的方面较多,需要了解相关的基础知识,但是此篇教程我写的较为详细,相信只要耐心都能搭建成功,毕竟我使用这个有一段时间了,有的需要注意的地方我都写出来了,Docker 映像也选择好了,注意文件夹的权限是一个大坑,搭建不成功很大方面是这个原因。
另外内外穿透方面,这涉及的更多了,提供这一种思路,有能力自行折腾了。
欢迎留言交流。