如何在Ubuntu 20.04上安装Calibre Ebook Server


原文地址:如何在Ubuntu 20.04上安装Calibre Ebook Server

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

启用S​​SH端口。

sudo ufw allow "OpenSSH"

启用防火墙。

sudo ufw enable

启用Calibre服务器使用的端口8080。

sudo ufw allow 8080

检查防火墙状态。

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
8080                       ALLOW       Anywhere
OpenSSH (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:8080
OPDS feeds advertised via BonJour at: your_server_ip port: 8080

http://<yourserverip>:8080在浏览器中启动URL ,您将看到默认的Calibre屏幕。

如何在Ubuntu 20.04上安装Calibre Ebook Server

点击calibre-library,您将看到The turn of the screw刚刚下载的书。

如何在Ubuntu 20.04上安装Calibre Ebook Server

您可以通过在命令行上按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 server
After=network.target

[Service]
Type=simple
User=<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-users
1) Add a new user
2) Edit an existing user
3) Remove a user
4) Cancel

What do you want to do? [1-4]: 1
Enter the username: howtoforge
Enter 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-reload
sudo systemctl start calibre-server

下次启动该站点时,将要求您输入用户名和密码,然后再访问该库。

如何在Ubuntu 20.04上安装Calibre Ebook 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 status
Status: active

To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere
Nginx Full  		   ALLOW       Anywhere	
OpenSSH (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@yourdomain.com"
$ 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 ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重新加载Nginx服务。

 sudo systemctl reload nginx

您现在可以通过URL启动网站https://calibre.yourdomain.com

结论

在本教程中,您学习了如何安装和运行Caliber ebook服务器,以及如何通过Nginx以及用户身份验证以及自动添加书籍的功能来运行它。如有任何疑问,请在下面的评论中发布。

评论

登录后评论

服务器优惠活动

Top