Ubuntu 14.04でCalibre Ebookサーバーを作成する方法

前書き

Calibreは、無料のオープンソースの電子ブックマネージャーです。

Calibreはおそらくデスクトップクライアントでよく知られていますが、強力なサーバーとしても機能し、世界中のどこからでも電子書籍にアクセス(またはコレクションを友人と共有)できます。 電子書籍をサーバーに保管しておくと、いつでも読みたいときに同じ読書装置を使用する必要がないため、非常に便利です。 旅行に出かけたとしても、電子書籍のコレクションを持ち歩くことを心配する必要はありません!

サーバーには、ライブラリから書籍を検索およびダウンロードできるシンプルでエレガントなブラウザフロントエンドが含まれています。 また、モバイルフレンドリーなサイトが組み込まれているため、最も基本的なWeb機能のみを備えた書籍でも、書籍を直接電子書籍リーダーに簡単にダウンロードできます。

たとえば、CalibreのブラウザはKindle Touchで動作します。これは、デバイスに電子インクディスプレイと実験的なブラウザしかない場合でも、書籍を直接ダウンロードできます。

このチュートリアルでは、Ubuntu 14.04サーバーでCalibreをインストール、設定、使用する方法について説明します。 また、http://manual.calibre-ebook.com/cli/calibredb.html [+ calibredb + command]を使用して、サーバーから直接電子書籍データベースを作成、カスタマイズ、および保守する方法についても見ていきます。 。

このチュートリアルでは、以下について説明します:

  • Calibreのインストール

  • 電子書籍ライブラリの作成、または既存の電子書籍ライブラリのインポート

  • Calibreサーバーをバックグラウンドサービスにする

  • ライブラリに新しい本を自動的に追加する

このチュートリアルの終わりまでに、新しい本を簡単に追加できる小さな初期ライブラリができあがります!

前提条件

次の前提条件を満たしていることを確認してください。

  • Ubuntu 14.04ドロップレット

  • sudo user

このチュートリアルの例は、Ubuntu 14.04の新規インストールを実行するDropletに対して示されていますが、他のオペレーティングシステムに簡単に適応できるはずです。

ステップ1-Calibreのインストール

CalibreはAPTソフトウェアリポジトリから入手できますが、作成者からのアドバイスに従って、Webサイトで提供されているバイナリからインストールすることをお勧めします。 Calibreは非常に頻繁に更新され、リポジトリのバージョンは遅れをとる傾向があります。

幸いなことに、Calibreの作成者はこれを非常に簡単にしました。 サーバーで次のPythonコマンドを実行するだけです。 コマンドを実行する前に、コマンドが変更された場合に備えて、http://calibre-ebook.com/download_linux [Calibreの公式サイト]を再確認してください。

Calibreをインストールします(スクロールしてコマンド全体を取得してください)。

sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

デスクトップ統合の失敗に関する警告が表示されますが、リモートサーバーにCalibreをインストールしているため、無視しても安全です。

ステップ2-依存関係のインストール

Calibreコマンドラインツール「+ calibredb +」は、本の追加やインポート、本のメタデータや表紙の取得など、Calibreライブラリのさまざまな操作に使用されます。

これらのコマンドのいくつかを後で使用する方法を見ていきますが、ここでは2つの依存関係をインストールするだけです。 1つ目はImageMagickです。これがないと、「+ calibredb 」は実行されません。 2つ目は ` xvfb `で、これを使用して仮想Xディスプレイサーバーで ` calibredb +`を実行します。これは、非表示環境でCalibreを実行することによる問題を回避するためです。

これらをインストールするには、次のコマンドを実行するだけです。

パッケージリストを更新します。

sudo apt-get update

`+ xvfb +`をインストールします。

sudo apt-get install xvfb

ImageMagickをインストールします。

sudo apt-get install imagemagick

ステップ3-ライブラリーの作成

これで、サーバーを実行する準備がほぼ整いました。 ただし、提供する書籍を入手する必要があります。

