如何在 Ubuntu 20.04 上安装 Calibre 电子书服务器如何在 Ubuntu 20.04 上安装 Calibre 电子书服务器如何在 Ubuntu 20.04 上安装 Calibre 电子书服务器如何在 Ubuntu 20.04 上安装 Calibre 电子书服务器
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Ubuntu 20.04 上安装 Calibre 电子书服务器

发表 admin at 2025年2月28日
类别
  • 未分类
标签

本教程适用于这些操作系统版本

  • Ubuntu 22.04(Jammy Jellyfish)
  • Ubuntu 20.04(Focal Fossa)

在此页

  1. 先决条件
  2. 配置防火墙
  3. 下载并安装 calibre 服务器
  4. 创建图书馆并添加您的第一本书
  5. 运行 calibre 服务器
  6. 为 calibre 服务器创建服务
  7. 将用户身份验证添加到 calibre 服务器
  8. 自动将书籍添加到您的图书馆
  9. 安装 Nginx
  10. 安装 SSL
  11. 配置 Nginx 以使用 SSL 通过代理服务 Calibre
  12. 结论

Calibre 是一个免费的开源电子书管理器。它作为跨平台桌面应用程序与服务器组件一起发布,可用于管理您的电子书库。

将 calibre 设置为服务器可以让您从世界任何地方访问您的书籍,并可以与朋友和家人分享它们。您也可以将它们传输到您的移动设备以供日后阅读。 Calibre 服务器还允许您直接在网络上阅读电子书。

在本教程中,您将了解如何在基于 Ubuntu 20.04 的服务器上安装和使用 calibre 电子书服务器。

先决条件

  1. An Ubuntu 20.04 based server with a user with sudo privileges.

  2. Keep the server updated.

    $ 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 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 下载一本书作为示例。古腾堡计划是一个庞大的免费公共领域书籍库。

运行以下命令下载您的第一本书。本着最近万圣节的精神,让我们下载亨利·詹姆斯的恐怖故事“螺丝的转动”。

$ 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-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

在浏览器中启动 URL http://:8080,您将看到默认的口径屏幕。

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

您可以通过在命令行中按 Ctrl+C 来停止服务器。

Calibre 服务器默认使用端口 8080。您可以通过在启动期间修改命令来更改它。

$ calibre-server calibre-library --port 7530

然后,您可以通过在浏览器中启动 URL http://:7530 来进行检查。

您还需要通过防火墙允许该端口。

$ sudo ufw allow 7530

为 calibre 服务器创建服务

您可能希望 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
$ sudo systemctl start calibre-server

您可以通过重新启动服务来检查。

$ sudo reboot

等待几分钟,然后在浏览器中打开 http://:8080 以确保 calibre 正常工作。

向 calibre 服务器添加用户身份验证

现在,任何知道您的服务器 IP 的人都可以访问 calibre 服务器。我们可以通过向服务器添加用户身份验证来更改它。

首先,停止 calibre 服务器。

$ sudo systemctl stop calibre-server

启动 calibres 用户管理脚本。您可以指定存储用户数据库的路径。它以 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 创建一个新用户并选择一个强密码。

接下来,我们需要编辑之前设置的口径服务。

打开服务文件。

$ 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

下次启动该站点时,系统会要求您输入用户名和密码才能访问图书馆。

自动将书籍添加到您的图书馆

我们可以设置一个可以被 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//watchbooks 中的所有文件添加到 calibre 库中,并删除所有原始文件,因为它们不再需要。

cron 作业将每 5 分钟运行一次。等待几分钟并重新加载 calibre 服务器站点,以查看您刚刚添加的图书出现在图书馆中。

安装 Nginx

在此步骤中,我们将安装 Nginx 网络服务器以通过代理为 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

我们将使用 Let's Encrypt 服务安装 SSL。

为此,安装 Certbot。

$ sudo apt install certbot

停止 Nginx,因为它会干扰 Certbot 进程。

$ sudo systemctl stop nginx

生成证书。我们还需要创建一个 DHParams 证书。

$ export LDOMAIN="calibre.yourdomain.com"
$ export LEMAIL=""
$ 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 配置。

运行以下命令为 Calibre 服务器添加配置文件。

$ 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 启动站点。

结论

在本教程中,您学习了如何安装和运行 Calibre 电子书服务器,以及如何在 Nginx 上运行它以及用户身份验证和自动添加书籍的能力。如果您有任何问题,请在下面的评论中发表。

©2015-2025 Norria support@alaica.com