介绍
Caliber是一个免费和开源的电子书经理。 虽然Calibre可能更适合其桌面客户端,但它也可以作为一个强大的服务器,允许您从世界上任何地方访问您的电子书(或与朋友分享您的收藏)。将您的电子书保存在服务器上非常好,因为您不需要依赖于随时阅读的阅读设备。如果你去旅行,你不需要担心带你的电子书收藏与你! 服务器包括一个简单而优雅的浏览器前端,允许您从图书馆搜索和下载图书。它还内置了适合移动设备的网站,因此可以轻松地将书籍直接下载到电子阅读器,甚至只有最基本的网络功能。 例如,Calibre的浏览器支持Kindle Touch,即使设备只有电子墨水显示屏和实验性浏览器,Kindle Touch也可以直接下载图书。 在本教程中,我们将讨论如何在Ubuntu 14.04服务器上安装,设置和使用Calibre。 我们还将看看如何使用
calibredb
命令来创建,定制,并从服务器右侧维护你的电子书数据库。
在本教程中,我们将介绍:
- 安装机芯
- 创建电子书库或导入现有库
- 使Calibre服务器成为后台服务
- 自动将新书添加到库中
在本教程结束时,您将有一个小的初始库,您可以轻松地添加新书!
先决条件
请确保您具有以下先决条件:
本教程中的示例显示了运行全新安装的Ubuntu 14.04的Droplet,但它们应该很容易适应其他操作系统。
第1步 - 安装口径
Calibre可从APT软件存储库获得,但是根据其创建者的建议,最好从其网站上提供的二进制文件进行安装。口径更新非常频繁,并且版本在repos中往往滞后。 幸运的是,Calibre的创作者已经做到这一点很简单。只需在服务器上运行以下Python命令即可。运行命令之前,请仔细检查
官方口径网站的情况下,命令已被更改。 安装Calibre(确保滚动以获取整个命令):
sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"
您会注意到有关失败的桌面集成的一些警告,但这些都是安全地忽略,因为您正在远程服务器上安装Calibre。
第2步 - 安装依赖关系
该口径命令行工具
calibredb
用于对你的Calibre库的各种操作,比如添加或进口书籍,获取元数据,并涵盖书籍。 我们稍后会看看如何使用这些命令,但现在我们只安装两个依赖项。首先是ImageMagick的,没有它
calibredb
将无法运行; 第二是
xvfb
,我们将使用它来运行
calibredb
在虚拟X显示服务器-为了回避引起的非显示环境中运行口径的问题。 要安装这些命令只需运行以下命令。 更新您的包列表:
sudo apt-get update
安装
xvfb
:
sudo apt-get install xvfb
安装ImageMagick:
sudo apt-get install imagemagick
第3步 - 创建库
现在我们几乎准备好开始运行服务器了。然而,我们需要得到一些书服务。 你可能已经有自己的电子书库,所以我们将看看这两种方法。
- 直接添加电子书文件;我们将从Gutenberg项目中找一对夫妇
- 导入现有的Calibre库;如果您已经运行桌面版Calibre,则非常有用
得到书
首先让我们为我们的Calibre库制作一个目录。此示例在用户的主目录中创建目录,但可以将其放在服务器上的任何位置。运行以下命令:
mkdir ~/calibre-library
mkdir ~/calibre-library/toadd
我们创建两个目录:第一,
~/calibre-library
是一个口径会自动组织起来,而我们手动添加书籍到
toadd
子目录。稍后,我们将了解如何自动化此过程。 我们将如何抓住从一些书籍古登堡计划 。 在本教程中,我们将简·奥斯汀和
圣诞颂歌狄更斯下载
傲慢与偏见 。 切换到
toadd
目录上手。
cd ~/calibre-library/toadd
下载这两本电子书:
wget http://www.gutenberg.org/ebooks/1342.kindle.noimages -O pride.mobi
wget http://www.gutenberg.org/ebooks/46.kindle.noimages -O christmascarol.mobi
口径有点依赖于文件扩展名正确添加图书,所以
-O
旗
wget
命令指定一个更友好的文件名。 如果你下载了古腾堡一个不同的格式(如
.epub
),那么您需要相应地更改文件扩展名。
将书籍添加到Caliber的数据库
现在,我们需要使用到这些书籍添加到数据库的Calibre
calibredb
通过命令
xvfb
前面安装的虚拟显示。为此,请运行:
xvfb-run calibredb add ~/calibre-library/toadd/* --library-path ~/calibre-library
星号意味着口径将增加中发现的所有书籍
toadd
目录库,在
calibre-library
目录。 您可能会看到一个错误约没有找到一个盖(我们选择下载
.mobi
文件没有图像),但你也应该看到,书籍被添加到数据库的Calibre确认。 样品输出:
Failed to read MOBI cover
Backing up metadata
Added book ids: 1, 2
Notifying calibre of the change
这就是我们需要开始看到的第一个结果。让我们测试服务器。跑:
calibre-server --with-library ~/calibre-library
该命令不会产生任何输出,但只是似乎挂在您的终端。这是很好的;我们稍后将会正确地对其进行守护进程。现在打开Web浏览器并导航到:
http:// your_server_ip :8080
替换
your_server_ip
与Droplet的IP地址。您应该看到您的图书馆的主页,看起来类似于下面的屏幕截图。
如果您单击
所有图书链接,你应该看到我们先前添加的两本书。 您可以
获取按钮或者点击下面的书下载。
上传现有的Calibre Library
如果您已经运行桌面版Calibre并且已经设置了库,您可以轻松地将其导入到服务器。 仔细检查您的当前库文件夹中一个名为
metadata.db
。如果这个文件存在,那么一切都应该工作,没有任何额外的配置。 将整个库文件夹上传到您的服务器。 然后,运行以下命令:
calibre-server --with-library /path/to/calibre-library
这将将现有库全部添加到服务器。您可以通过将书文件中的它在服务器上添加更多的书
toadd
目录,如本教程解释。
第4步 - 使口径成为后台服务
我们真的不希望保持一个外壳,开
calibre-server
命令在其中运行,只是为了保持服务器运行。 虽然我们可以在添加
--daemonize
旗指挥,有更好的方法来做到这一点。 下面我们来看看它是多么容易使
calibre-server
到一个服务,以便它会自动启动系统重启等,我们可以非常轻松地启动,停止或重新启动进程。 直到最近,实现这一目标的方式就是写复杂的脚本,并把它们放在
/etc/init.d/
目录中。 目前推荐的方法是使用一个更简单
的Upstart脚本,它是一个
.conf
放在文件
/etc/init/
目录下。我们将看看如何做到这一点: 如果服务器仍在运行,命中
CTRL + C
在终端停止它。 现在创建一个新的配置文件:
sudo nano /etc/init/calibre-server.conf
创建脚本Upstart,请务必更换标记为
红色的变量:
description "Calibre (ebook manager) content server"
start on runlevel [2345]
stop on runlevel [^2345]
respawn
env USER='myusername'
env PASSWORD='mypassword'
env LIBRARY_PATH='/home/user/calibre-library'
env MAX_COVER='300x400'
env PORT='80'
script
exec /usr/bin/calibre-server --with-library $LIBRARY_PATH --auto-reload \
--max-cover $MAX_COVER --port $PORT \
--username $USER --password $PASSWORD
end script
将其粘贴到文本编辑器中并保存。 (CTRL + X,然后Y,然后ENTER)。我们将看看下面的每一行:
- 第一行只是一个描述,以帮助你(或其他人)知道脚本的作用
- 接下来的两行状态表示您希望脚本启动和停止的级别,因为Upstart允许订单指定,使依赖的脚本以正确的顺序启动。级别1适用于所有基本服务,所以我们将从级别2开始,我们知道网络和我们需要的任何东西都将启动并运行
respawn
意味着,如果服务意外停止,它会尝试重新启动
下一行是我们传递给所有变量
calibre-server
命令。 之前,我们只是用最小指定的
--with-library
选择,但我们可以看到的Calibre现在多少灵活性提供。上面,我们指定:
- 从网络访问库的用户名和密码(请从提供的示例更改这些)
- 库位置路径,如前所述
- 图书封面图片的最大图片大小(这对于加快网页加载速度非常有用)
- 端口号(在这里我们把它改为
80
,将它更改为别的东西,如果你已经使用端口80来服务标准的网页等)
- 最后,在
script
部分(称为节 )我们需要运行的主要命令exec
,并通过我们的所有变量。 将/usr/bin/calibre-server
部分是可执行文件路径
保存脚本并关闭编辑器后,启动服务器:
sudo start calibre-server
这次你应该看到这个输出,但使用不同的进程号:
calibre-server start/running, process 7811
现在使用浏览器导航到您的服务器的IP地址或域名。 您应该看到一个弹出窗体,要求输入用户名和密码。这些应该是您添加到Upstart脚本的。输入这些内容,您就会像以前一样进入您的电子书库。 现在可以使用以下命令轻松地停止,启动和重新启动服务器:
sudo service calibre-server stop
sudo service calibre-server start
sudo service calibre-server restart
这使得管理服务器比手动处理守护进程和进程ID更容易! 该网站默认情况下有一个移动版本,可以很好地与较小屏幕的设备,如手机和电子阅读器。如果您从移动设备访问该网站,则应自动加载。
第5步 - 创建Cron作业以自动添加图书
我们可以写一个简单的cron作业来观看我们的
toadd
目录新书。 每隔10分钟,将查找在文件中
/home/ user /calibre-library/toadd/
目录中,有添加任何文件到我们的数据库机芯,然后删除原始文件。 (Calibre将文件的副本添加到我们的库,所以我们不需要原件,一旦添加生效)。这意味着如果你通过scp,ssh等文件传输到这个目录从你的主要机器,或者只是下载它们直接进入
toadd
目录,然后他们会自动被添加到您的Calibre数据库和从资料库中下载可用! 要创建cron作业,请执行:
crontab -e
您可能需要对首选文本编辑器进行选择。 在文件末尾添加行:
*/10 * * * * xvfb-run calibredb add /home/user/calibre-library/toadd/ -r --with-library /home/user/calibre-library && rm /home/user/calibre-server/toadd/*
该命令(第一部分
*/10 * * * *
)指该命令应该每隔十分钟运行。 第二部分与我们之前手动运行的命令相同。 它增加了从所有书籍
toadd
文件夹到数据库中,然后删除原始文件。 就是这样。您现在可以从世界上任何地方访问您的电子书。
注:口径搜索结果不按相关性排序,因此,如果你输入一个常用词,你经常会发现你要寻找的人之前不相关的书籍。但是,您可以指定仅通过标题或作者进行搜索,这有很大帮助,浏览选项(例如,按作者的字母顺序浏览)也很好地实现。
结论
关于运行和维护Calibre服务器,需要记住一两点。我们将简要地看看这些,以完成。
版权
如果你只是托管来自古腾堡的书籍或类似的网站(即,版权的书籍),那么很少说。只要确保你遵循Gutenberg服务条款。特别是,如果你给访问您的藏书给其他人,请务必阅读古腾堡的TOS的有关部分的再分配 。 如果您托管商业购买的图书,请记住,他们可能会有DRM(数字版权管理),因此只能从您注册的设备读取。 不用说,你不应该在你的电子书服务器上托管盗版或非法图书。
更新
Calibre频繁推送更新。虽然大多数是错误修复和功能更新,一些可能是与安全。因此,建议您跟上
更新 。 如果发布了重要更新,则应手动更新服务器软件。 (再次,APT回购往往滞后,因此不建议依靠它们进行更新)。
安全
即使您不发布您的Droplet的IP地址,它也可能由脚本扫描打开的端口。因为Calibre登录功能不允许在多次不正确的尝试后自动锁定,所以存在强力攻击的可能性。为了减少这种情况,强烈建议您:
- 不要使用常用的用户名,如管理 , 口径 ,或电子书
- 不要使用通用或简短的密码,绝对不要使用您的用户名作为密码
- 考虑在非标准端口而不是端口80上运行Calibre
这使我们的教程结束。我们希望您喜欢从任何位置或设备访问您的电子书!