電子書籍ライブラリとしてCalibre WebをRaspberry Pi 4でDockerで運用する

Posted by 雅楽斎 on Saturday, June 19, 2021

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

GitHub - linuxserver/docker-calibre-web

Contribute to linuxserver/docker-calibre-web development by creating an account on GitHub.

作業概要

今回の作業概要は以下の通りです。

  1. docker-compose.yamlファイルを作って、イメージのダウンロードと起動
  2. コンテナを起動しながらうまく行かないところを直していく
    1. 適当に設えた初期状態の(最初から空のライブラリで始めたい場合はこのタイミングで空のCalibreライブラリを作ったほうが良い)
    2. /booksに紐付けるパスのパーミッションを変更
    3. 空の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をコピーすることとなっています。

DB location is not valid, please enter correct path · Issue #30 · linuxserver/docker-calibre-web

Run: docker run -dit \ --restart unless-stopped \ --name=calibre-web \ -v /data/docker/calibre-web/config:/config \ -v /data/docker/calibre-web/books:/books \ -e PGID=1248 -e PUID=1248 \ -p 8083:80...

正直なところ非効率でしかないのですが、このタイミングで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のディレクトリのパーミッションが一般ユーザーが書き込めないといけないということ。

ubuntu20.04自建calibre-web服务

/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をブラウザ上で直接開ければ良いのですが、現状では電子書籍ファイルをクリックするとインストールして対応アプリで開くという手順になっているので、多少使い勝手は悪いですが、電子書籍ライブラリとしては使えるようになりました。

スポンサーリンク


  1. Bitnamiの様に、OSSを纏めて扱いやすいようにカスタマイズして配布してくれるコミュニティです [return]
  2. Calibreのアプリを初回起動すると登録されているアレです [return]

comments powered by Disqus