Calibreは、無料のオープンソースの電子書籍マネージャーです。サーバーコンポーネントと一緒にクロスプラットフォームのデスクトップアプリケーションとして出荷され、電子書籍ライブラリの管理に使用できます。
calibreをサーバーとして設定すると、世界中のどこからでも本にアクセスでき、友人や家族と共有することができます。後で読むために、それらをモバイルデバイスに転送することもできます。 Calibreサーバーを使用すると、電子書籍をWeb上で直接読むこともできます。
このチュートリアルでは、Ubuntu20.04ベースのサーバーにcalibre電子ブックサーバーをインストールして使用する方法について学習します。
-
sudo権限を持つユーザーがいるUbuntu20.04ベースのサーバー。
-
サーバーを最新の状態に保ちます。
$ 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
を開きます ブラウザで、口径が機能していることを確認します。
今のところ、サーバーの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)
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上で実行する方法を学習しました。ご不明な点がございましたら、下のコメント欄に投稿してください。