Calibre-web 个人图书库搭建记 1

因为自己本地版本Calibre软件中有很多的图书文档,大部分是基于 Kindle 的 .mobi、.epub 格式。突发奇想要去找一下图书馆相关的开源代码,再次验证自己想过的事情都有人已经实现或正在实践了。善于寻找总会找到你想要的经验和经历供你学习参考。通过关键词 epub web的关键词在github上找到一个基于 calibre 的开源web 图书馆系统,需要在linux环境下安装和运行,基于python 执行环境,但 pythoh 环境要求2.7以上,我的虚拟主机上安装的 python 是2.6版本,无法启动和安装。

所以需要先升级服务器环境,升级以后安装完成后其他服务器环境配置还是不能运行,一下午就折腾着熟悉升级 linux 服务器环境的事情。最终也没有完成服务器环境的部署和安装。

但也学到了一点点 linux 的环境知识,感觉自己逐渐的要发展到熟悉 linux 操作的和配置的运维身份上来了。但也要发挥磨刀不误砍柴功的优势,先从一点基础知识的了解开始,现在边搜索边熟悉的模式自我感觉非常浪费时间,摸索入门的难度很高。基础能力和基本概念的了解需要跟上。

第二天完成 Calibre-web 的 web 书库建设,一核处理器,512M内存,10G硬盘,勉强能跑起来,基于 centos7 、python 2.7.5、Nginx、Calibre-web….. 折腾了很久发现了很多系统、程序、版本的坑。

Calibre-web 移动版本的体验还不是很好,api 接口这些还需要摸索探究。

接下来探索扩容服务器存储空间的方案,现在看 10G 空间只能放大约 1500 本书籍。要想把接近 30G 的书同步上去需要扩容一个大存储的硬盘。

另外这个程序可以对接 google diver 程序,可以考虑使用 google diver 来当做存储盘使用,当然在中国 google diver 是无法使用的,国外对于版权的问题也只能个人使用不可以公开传播。

晚上又研究了一下成千上百的大文件如何上传到服务器端,找到从 sae 了解到的文件管理软件小黄鸭 Cyberduck 软件,可以连接各种云储存的服务器、ftp 、sftp 还支持双向同步功能,感觉可以实现服务器与本地数据库同步功能,测试以后发现同步效果很好。

测试一下同步 800 本书的效果。原本打算尝试一下 1300 本书的效果,但是发现服务器的磁盘设置 10GB 有些小,这个服务器没有办法动态扩容,只能删了重装,明天再重新规划一下如何安排存储空间和服务器大小。晚上作为测试先同步800本试验一下。

整理并记录了详细的搭建个服务步骤放到了 Github 的 wiki 中(https://github.com/a1023456/calibre-web/wiki),有时间再新建服务器扩大存储空间,然后测试自己记录的服务器部署是不是正确。自己在分配 10G 空间的时候还想到要不要看看存储空间是否够用,但转念一想自己的亚马逊存储空间只有5G也可以放开500多本书,应该同步书库没问题,现在看来自己的担忧还是很有道理的。现在最后再折腾一遍的还是自己功夫。

把好不容易导进去的图书再删掉,等存储空间大了以后再来一遍吧。数据越来越大也正好测试一下现在的程序和服务器配置能承载多少图书数据库内容。

一边一遍的测试和调整、重装,也是浪费了大量的个人时间,还要好好实践一次把事情做好的能力。

这是 Calibre-web 个人图书库搭建记 的第一篇,后续还会继续发布新的折腾记录,欢迎关注。

“Calibre-web 个人图书库搭建记 1”的3个回复

  1. 我在使用calibre web建了一个书库,遇到不少问题,在网上搜到你的文章,向你请教:
    1、正确安装了kindlegen,但在关于界面查看,kindlegen模块始终是未被许可的状态
    2、今天用calibre web更新一本书的元数据时,发生了如下情况
    Internal Server Error
    The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
    再次运行CPS.py,出现以下信息
    /calibre-web-master# python cps.py
    [2018-06-04 18:41:21,441] INFO in web: Starting Calibre Web…
    [2018-06-04 18:41:22,266] INFO in cps: Falling back to Tornado
    Traceback (most recent call last):
    File “cps.py”, line 41, in
    http_server.listen(web.ub.config.config_port)
    File “/opt/tmp/calibre-web-master/vendor/tornado/tcpserver.py”, line 144, in listen
    sockets = bind_sockets(port, address=address)
    File “/opt/tmp/calibre-web-master/vendor/tornado/netutil.py”, line 163, in bind_sockets
    sock.bind(sockaddr)
    File “/usr/lib/python2.7/socket.py”, line 228, in meth
    socket.error: [Errno 98] Address in use
    请教你,这些问题你遇到过吗,怎么解决,望不吝赐教,深谢

    1. kindlegen 解压后放到固定目录然后重启应该就能检测到了。

      我没使用过web程序更新元数据,都是本地calibre更新元数据。这个错误没有遇到过

发表评论

电子邮件地址不会被公开。 必填项已用*标注