既に独自の電子書籍ライブラリを持っている可能性がありますので、これを行う2つの方法を検討します。

  1. 電子ブックファイルを直接追加します。 Project Gutenbergからカップルを取得します

  2. 既存のCalibreライブラリをインポートします。すでにデスクトップバージョンのCalibreを実行している場合に便利

書籍の入手

まず、Calibreライブラリのディレクトリを作成しましょう。 この例では、ユーザーのホームディレクトリにディレクトリを作成しますが、サーバー上の任意の場所に配置できます。 次のコマンドを実行します。

mkdir ~/calibre-library
mkdir ~/calibre-library/toadd

2つのディレクトリを作成しました。最初の +〜/ calibre-library`は、Calibreが自動的に整理するものですが、マニュアルを + todd + `サブディレクトリに追加します。 後で、このプロセスを自動化する方法についても見ていきます。

Project Gutenbergから書籍を入手する方法。 このチュートリアルでは、Jane Austenによる_Pride and Prejudice_とCharles Dickensによる_A Christmas Carol_をダウンロードします。

開始するには、 `+ toadd +`ディレクトリに移動します。

cd ~/calibre-library/toadd

2つの電子ブックをダウンロードします。

wget http://www.gutenberg.org/ebooks/1342.kindle.noimages -O pride.mobi
wget http://www.gutenberg.org/ebooks/46.kindle.noimages -O christmascarol.mobi

Calibreは、ブックを正しく追加するためにファイル拡張子にある程度依存しているため、 `+ wget `コマンドの ` -O `フラグはよりわかりやすいファイル名を指定します。 Gutenbergから別の形式( ` .epub +`など)をダウンロードした場合、それに応じてファイル拡張子を変更する必要があります。

Calibreのデータベースへの書籍の追加

ここで、先ほどインストールした「+ xvfb 」仮想ディスプレイで「 calibredb +」コマンドを使用して、これらのブックをCalibreデータベースに追加する必要があります。 これを行うには、次を実行します。

