投稿日:

DockerでBookStack構築

はじめに

ロゴ

DockerでBookStackを構築した際の作業メモ

BookStackはオープンソースのいわゆるWikiツール.
自分専用のノートアプリ的な使い方をしたくて構築した.

普段のノート・メモにはNotionを利用していたが,

  • しばしば動作が重たいと感じた
  • やはりデータは手元に持っておきたい

という思いから代替を探していてそのお試し.
類似アプリとしてWiki.jsがあるのでそのうち試したい.

手順

docker関連ファイル準備

BookStack公式ページ

公式ドキュメント類

GitHub- BookStackApp/BookStack

GitHub- linuxserver/docker-bookstack

環境

$ lsb_release -d
Description:    Ubuntu 22.04.4 LTS
$ docker -v
Docker version 26.0.0, build 2ae903e

Compose V2を使用しているのでdocker-composeコマンドではなくdocker composeとなっていることに注意

docker-compose

github(linuxserver/docker-bookstack)のUsageを参考にして以下のように作成

dokcer-compose.yml
services:
  bookstack:
    image: lscr.io/linuxserver/bookstack
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - APP_URL=<https://bookstack.example.com>
      - DB_HOST=bookstack_db
      - DB_PORT=3306
      - DB_USER=bookstack
      - DB_PASS=<yourdbpass>
      - DB_DATABASE=bookstackapp
    volumes:
      - ./bookstack_app_data:/config
    ports:
      - 6875:80
    restart: unless-stopped
    depends_on:
      - bookstack_db
  bookstack_db:
    image: lscr.io/linuxserver/mariadb
    container_name: bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=<yourdbpass>
      - TZ=Asia/Tokyo
      - MYSQL_DATABASE=bookstackapp
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=<yourdbpass>
    volumes:
      - ./bookstack_db_data:/config
    restart: unless-stopped

APP_URL=<https://bookstack.example.com>は実際にBookStackへアクセスするURL/IPアドレスを設定する.
<yourdbpass>については任意のパスワードを共通で設定する(全3ヵ所).
ポートはサンプルの6875をそのまま指定しているが,各々環境・使い方に合わせて設定する.

ディレクトリ構成

立ち上げ前のディレクトリ構成は以下

/bookstack
|--docker-compose.yml

最終的なディレクトリ構造は以下

/bookstack
|--docker-compose.yml
|--dbookstack_app_data
|  |--[BookStackデータ]
|--ibookstack_db_data
|  |--[MariaDBデータ]

バックアップ/リカバリする場合はこのディレクトリごとコピー

立ち上げ

docker-compose.ymlを配置したディレクトリにて以下コマンドでコンテナを立ち上げる.

$ docker compose up -d

https://bookstack.example.com にアクセスしてログイン画面が表示されることを確認する.

ログイン画面

[email protected]/passwordでログインできる.
本格運用時には変更すること.

初期画面