Caliber是一个免费的开源电子书管理器。它与服务器组件一起作为跨平台的桌面应用程序提供,可用于管理您的电子书库。在本教程中,您将学习如何在基于Ubuntu 20.04的服务器上安装和使用Calibre的电子书服务器。
将Calibre设置为服务器可让您从世界任何地方访问您的图书,并与亲朋好友共享。您也可以将它们传输到移动设备上,以备日后阅读。Calibre服务器还允许您直接在网络上阅读电子书。
先决条件
基于Ubuntu 20.04的服务器,具有具有sudo特权的用户。
保持服务器更新。
$ sudo apt update && sudo apt upgrade
配置防火墙
默认情况下,Ubuntu 20.04带有(UFW)。如果不是,请先安装。
sudo apt install ufw
启用SSH端口。
sudo ufw allow "OpenSSH"
启用防火墙。
sudo ufw enable
启用Calibre服务器使用的端口8080。
sudo ufw allow 8080
检查防火墙状态。
$ sudo ufw statusStatus: activeTo Action From-- ------ ----OpenSSH ALLOW Anywhere8080 ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)8080 (v6) ALLOW Anywhere (v6)
下载并安装Calibre服务器
Ubuntu 20.04确实具有Calibre,但最好直接从其站点安装,而不是获取最新版本。
首先,您需要安装一些依赖项。
sudo apt install libfontconfig libgl1-mesa-glx
下载Calibre服务器安装程序。
wget https://download.calibre-ebook.com/linux-installer.sh
将安装程序脚本设置为可执行文件。
chmod +x ./linux-installer.sh
运行安装程序。
sudo ./linux-installer.sh
您会收到一些警告,因为安装程序需要的是台式机系统,而不是无头服务器。忽略它们是安全的。
创建图书馆并添加您的第一本书
对于我们的教程,我们将以古腾堡计划为例下载一本书。古腾堡计划(Project Gutenberg)是免费的公共领域书籍的庞大存储库。
运行以下命令以下载您的第一本书。本着最近的万圣节节日的精神,让我们下载亨利·詹姆斯(Henry James)的恐怖故事“The turn of the screw”。
wget http://www.gutenberg.org/ebooks/209.kindle.noimages -O turnofthescrew.mobi
为Calibre库创建一个目录。
mkdir calibre-library
使用以下calibredb
命令将刚刚下载的书添加到Calibre库中。
calibredb add *.mobi --with-library calibre-library/
输出:
Added book ids: 1
现在该开始Calibre了。
运行Calibre服务器
运行以下命令以启动Calibre内容服务器。
calibre-server calibre-library
calibre-server
是用于启动服务器的命令,calibre-library
是我们刚刚创建的目录的名称,服务器将使用该目录来加载接口。
您应该会看到类似的输出。
calibre server listening on 0.0.0.0:8080OPDS feeds advertised via BonJour at: your_server_ip port: 8080
http://<yourserverip>:8080
在浏览器中启动URL ,您将看到默认的Calibre屏幕。
点击calibre-library
,您将看到The turn of the screw
刚刚下载的书。
您可以通过在命令行上按Ctrl + C来停止服务器。
Calibre服务器默认使用端口8080。您可以通过在启动过程中修改命令来更改它。
calibre-server calibre-library --port 7530
然后,您可以通过http://<yourserverip>:7530
在浏览器中启动URL进行检查。
您还需要允许端口通过防火墙。
sudo ufw allow 7530
为Calibre服务器创建服务
您可能希望即使服务器重新启动后,机芯也可以永远运行。为此,您将需要为Calibre创建服务,该服务将在启动时自动启动。
创建一个文件/etc/systemd/system/calibre-server.service
并打开它以使用Nano编辑器进行编辑。
sudo nano /etc/systemd/system/calibre-server.service
粘贴以下代码。
## startup service[Unit]Description=calibre content serverAfter=network.target[Service]Type=simpleUser=<username>Group=<username>ExecStart=/opt/calibre/calibre-server /home/<username>/calibre-library --enable-local-write[Install]WantedBy=multi-user.target
用<username>
您的Ubuntu服务器上的实际系统用户替换。
通过按Ctrl + W并在出现提示时输入Y来保存并关闭文件。
启用并启动Calibre服务,该命令是开机启动。
sudo systemctl enable calibre-server
该命令是启动calibre-server
sudo systemctl start calibre-server
您可以通过重新启动服务进行检查。
sudo reboot
等待几分钟,然后http://<yourserverip>:8080
在浏览器中打开以确保机芯正常工作。
将用户身份验证添加到Calibre服务器
现在,任何知道您的服务器IP的人都可以访问Calibre服务器。我们可以通过向服务器添加用户身份验证来更改它。
首先,停止Calibre服务器。
sudo systemctl stop calibre-server
启动Calibre的用户管理脚本。您可以指定存储用户数据库的路径。它以SQLite数据库的形式存储。
$ sudo calibre-server --userdb /home/<username>/.config/calibre/server-users.sqlite --manage-users1) Add a new user2) Edit an existing user3) Remove a user4) CancelWhat do you want to do? [1-4]: 1Enter the username: howtoforgeEnter the new password for howtoforge:Re-enter the new password for howtoforge, to verify:User howtoforge added successfully!
输入1创建一个新用户并选择一个强密码。
接下来,我们需要编辑我们之前设置的Calibre服务。
打开服务文件。
sudo nano /etc/systemd/system/calibre-server.service
将--enable-auth
标志添加到行的末尾,ExecStart
以启用用户身份验证。
. . .ExecStart=/opt/calibre/calibre-server "/home/<username>/calibre-library" --userdb "/home/<username>/.config/calibre/server-users.sqlite" --enable-local-write --enable-auth. . .
通过按Ctrl + W并在出现提示时输入Y来保存并关闭文件。
刷新服务守护程序以重新加载修改后的服务文件并再次启动该服务。
sudo systemctl daemon-reloadsudo systemctl start calibre-server
下次启动该站点时,将要求您输入用户名和密码,然后再访问该库。
自动将图书添加到您的图书馆
我们可以设置一个可以由Calibre服务器跟踪的监视文件夹,因此,每当您将新书添加到该文件夹时,它将自动添加到Calibre库中。
创建一个监视文件夹并切换到该文件夹。
mkdir ~/watchbooks
cd ~/watchbooks
使用以下命令将新书下载到该文件夹中。
wget http://www.gutenberg.org/ebooks/514.epub.noimages -o littlewomen.epub
接下来,打开Crontab编辑器。
crontab -e
在末尾添加以下行。
*/5 * * * * calibredb add /home/<username>/watchbooks/ -r --with-library http://localhost:8080#calibre-library --username calibreuser --password YourPassword && rm -r /home/<username>/watchbooks/*
该脚本会将目录/home/<username>/watchbooks
中的所有文件添加到Calibre库,并删除所有原始文件,因为不再需要它们。
Cron作业将每5分钟运行一次。等待几分钟,然后重新加载Calibre服务器站点,以查看刚添加的书出现在库中。
安装Nginx
在此步骤中,我们将安装Nginx Web服务器,以通过代理为Calibre服务器提供服务。这样,您可以通过域名访问它calibre.yourdomain.com
。您也无需担心指定任何端口号。使用Nginx作为代理可以使我们通过SSL为网站提供服务。
运行以下命令以安装Nginx。
sudo apt install nginx
打开端口80和443,然后关闭端口8080,因为不再需要它。
sudo ufw allow "Nginx Full" sudo ufw delete allow 8080
Nginx Full
是ufw防火墙的应用程序配置文件,它将自动打开端口80和443。
$ sudo ufw statusStatus: activeTo Action From-- ------ ----OpenSSH ALLOW AnywhereNginx Full ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)Nginx Full ALLOW Anywhere (v6)
安装SSL
我们将使用“加密”服务安装SSL。
为此,请安装Certbot。
sudo apt install certbot
停止Nginx,因为它会干扰Certbot进程。
sudo systemctl stop nginx
生成证书。我们还需要创建一个DHParams证书。
$ export LDOMAIN="calibre.yourdomain.com"$ export LEMAIL="[email protected]"$ sudo certbot certonly --standalone -d $LDOMAIN --preferred-challenges http --agree-tos -n -m $LEMAIL --keep-until-expiring $ sudo systemctl start nginx$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
我们还需要设置一个cron作业以自动更新SSL。要打开crontab编辑器,请运行以下命令
sudo crontab -e
上面的命令将打开Crontab编辑器。
将以下行粘贴到底部。
25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”
上面的cron作业每天凌晨2:25运行certbot。您可以将其更改为所需的任何内容。
通过按Ctrl + X并在出现提示时输入Y来保存文件。
配置Nginx以使用SSL通过代理提供Calibre
我们需要编辑Nginx配置文件以添加SSL配置。
运行以下命令以添加Caliber服务器的配置文件。
sudo nano /etc/nginx/sites-available/calibre.conf
将以下代码粘贴到编辑器中。
server { listen 80; listen [::]:80; server_name calibre.yourdomain.com; # enforce https return 301 https://$server_name:443$request_uri;}server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name calibre.yourdomain.com; location / { proxy_pass http://127.0.0.1:8080; } # Use Mozilla's guidelines for SSL/TLS settings # https://mozilla.github.io/server-side-tls/ssl-config-generator/ ssl_certificate /etc/letsencrypt/live/calibre.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/calibre.yourdomain.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions ssl_session_tickets off; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_dhparam /etc/ssl/certs/dhparam.pem;}
按Ctrl + X关闭编辑器,并在提示保存文件时按Y。
通过将其链接到sites-enabled
目录来激活该配置文件。
sudo ln -s /etc/nginx/sites-available/calibre.conf /etc/nginx/sites-enabled/
测试Nginx配置。
sudo nginx -t
您应该看到以下输出,表明您的配置正确。
nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载Nginx服务。
sudo systemctl reload nginx
您现在可以通过URL启动网站https://calibre.yourdomain.com
。
结论
在本教程中,您学习了如何安装和运行Caliber ebook服务器,以及如何通过Nginx以及用户身份验证以及自动添加书籍的功能来运行它。如有任何疑问,请在下面的评论中发布。
评论前必须登录!
注册