zaki work log

作業ログやら生活ログやらなんやら

OSSのMiro風ホワイトボードアプリourboardをローカルにDocker Composeでシュッと立ててみた

オンラインで使えるSaaSのホワイトボードアプリというとMiroなんか有名だが、ここでは似たようなホワイトボードアプリをローカルで動かす類似のアプリについて紹介。

miro.com

探してみたらourboardというMITライセンスのソフトウェアがあり、Dockerイメージも公開されていて簡単にデプロイできたので手順についてまとめた。
ちなみに2025年5月時点で、Dockerでシュッと立てられるのにREADMEにその手順が載っておらず、Compseファイルなどの資材も揃ってないのがちょっと欠点。
(イメージのビルド方法と、yarnを使ったデプロイ手順は載っている。イメージからデプロイするスクリプトもあるが内容が不十分だった)

github.com

TL;DR

以下のCompseファイルで起動すればOK
(SESSION_SIGNING_SECRETは仮値なので適当に変更してね)

※ 2025.08.30追記:ボリューム指定が抜けていてコンテナ再作成時にデータが消えてしまうため、修正。もし修正前のcomposeファイルを使っていたらこの記事参照してデータ救出してください

services:
    db:
        image: postgres:12
        restart: always
        ports:
            - 13338:5432
        environment:
            POSTGRES_USER: r-board
            POSTGRES_PASSWORD: secret
        healthcheck:
            test: ["CMD-SHELL", "pg_isready -U r-board || exit 1"]
            interval: 1s
            timeout: 1s
            retries: 10
            start_period: 1s
        volumes:
            - pg_data:/var/lib/postgresql/data
    ourboard:
        depends_on:
            db:
                condition: service_healthy
        init: true
        environment:
            - DATABASE_URL=postgres://r-board:secret@db:5432/r-board
            - SESSION_SIGNING_SECRET=curry_tabetai
        ports:
            - 1337:1337
        volumes:
            - $PWD/backend/localfiles:/usr/src/app/backend/localfiles
        image: raimohanska/ourboard
        restart: always

volumes:
    pg_data:

デプロイされたら、HTTPで1337/TCPへアクセスすればOK

解説

GitHubのリポジトリにComposeファイルは梱包されているが、内容はアプリで使うPostgreSQLと、OIDC認証を組み込む際に使うKeyCloakがデプロイされる定義になっている。
ローカルで個人で使う場合で認証が不要なら、KeyCloakは不要でPostgreSQLのみで良い。

outboard本体のデプロイについては起動スクリプトも含まれてはいるが、あいにく「同一ホスト上で標準のComposeファイルでデプロイしたPostgreSQLコンテナに接続」ができる実装になっていないため、そのままでは動作しない。

なので、まとめて一つのComposeファイルに記述するのが一番簡単ということでできたのが前述のComposeファイル。

depends_onを使ってDB→outboard本体の順になるように定義しているが、単純な依存設定だと起動が速すぎてoutboardからのDBアクセスが失敗してしまうため、DBにヘルスチェックを追加pg_isreadyで起動完了をきっちり待つようにしている。

ourboard本体のDockerコンテナイメージはここにある

サンプルページ

公式でサンプルページが用意されており、ボードを作ってお試し可能。

www.ourboard.io

使い勝手はMiroに似てるので直感的に使えると思う。
キーボードショートカットはGitHubのREADMEにも掲載。

github.com


ホワイトボード上で扱う情報の種類によってはオンラインではなくクローズドなところでやりたいこともあると思うので、そういう時には便利だと思う。