作为一个松鼠党,从高中逛E-INK开始就收集各类电子书,这么多年下来也积攒了一大笔积蓄。下书入流水,看书如抽丝。那么这些书的管理就成了一个问题。最后选了半天还是决定用 calibre 来管理自己的电子书。
calibre 虽然速度有些慢,不过应该是目前为止能找到的最好的电子书管理工具了。和 kindle 的结合也很好。考虑数据的备份,除了在自己的 Mac 上存放了书库以外,还利用 Resilio Sync 把书库存到了群晖上。这样就算是电脑被偷数据也不会丢了。不过 calibre 的数据库有一个缺点,他在电脑上储存文件的目录结构是 /calibre/author/books
而且会把全部的汉字转换成拼音。直接用 Mac 上的 calibre 看的话挺方便的,但是远程用手机访问群晖的话看到的都是类似于拼音文件。找书很不方便。所以就想找一下有没有 calibre 的 web 版本。
搜了一下果然有人已经早好轮子了calibre-web
用 Python 写的一个 Web abb。
官方介绍是这样的:Calibre Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.
直接利用 calibre 的数据库,然后支持下载,上传,在线阅读,数据修改,发送到 kindle。而且手机端和 web 端都支持,真是完美符合我的需求。不过要吐槽一点,这个源码居然不打 tag,程序更新完全是靠 git 拉取来更新。真的是大开眼界。
既然调研好了,那么就开始搭建吧。
其实上面啥都不需要,只需要一台能运行 docker 的设备就可以了。内存大约 100m 不知道树莓派能不能撑得住。Python 的效率真低呀。
首先先是电脑上安装 calibre,然后同步自己的书库到群晖。这一步网上教程太多,就不详细介绍了。
同步完之后,我们的群晖上就有了数据库。例如我的目录是 /Backup/书库 里面有一个数据库文件 metadata.db
数据库有了,就开始安装程序。程序安装很简单,只需要一个 python 环境就可以了。
# 1.下载源码
git clone https://github.com/janeczku/calibre-web/
# 2.利用 pip 安装依赖
pip install --target vendor -r requirements.txt
# 3.运行程序
python cps.py
执行命令以后你就把网站搭好了,访问 http://localhost:8083 就可以看到自己搭建的网站了。
不过妈妈说了,能用 docker 解决的问题都用 docker 解决。
Dockerfile 如下。
FROM python:2.7.13
MAINTAINER FandiYuan <georgeyuan@diamondyuan.com>
RUN git clone https://github.com/janeczku/calibre-web/ && \
cd calibre-web && \
pip install --target vendor -r requirements.txt
EXPOSE 8083
CMD ["python","/calibre-web/cps.py"]
项目的主页有一个镜像了,但是我个人有点没看懂,而且镜像里面是不带项目本身的,在第一次启动镜像的时候会从 git 上面拉取最新的源码,然后重启。其实挺符合这个开源项目的风格的,利用 git 进行版本更新。写得其实比我好。有需要的小伙伴可以自己研究安装。
说了半天废话,那么图文教大家如何安装吧。
首先安装群晖的 docker 点开注册表 双击选择阿里云。
搜索 calibre,找到我写好的的镜像后双击下载。因为在国内,所以挺快的。感谢阿里爸爸。
安装完双击启动容器
如果你需要电子书编辑的功能,那么不要勾选只读。英文我只想浏览和下载,所以选择了只读。
设置完成以后点击确认 应用。你的个人服务器就布置好了。 举个例子 例如我群晖的路由访问页面是 192.168.3.101:6001,那么 192.168.3.101:8083 就可以看到自己部署的网站了。
如果要在外网访问的话,明天再写。
原文来自 https://blog.diamondyuan.com/2017/09/04/build-a-book-site-on-your-nas/ 我的博客。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.