TOC
LAN内にCalibreライブラリを作る
弊blogでも度々取り上げている電子書籍Calibreですが、PC上で使う場合はそれぞれのPC上にライブラリを構築することになってしまうので、何とか1箇所に纏めたいと思い、Calibre-webを運用することにしました。
今回はlinuxserver.io1が提供するDocker-Webを使います。また、確認環境は以下の通りです。
- Raspberry Pi 4(RAM 8GB)
- Ubuntu 21.04
- Docker 20.10.2-0ubuntu2
- docker-compose 1.25.0
作業概要
今回の作業概要は以下の通りです。
- docker-compose.yamlファイルを作って、イメージのダウンロードと起動
- コンテナを起動しながらうまく行かないところを直していく
- 適当に設えた初期状態の(最初から空のライブラリで始めたい場合はこのタイミングで空のCalibreライブラリを作ったほうが良い)
- /booksに紐付けるパスのパーミッションを変更
- 空のCalibreライブラリを作る
docker-compose.yamlファイルを作る
適当なディレクトリにdocker-compose用のファイルを作成します。今回は~/docker-calibre-web
にファイルを作ります。
$ mkdir ~/docker-calibre-web
~/docker-calibre-web/docker-compose.yaml
を以下の内容で作成します。
version: "2.1"
services:
calibre-web:
image: ghcr.io/linuxserver/calibre-web
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Tokyo
- DOCKER_MODS=linuxserver/calibre-web:calibre
volumes:
- /mnt/usbhdd1/var/docker-calibre-web-config:/config
- /mnt/usbhdd1/var/docker-calibre-web-library:/books
ports:
- 8083:8083
restart: unless-stopped
公式に載っていたサンプルからの変更は以下の通りです。
- TZ=Europe/London → TZ=Asia/Tokyo
- /path/to/data:/config → /mnt/usbhdd1/var/docker-calibre-web-config:/config
- /path/to/calibre/library:/books → /mnt/usbhdd1/var/docker-calibre-web-library:/books
docker-composeでまずは起動してみる
$ cd ~/docker-calibre-web
$ su
# docker-compose up -d
起動するまではしばらくかかるので適当に時間を潰した後、ブラウザで8083番ポートにアクセスします。
初回設定時はCalibreライブラリのパスを入力する必要があります。ここでの入力値はdocker-compose.yamlのvolumesとして指定した/books
固定です。
ですが、初回起動のタイミングでは/booksはただのディレクトリでCalibreライブラリのmetadata.dbが存在しないのでエラーで始まりです。
metadata.dbを/booksにコピーする
解決方法は/booksをCalibreライブラリにするしかないのですが、一番確実な方法はCalibreで新しいライブラリを作って/booksにmetadata.dbをコピーすることとなっています。
正直なところ非効率でしかないのですが、このタイミングでCalibreでライブラリを作るのが一番効率的です。私の場合は先にissueにリンクの貼られているmetadata.dbをダウンロードして先に進めましたが、中身がないQuick Start Guide2が登録されているので、後々面倒なことになります。
Calibre5.17.0で作成した空のmetadata.db(Quick Start Guideがないもの)を置いときますので、必要であれば持っていってください→こちら
metadata.dbを配置したら、コンテナを再起動します。起動には時間がかかるのでのんびり待ちます。
$ cd ~/docker-calibre-web
$ su
# docker-compose down
# docker-compose up -d
ログイン画面になったら、ユーザー名 admin
、パスワード admin123
でログインします。この時はissueに書かれていたリンクからダウンロードをしたmetadata.dbを使っているので開けないQuick Start Guideがあります。
アップロードを有効にする
今回はCalibreライブラリへの登録をブラウザ上で行いたいので、デフォルトでは無効になっているアップロードを有効にします。
ログインした状態で表示される右上の温度計のようなアイコンをクリックすると設定画面に移ります。
ConfigurationのEdit Basic Configurationをクリックします。
Feature Configurationの中のEnable Uploadsにチェックを付けて、下に有るSaveボタンで反映します。
電子書籍をアップロードする
一応起動してするべき設定は終わったので、手始めに電子書籍をアップロードしてみます。今回はepubファイルで試したかったので、株式会社内外プロセスという会社の案内を使いました。
電子書籍サンプル|印刷・DTPは岡山県岡山市の印刷会社、株式会社内外プロセス
Calibreにログインした状態で、右上にUploadというボタンが追加されているのでクリックすると、アップロードするファイルを選択すると、アップロード処理が行われます。ですが、ここまでこの手順通りに進めてくるとアップロードに失敗します。
DBに書き込めないという内容のエラーが表示されます。これはどうしたものかなと思いながら検索したら/booksのディレクトリのパーミッションが一般ユーザーが書き込めないといけないということ。
/booksのディレクトリのパーミッションを変更する
今回、docker-compose.ymlで指定している/booksのディレクトリは/mnt/usbhdd1/var/docker-calibre-web-library/
なので、このディレクトリを一般ユーザーでも書き換えられるようにします。
# ls -ld /mnt/usbhdd1/var/docker-calibre-web-library
drwxr-xr-x 1 root root 22 6月 18 23:07 /mnt/usbhdd1/var/docker-calibre-web-library
# chmod a+w /mnt/usbhdd1/var/docker-calibre-web-library
# ls -ld /mnt/usbhdd1/var/docker-calibre-web-library
drwxrwxrwx 1 root root 22 6月 18 23:07 /mnt/usbhdd1/var/docker-calibre-web-library
コンテナを再起動します。起動に時間がかかるのでのんびり待ちます。
$ cd ~/docker-calibre-web
$ su
# docker-compose down
# docker-compose up -d
改めてepubのアップロードを試してみます。
正常にアップロードが完了し、一覧にも反映されていることを確認できました(なお、このタイミングでmetadata.dbを手元のCalibreで作ったものに入れ替えているため、Quick Start Guideがなくなっています)
本当はepubをブラウザ上で直接開ければ良いのですが、現状では電子書籍ファイルをクリックするとインストールして対応アプリで開くという手順になっているので、多少使い勝手は悪いですが、電子書籍ライブラリとしては使えるようになりました。
スポンサーリンク
comments powered by Disqus