序章

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

Calibreはおそらくデスクトップクライアントでよく知られていますが、強力なサーバーとしても機能し、世界中のどこからでも電子書籍にアクセスできます(またはコレクションを友達と共有できます)。 あなたが読みたいときはいつでもあなたがあなたと同じ読書装置を持っていることに依存しないので、あなたの電子ブックをサーバー上に保つことは素晴らしいです。 また、旅行に行く場合は、電子書籍コレクションを持ち歩くことを心配する必要はありません。

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

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

このチュートリアルでは、Ubuntu 14.04サーバーにCalibreをインストール、セットアップ、および使用する方法を説明します。 また、 calibredbコマンドを使用して、サーバーから直接電子書籍データベースを作成、カスタマイズ、および保守する方法についても説明します。

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

  • Calibreのインストール
  • 電子書籍ライブラリを作成するか、既存のライブラリをインポートします
  • Calibreサーバーをバックグラウンドサービスにする
  • ライブラリに新しい本を自動的に追加する

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

前提条件

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

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

ステップ1—Calibreをインストールする

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

幸いなことに、Calibreの作成者は、これを非常に簡単に実行できるようにしています。 サーバーで次のPythonコマンドを実行するだけです。 コマンドを変更する場合は、コマンドを実行する前に、公式キャリバーサイトを再確認してください。

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 実行に使用します calibredb 仮想Xディスプレイサーバーで–非ディスプレイ環境でCalibreを実行することによって引き起こされる問題を回避するため。

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

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

sudo apt-get update

インストール xvfb:

sudo apt-get install xvfb

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

sudo apt-get install imagemagick

ステップ3—ライブラリを作成する

これで、サーバーの実行を開始する準備がほぼ整いました。 ただし、提供する本をいくつか入手する必要があります。

あなたはすでにあなた自身の電子ブックライブラリを持っているかもしれないので、これを行う2つの方法を見ていきます。

  1. 電子書籍ファイルを直接追加します。 プロジェクトグーテンベルクからカップルを取得します
  2. 既存のCalibreライブラリをインポートします。 すでにデスクトップバージョンのCalibreを実行している場合に便利です

本を手に入れる

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

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

2つのディレクトリを作成しました。1つ目は ~/calibre-library Calibreが自動的に整理するものですが、手動で本を追加します toadd サブディレクトリ。 後で、このプロセスを自動化する方法についても見ていきます。

ProjectGutenbergから本を入手する方法。 このチュートリアルでは、ジェーン・オースティンの高慢と偏見とチャールズ・ディケンズのクリスマスキャロルをダウンロードします。

に変更します 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は、本を正しく追加するためにファイル拡張子にいくらか依存しているため、 -O のフラグ wget コマンドは、よりわかりやすいファイル名を指定します。 グーテンベルクから別の形式をダウンロードした場合( .epub)次に、それに応じてファイル拡張子を変更する必要があります。

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

次に、これらの書籍を使用してCalibreデータベースに追加する必要があります。 calibredb を介してコマンド xvfb 以前にインストールした仮想ディスプレイ。 これを行うには、次を実行します。

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

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

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

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

  • http://your_server_ip:8080

交換 your_server_ip ドロップレットのIPアドレスを使用します。 以下のスクリーンショットのように、ライブラリのメインページが表示されます。

すべての本リンクをクリックすると、前に追加した2冊の本が表示されます。 どちらかの本の下にあるGetボタンをクリックして、ダウンロードすることができます。

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

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

現在のライブラリフォルダで、というファイルがないか再確認してください。 metadata.db. このファイルが存在する場合は、追加の構成なしですべてが機能するはずです。

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

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

calibre-server --with-library /path/to/calibre-library

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

ステップ4—Calibreをバックグラウンドサービスにする

シェルを開いたままにしたくない calibre-server サーバーの実行を維持するためだけにコマンドを実行します。

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

最近まで、これを実現する方法は、複雑なスクリプトを記述して、 /etc/init.d/ ディレクトリ。 現在推奨されている方法は、はるかに単純なUpstartスクリプトを使用することです。 .conf に配置されたファイル /etc/init/ ディレクトリ。 これを行う方法を見ていきます。

サーバーがまだ実行中の場合は、 CTRL + C それを停止するためにあなたのターミナルで。

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

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

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

description "Calibre (ebook manager) content server"

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

respawn

env USER='myusername'
env PASSWORD='mypassword'
env LIBRARY_PATH='/home/user/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; すでにポート80を使用して標準のWebページなどを提供している場合は、これを別のものに変更してください。)
  • 最後に、 script セクション(スタンザとして知られています)を使用してメインコマンドを実行します exec、およびすべての変数を渡します。 The /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/user/calibre-library/toadd/ ディレクトリを作成し、そこにあるファイルをCalibreデータベースに追加してから、元のファイルを削除します。 (Calibreは、ライブラリにファイルを追加するときにファイルのコピーを作成するため、追加が有効になると元のファイルは必要ありません。)これは、scp、sshなどを介してブックファイルを転送する場合を意味します。 メインマシンからこのディレクトリに移動するか、直接ダウンロードして toadd ディレクトリを作成すると、それらは自動的にCalibreデータベースに追加され、ライブラリからダウンロードできるようになります。

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

crontab -e

好みのテキストエディタについて選択する必要があるかもしれません。

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

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

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

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

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

結論

Calibreサーバーの実行と保守について覚えておくべきことが1つまたは2つあります。 最後に、これらについて簡単に説明します。

グーテンベルクまたは同様のサイトからの本(つまり、著作権のない本)のみをホストしている場合は、言うことはほとんどありません。 グーテンベルクの利用規約に必ず従ってください。 具体的には、自分の本のコレクションへのアクセスを他の人に許可する場合は、再配布に関するグーテンベルクのTOSのセクションを必ず読んでください。

商業的に購入した本をホストしている場合は、おそらくDRM(デジタル著作権管理)が適用されているため、登録済みのデバイスからのみ読み取ることができることに注意してください。

言うまでもなく、電子書籍サーバーで海賊版や違法な本をホストしてはいけません。

更新

Calibreは更新を非常に頻繁にプッシュします。 これらのほとんどはバグ修正と機能更新ですが、一部はセキュリティに関係している可能性があります。 したがって、アップデートについていくことをお勧めします。

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

安全

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

  • admin calibre ebooksなどの一般的なユーザー名は使用しないでください
  • 一般的なパスワードや短いパスワードは使用しないでください。また、ユーザー名をパスワードとして使用しないでください。
  • ポート80ではなく、非標準ポートでCalibreを実行することを検討してください

これでチュートリアルは終了です。 どこからでも、どのデバイスからでも電子書籍にアクセスできることを願っています。