群晖搭建Calibre电子图书馆填坑记录
自从将NAS升级到DS220+以来,比较着迷群晖的docker。虽然电子书库对我来说用处不是很大,但也忍不住折腾了一番。最后导入藏书的时候才发现,原来像收破烂一样,收了很多书,真正读的不过1,2成。最近看过一些整理笔记或者知识管理的博文,里面提到知识应当不断整理,才能转化为自己的知识。这些收藏在角落里的应当果断地断舍离。这是题外话了。
本文主要还是记录一些折腾心得,希望可以帮到需要的人,节省一些时间和精力。网络上其实有很多已经实践了的文章,可作参考:
- skylake架构DIY NAS 篇二:打造属于自己的私人云书库_NAS存储_什么值得买
- 拍娃党之文件管理:NAS篇二]Calibre-web电子书库解决方案 - 简书
Calibre是一个电子书管理软件,请看“calibre - 电子书管理”。然后,有热心网友,将其web化,提供了基于Bootstrap框架的web客户端,即“janeczku/calibre-web”。再然后,docker镜像也就应运而生,于是群晖结合docker又具备了新的可玩性。Calibre-web的docker镜像主要有两个:
- technosoft2000/calibre-web - Docker Image | Docker Hub
- linuxserver/calibre-web - Docker Image | Docker Hub
在群晖的docker中都可以安装,两款docker的主要区别在于后者不包含电子书格式转换模块,而前者则是包含了转换模块。可以将电子书转换成不同格式,例如:PDF,EPUB,AZW3,MOBI等等。
我最终选择了technosoft2000/calibre-web,倒不是因为电子书转换功能。而是因为linuxserver/calibre-web过于精简。该docker中vi工具都没有,也缺少calibredb工具。对于我这种需要批量导入已有图书的就不太友好了。后文有针对批量导入的一些个人的经验分享。
后续章节罗列一些我遇到的问题和解决的方法。
数据库
第一次打开Calibre界面时,需要选择数据库地址。一开始选择的linuxserver/calibre-web镜像,怎么都没法进入主界面。参考Calibre-web部署后一些细节问题答疑 - 知乎
1. 其他文章提到部署时需要metadata.db文件,不然在进入网页配置时会无法进行下一步。
答:technosoft2000/calibre-web这个镜像倒是会自动去创建metadata.db文件,不需要像其他镜像那样需要用户先用PC版calibre来创建metadata.db然后复制进群晖相关文件夹。但更容易遇到另一个问题,我在问题2里说。
2. 最初运行technosoft2000/calibre-web镜像数分钟后,calibre-web会自动停止运行。并且在日志里查看会提示缺少“`***.py`”文件。
答:虽然technosoft2000/calibre-web会自动下载运行所需的文件,但因为它本身服务器和国内连接不畅的原因,很容易出现下载失败的情况,然后就会有类似提示。需要等待其他时间段尝试让其自动下载文件,或者改善网络。
我是使用technosoft2000/calibre-web镜像,直接可以生成metadata.db,并直接进入界面。如果是用linuxserver/calibre-web镜像可能要动点其他的小心思。比如用PC端Calibre生成好metadta.db文件,再拷过来。为了省事儿,可以直接上technosoft2000/calibre-web,各种定制性还是令人省心不少。
支持豆瓣
豆瓣已经在2020年8月无情地关闭了书籍元数据下载功能(俗称刮削)。网上搜到的大多是无效的解答,例如:“calibre-web 获取元数据 豆瓣API失效解决办法_瑞哥的博客-CSDN博客_calibre 元数据”。
最新(2021年9月)亲测可用的办法是使用这个docker镜像服务:fugary/simple-boot-douban-api: Simple douban book api。具体方法也很简单,在群晖上下载好docker,并启动,然后再修改代码,重启Calibre-web docker镜像即可:
vi /calibre-web/app/cps/static/js/get_meta.js
# 找到 var douban = "https://api.douban.com"; 替换成自己的NAS_IP地址
var douban = "http://NAS_IP:8085";
成功示例:
另外值得一提的是,calibre-web集成的Google books搜索,在客户端(非NAS端)科学上网的情况下,就可以获取数据。针对日常刮削场景多一个选择总归是好的。
批量导入
可以参考这一篇“威联通折腾篇十九:Calibre-web | Verne in GitHub”。其实就是会用这个命令就可以了:
calibredb add --library-path=/books -r /path/to/your/book_dir_you_want_to_add
calibredb还有很多其他功能,看帮助文档就好了,简单易学:
Usage: calibredb command [options] [arguments]
calibredb is the command line interface to the calibre books database.
command is one of:
list
add
remove
add_format
remove_format
show_metadata
set_metadata
SSL setting
如果需要通过https访问calibre-web网页,建议通过群晖反向代理设置。只要配置好证书,就可以访问。不要轻易碰下面的配置。
如果一定需要,请参考[SSL setting · Issue #98 · Technosoft2000/docker-calibre-web · GitHub]。
我就是误配置,导致页面显示ERR_EMPTY_RESPONSE。最后需要将书库中的这几个文件删除,才能打开网页。
app.db
gdrive.db
具体原因不详。
总结
建议选择technosoft2000/calibre-web镜像
建议使用fugary/simple-boot-douban-api取代豆瓣API刮削
megumin
校验提示文案
聖徒
校验提示文案
sliorary
校验提示文案
Salmon52
校验提示文案
彣彣
谢谢!
校验提示文案
massworld
校验提示文案
starsky
校验提示文案
drwyd
当然管理最方便的不是命令行,而是pc端的calibre。
nas建个book目录,docker数据库指向这个目录,然后pc用smb或者nfs挂载这个目录,pc端的calibre数据库目录也指向这个目录,后面只要pc端批量加书,批量刮削,每次重启下docker就能显示新增书籍了
校验提示文案
微型信息加工厂
校验提示文案
奔跑的小肥狮子
校验提示文案
马鹿6112
校验提示文案
joker95275
校验提示文案
牛伊斯特
校验提示文案
sanmaoscookie
校验提示文案
旅途不见星光
校验提示文案
star123456
校验提示文案
johnkath
另外ios上有啥能加载calibre-web上文件的阅读软件吗
校验提示文案
大法今天倒闭了嘛
校验提示文案
蓝天碧海小渔村
校验提示文案
成风
校验提示文案
哈哈小声笑
校验提示文案
值友6974849658
校验提示文案
挚友一心
新版calibre-web已经移除douban-api了,而且把从get_meta.js中直接发起请求获取数据改成了从服务端使用python获取数据。
此项目是添加一个豆瓣api provider实现,需要放到metadata_provider目录下
校验提示文案
值友7793011647
后来又安装了个technosoft2000版本的 calibre,那个35M的epub电子书可以正常转换mobi格式并成功发至kindle ,但非 mobi 格式的书籍不显示封面。两个版本的calibre都遇到些问题。不知你们有此问题吗?有解决的办法吗?
校验提示文案
漫天风雪
校验提示文案
值友1917850131
校验提示文案
成风
校验提示文案
蓝天碧海小渔村
校验提示文案
大法今天倒闭了嘛
校验提示文案
starsky
校验提示文案
johnkath
另外ios上有啥能加载calibre-web上文件的阅读软件吗
校验提示文案
star123456
校验提示文案
massworld
校验提示文案
彣彣
谢谢!
校验提示文案
旅途不见星光
校验提示文案
微型信息加工厂
校验提示文案
奔跑的小肥狮子
校验提示文案
drwyd
当然管理最方便的不是命令行,而是pc端的calibre。
nas建个book目录,docker数据库指向这个目录,然后pc用smb或者nfs挂载这个目录,pc端的calibre数据库目录也指向这个目录,后面只要pc端批量加书,批量刮削,每次重启下docker就能显示新增书籍了
校验提示文案
sanmaoscookie
校验提示文案
牛伊斯特
校验提示文案