xvfb-run calibredb add ~/calibre-library/toadd/* --library-path ~/calibre-library

アスタリスクは、Calibreが `+ toadd `ディレクトリにあるすべての本をライブラリの ` calibre-library `ディレクトリに追加することを意味します。 表紙が見つからないというエラーが表示される場合があります(画像のない ` .mobi +`ファイルをダウンロードすることを選択しました)が、本がCalibreデータベースに追加されたことの確認も表示されます。

出力例:

Failed to read MOBI cover
Backing up metadata
Added book ids: 1, 2
Notifying calibre of the change

最初の結果を見るために必要なのはそれだけです。 サーバーをテストしてみましょう。 Run:

calibre-server --with-library ~/calibre-library

コマンドは出力を生成しませんが、端末でハングしているように見えます。 今のところこれで問題ありません。後で適切にデーモン化することを検討します。 次に、Webブラウザーを開き、次の場所に移動します。

  • + http://:8080 +

「++」をドロップレットのIPアドレスに置き換えます。 ライブラリのメインページが表示され、次のスクリーンショットのようになります。

image:https://assets.digitalocean.com/articles/calibre_bookserver/1.png [Calibreホームページ]

[すべての書籍]リンクをクリックすると、前に追加した2冊の書籍が表示されます。 いずれかの書籍の下にある[取得]ボタンをクリックしてダウンロードできます。

image:https://assets.digitalocean.com/articles/calibre_bookserver/2.png [書籍の表示]

既存のCalibreライブラリのアップロード

すでにデスクトップバージョンのCalibreを実行していて、ライブラリが既にセットアップされている場合は、簡単にサーバーにインポートできます。

`+ metadata.db +`というファイルの現在のライブラリフォルダーを再確認します。 このファイルが存在する場合、すべての追加設定なしで動作するはずです。

ライブラリフォルダー全体をサーバーにアップロードします。

次に、次のコマンドを実行します。

calibre-server --with-library

これにより、既存のライブラリ全体がサーバーに追加されます。 このチュートリアルで説明されているように、ブックファイルを `+ toadd +`ディレクトリに配置することで、サーバー上のブックをさらに追加できます。

ステップ4-キャリバーをバックグラウンドサービスにする

サーバーを実行し続けるためだけに、 `+ calibre-server +`コマンドを実行してシェルを開いたままにしたくありません。

コマンドに `-daemonize +`フラグを追加することもできますが、それを行うより良い方法があります。 以下では、 ` calibre-server +`をサービスにすると、システムの再起動時に自動的に起動し、プロセスを非常に簡単に開始、停止、または再起動できるようになることを簡単に見ていきます。

最近まで、これを達成する方法は複雑なスクリプトを記述し、それらを `+ / etc / init.d / `ディレクトリに置くことでした。 現在推奨されている方法は、はるかに単純なhttps://www.digitalocean.com/community/tutorials/the-upstart-event-system-what-it-is-and-how-to-use-it[Upstart]を使用することですスクリプト。これは、 ` / etc / init / `ディレクトリに配置される ` .conf +`ファイルです。 これを行う方法を見てみましょう。

サーバーがまだ実行中の場合は、ターミナルで「+ CTRL + C +」を押して停止します。

次に、新しい構成ファイルを作成します。

sudo nano /etc/init/calibre-server.conf

Upstartスクリプトを作成し、でマークされた変数を必ず置き換えます。

description "Calibre (ebook manager) content server"

start on runlevel [2345]
stop on runlevel [^2345]

respawn

env USER=''
env PASSWORD=''
env LIBRARY_PATH='/home//calibre-library'
env MAX_COVER='300x400'
env PORT='80'

script
   exec /usr/bin/calibre-server --with-library $LIBRARY_PATH --auto-reload \
                                --max-cover $MAX_COVER --port $PORT \
                                --username $USER --password $PASSWORD
end script

これをテキストエディターに貼り付けて保存します。 (CTRL + X、次にY、次にENTER)。 以下に各行の機能を示します。

  • 最初の行は、あなた(または他の人)がスクリプトが何をするのかを知るのを助けるための単なる説明です

  • 次の2行では、Upstartでは順序を指定できるため、スクリプトを開始および停止するレベルを指定します。これにより、相互に依存するスクリプトが正しい順序で開始されます。 レベル1はすべての重要なサービスのためのものであるため、レベル2から開始します。そのときまでに、ネットワークやその他必要なものが稼働していることがわかります。

  • `+ respawn +`は、サービスが予期せず停止した場合、再起動を試みることを意味します

次の行はすべて、 `+ calibre-server `コマンドに渡す変数です。 以前は、 `-with-library`オプションを指定する最小限の方法を使用しましたが、Calibreが提供する柔軟性を確認できます。 上記で指定したもの:

  • Webからライブラリにアクセスするためのユーザー名とパスワード(提供されている例からこれらを変更してください)

  • 以前のライブラリの場所のパス

  • ブックカバー画像の最大画像サイズ(これは、ページをより速くロードするのに役立ちます)

  • ポート番号(ここでは「80」に変更しました。すでに標準のWebページを提供するためにポート80を使用している場合は、これを別のものに変更します)

  • 最後に、 `+ script `セクション(_stanza_として知られています)では、 ` exec `を使用してメインコマンドを実行し、すべての変数を渡します。 ` / usr / bin / calibre-server +`部分は実行可能ファイルへのパスです

スクリプトを保存してエディターを閉じたら、サーバーを起動します。

sudo start calibre-server

今回はこの出力が表示されるはずですが、プロセス番号が異なります。

calibre-server start/running, process 7811

ブラウザを使用して、サーバーのIPアドレスまたはドメイン名に移動します。

ユーザー名とパスワードの入力を求めるポップアップフォームが表示されます。 これらは、Upstartスクリプトに追加したものでなければなりません。 これらを入力すると、以前と同様に電子書籍ライブラリに移動します。

サーバーは、次のコマンドを使用して簡単に停止、起動、および再起動できます。

sudo service calibre-server stop
sudo service calibre-server start
sudo service calibre-server restart

これにより、デーモンプロセスとプロセスIDを手動で処理するよりも、サーバーの管理がはるかに簡単になります。

このサイトにはデフォルトで、携帯電話や電子書籍リーダーなどの小さな画面のデバイスでうまく機能するモバイル版があります。 モバイルデバイスからサイトにアクセスすると、これは自動的にロードされます。

ステップ5-ブックを自動的に追加するためのCronジョブの作成

シンプルなcronジョブを記述して、新しい本がないか `+ toadd +`ディレクトリを監視できます。

10分ごとに、 `+ / home // calibre-library / toadd / `ディレクトリでファイルを探し、そこにあるファイルをCalibreデータベースに追加してから、元のファイルを削除します。 (Calibreはライブラリにファイルを追加するときにファイルのコピーを作成するため、追加が有効になったら元のファイルは必要ありません。)つまり、scp、sshなどを介してブックファイルを転送する場合 メインマシンからこのディレクトリに移動するか、直接「 toadd +」ディレクトリにダウンロードすると、自動的にCalibreデータベースに追加され、ライブラリからダウンロードできるようになります!

cronジョブを作成するには、次を実行します。

crontab -e

好みのテキストエディターについて選択する必要がある場合があります。

ファイルの最後に次の行を追加します。

*/10 * * * * xvfb-run calibredb add /home//calibre-library/toadd/ -r --with-library /home//calibre-library && rm /home//calibre-server/toadd/*

