GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04にCalibreEbookServerをインストールする方法

Calibreは、無料のオープンソースの電子書籍マネージャーです。サーバーコンポーネントと一緒にクロスプラットフォームのデスクトップアプリケーションとして出荷され、電子書籍ライブラリの管理に使用できます。

calibreをサーバーとして設定すると、世界中のどこからでも本にアクセスでき、友人や家族と共有することができます。後で読むために、それらをモバイルデバイスに転送することもできます。 Calibreサーバーを使用すると、電子書籍をWeb上で直接読むこともできます。

このチュートリアルでは、Ubuntu20.04ベースのサーバーにcalibre電子ブックサーバーをインストールして使用する方法について学習します。

前提条件
  1. sudo権限を持つユーザーがいるUbuntu20.04ベースのサーバー。

  2. サーバーを最新の状態に保ちます。

    $ sudo apt update && sudo apt upgrade
    
ファイアウォールの構成

Ubuntu 20.04には、デフォルトでUncomplicated Firewall(UFW)が付属しています。そうでない場合は、最初にインストールしてください。

$ sudo apt install ufw

SSHポートを有効にします。

$ sudo ufw allow "OpenSSH"

ファイアウォールを有効にします。

$ sudo ufw enable

キャリバーサーバーが使用するポート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)
キャリバーサーバーをダウンロードしてインストールします

Ubuntu 20.04にはcalibreが付属していますが、最新バージョンを入手するのではなく、サイトから直接インストールすることをお勧めします。

まず、いくつかの依存関係をインストールする必要があります。

$ sudo apt install libfontconfig libgl1-mesa-glx

キャリバーサーバーインストーラーをダウンロードします。

$ wget https://download.calibre-ebook.com/linux-installer.sh

インストーラスクリプトを実行可能ファイルとして設定します。

$ chmod +x ./linux-installer.sh

インストーラーを実行します。

$ sudo ./linux-installer.sh

インストーラーはヘッドレスサーバーではなくデスクトップシステムを想定しているため、いくつかの警告が表示されます。それらを無視しても安全です。

ライブラリを作成して最初の本を追加

チュートリアルでは、例としてProjectGutenbergから本をダウンロードします。プロジェクトグーテンベルクは、無料のパブリックドメインの本の大規模なリポジトリです。

次のコマンドを実行して、最初の本をダウンロードします。最近のハロウィーンフェスティバルの精神で、ヘンリージェイムズのホラーストーリー「ねじの回転」をダウンロードしましょう。

$ wget http://www.gutenberg.org/ebooks/209.kindle.noimages -O turnofthescrew.mobi

キャリバーライブラリのディレクトリを作成します。

$ mkdir calibre-library

calibredbを使用して、ダウンロードした本をキャリバーライブラリに追加します コマンド。

$ calibredb add *.mobi --with-library calibre-library/
Added book ids: 1

さあ、キャリバーを始めましょう。

キャリバーサーバーを実行する

次のコマンドを実行して、キャリバーコンテンツサーバーを起動します。

$ 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://<yourserverip>:8080を起動します ブラウザにデフォルトの口径画面が表示されます。

calibre-libraryをクリックします The turn of the screwという本が表示されます。 ダウンロードしたばかりです。

Ctrl + C を押すと、サーバーを停止できます コマンドラインで。

Calibreサーバーはデフォルトでポート8080を使用します。起動時にコマンドを変更することで変更できます。

$ calibre-server calibre-library --port 7530

次に、URL http://<yourserverip>:7530を起動して確認できます。 ブラウザで。

また、ファイアウォールを介したポートを許可する必要があります。

$ sudo ufw allow 7530
口径サーバー用のサービスを作成

サーバーが再起動した後でも、キャリバーを永久に実行したい場合があります。そのためには、起動時に自動的に起動する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と入力します プロンプトが表示されたら。

キャリバーサービスを有効にして開始します。

$ sudo systemctl enable calibre-server
$ sudo systemctl start calibre-server

サービスを再起動して確認できます。

$ sudo reboot

数分待って、http://<yourserverip>:8080を開きます ブラウザで、口径が機能していることを確認します。

ユーザー認証をcalibreサーバーに追加

今のところ、サーバーのIPを知っている人なら誰でも、キャリバーサーバーにアクセスできます。サーバーにユーザー認証を追加することで、これを変更できます。

まず、キャリバーサーバーを停止します。

$ sudo systemctl stop calibre-server

キャリバーのユーザー管理スクリプトを開始します。ユーザーデータベースが保存されるパスを指定できます。 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サーバーで追跡できる監視フォルダーを設定できるため、フォルダーに新しい本を追加するたびに、Caliberライブラリに自動的に追加されます。

ウォッチフォルダを作成して切り替えます。

$ 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内のすべてのファイルを追加します キャリバーライブラリに移動し、元のファイルは不要になったため、すべて削除します。

cronジョブは5分ごとに実行されます。数分待ってから、キャリバーサーバーサイトをリロードして、追加したばかりの本がライブラリに表示されることを確認します。

Nginxをインストール

このステップでは、Nginx Webサーバーをインストールして、プロキシ経由でキャリバーサーバーにサービスを提供します。そうすれば、たとえば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 は、ポート80と443を自動的に開くufwファイアウォールのアプリケーションプロファイルです。

$ 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’sEncryptサービスを使用してSSLをインストールします。

そのためには、Certbotをインストールします。

$ sudo apt install certbot

Certbotプロセスに干渉するため、Nginxを停止します。

$ 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

また、SSLを自動的に更新するためのcronジョブを設定する必要があります。 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と入力します プロンプトが表示されたら。

SSLを使用してプロキシ経由でCalibreを提供するようにNginxを構成します

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 ebookサーバーをインストールして実行し、ユーザー認証とブックを自動的に追加する機能を使用してNginx上で実行する方法を学習しました。ご不明な点がございましたら、下のコメント欄に投稿してください。


Ubuntu
  1. Ubuntu18.04にMySQLをインストールする方法

  2. Ubuntu18.04にMinecraftサーバーをインストールする方法

  3. Ubuntu14.04サーバーにZimbra8.6をインストールする方法

  1. Ubuntu20.04にNginxをインストールする方法

  2. Ubuntu20.04にMariaDBをインストールする方法

  3. Ubuntu14.04にVNCサーバーをインストールする方法

  1. Ubuntu15.04にOpenSIPSサーバーをインストールする方法

  2. Ubuntu16.04にConsulServerをインストールする方法

  3. Ubuntu18.04にZabbixをインストールする方法