コマンドの最初の部分( + * / 10 * * * * +)は、コマンドが10分ごとに実行されることを意味します。 2番目の部分は、以前に手動で実行したコマンドと同じです。 `+ toadd +`フォルダーからすべての本をデータベースに追加し、元のファイルを削除します。

それだけです。 これで、世界中のどこからでも電子ブックにアクセスできます。

_ 注: Calibreの検索結果は関連性で並べ替えられていないため、共通の用語を入力すると、探しているものよりも前に関連のない本を見つけることがよくあります。 ただし、タイトルまたは作成者のみで検索するように指定できます。これは非常に役立ちます。また、参照オプション(たとえば、作成者によるアルファベット順の参照)も非常に適切に実装されます。 _

結論

Calibreサーバーの実行と保守について、留意すべき点が1つまたは2つあります。 最後にこれらを簡単に見ていきます。

著作権

Gutenbergまたは類似のサイト(つまり、著作権が保護されていない書籍)の書籍のみをホストしている場合、言うことはほとんどありません。 必ずグーテンベルクの利用規約に従ってください。 特に、他の人に本のコレクションへのアクセスを許可する場合は、http://www.gutenberg.org/wiki/Gutenberg:The_Project_Gutenberg_License#Section_1._General_Terms_of_Use_and_Redistributing_Project_Gutenberg-tm_electronic_works [redistribution]に関するGutenbergのTOSのセクションを必ずお読みください。

市販の書籍をホストしている場合は、おそらくDRM(デジタル著作権管理)を備えているため、登録済みのデバイスからしか読み取れないことに注意してください。

言うまでもなく、海賊版や違法な書籍を電子書籍サーバーでホストすることはできません。

更新情報

Calibreは更新を非常に頻繁にプッシュします。 これらのほとんどはバグの修正と機能の更新ですが、セキュリティに関係するものもあります。 そのため、http://calibre-ebook.com/whats-new [updates]についていくことをお勧めします。

重要な更新が公開されている場合は、サーバーソフトウェアを手動で更新する必要があります。 (繰り返しますが、APTリポジトリは遅れをとる傾向があるため、更新に依存することはお勧めしません)。

セキュリティ

DropletのIPアドレスを公開しなくても、開いているポートをスキャンするスクリプトによって検出される場合があります。 Calibreのログイン機能では、何度も不正な試行が行われた後、自動ロックアウトが許可されないため、ブルートフォース攻撃の可能性があります。 これを軽減するには、次のことを強くお勧めします。

  • * admin calibre ebooks *などの一般的なユーザー名は使用しないでください

  • 一般的なパスワードや短いパスワードを使用しないでください。また、ユーザー名をパスワードとして使用しないでください

  • ポート80ではなく、非標準ポートでCalibreを実行することを検討してください

そして、これでチュートリアルは終わりです。 任意の場所またはデバイスから電子書籍にアクセスして楽しんでください。

Related