Dockerでi2b2サーバーを構築する

Docker Logo
Dockerを利用することで、複雑な設定を簡素化し、数分もあればi2b2サーバーを立ち上げられます。
i2b2がいくつか 公式のDockerイメージ を提供しています。これらを組み合わせて利用することで、i2b2サーバーを構築できます。
国内のユーザーがすぐにi2b2を実装できるように、GitHubリポジトリ i2b2-jp-docker を作成しました。ここでは、このリポジトリを利用してi2b2サーバーを構築する手順を説明します。

Note

  • i2b2は継続的に開発が進んでおり、将来大幅に内容が変わる可能性があります。当面の間、このマニュアルは2025年8月時点での最新の i2b2 version 1.8.x を対象とし維持開発します。

  • 細かな設定が必要で、このリポジトリでは対応しきれない場合、 i2b2 Community Wiki に詳細なinstallation guideが公開されていますので、そちらをご利用ください。

以下の手順通りにに進めば、i2b2サーバーを起動できます。

1. システム要件とDockerのインストール

1-1. システム要件

Dockerの使用を前提とするため、比較的最近のdockerが対応していること以外に特別な要件はありません。
最低でも以下のスペックを推奨します。
  • OS: Linux (Ubuntu 22.04.1 LTSでの動作を確認しています)

  • CPU: 2コア以上

  • メモリ: 4GB以上

  • ストレージ: 100GB以上の空き容量 (主にPostgresのデータ保存用)

マシンのスペックはi2b2サーバーの利用規模に応じて、通常はこれより高いスペックが必要になります。ご利用の規模に応じて適切なスペックを選択してください。

1-2. Dockerのインストール

Dockerは:
  • Docker Engine: 28.2.2以降

を推奨します。これより古いDockerでも動作しますが、可能な限りDockerはこれ以降のバージョンを使用してください。
すでにDockerがインストールされている場合は、このステップは不要です。必要に応じてDockerのインストールやアップデートを行ってください。

1-3. Dockerの設定確認

i2b2サーバー実装にあたって、Dockerについていくつか確認が望ましい項目があります。以下のページを一度ご覧ください。

Dockerの重要な設定について

ご一読の上、必要に応じて設定を変更してください。

2. リポジトリのクローン

まず、必要なデータをダウンロードします。

2-1. i2b2-jp-dockerのリポジトリをクローンします。

cd /path/to/your/working_dir
git clone https://github.com/yuakagi/i2b2-jp-docker.git
ここで、/path/to/your/working_dirは、作業ディレクトリのパスに置き換えてください。

3. 設定ファイルの確認と編集

プロジェクトのル各種設定ファイルを一度ご確認ください。
必要であれば、ご利用の環境に合わせて編集します。

3-1. .envファイルの確認と編集

プロジェクトのルートディレクトリから .env ファイルをテキストエディタで開きます。
ここでは、i2b2サーバーの基本的な設定を行います。
デフォルトのままでも多くの場合は十分に機能するようになっておりますが、必要に応じて設定を変更してください。

3-2. PostgreSQLの基本設定

プロジェクトのルートディレクトリから`postgres/custom_postgresql.conf` ファイルをテキストエディタで開きます。
これはPostgreSQLの設定ファイルです。デフォルトのままでも多くの場合は十分に機能するようになっておりますが、必要に応じて設定を変更してください。

3-3. Dockerサービスの設定を確認

プロジェクトのルートディレクトリから docker-compose.yml ファイルをテキストエディタで開きます。
このファイルは基本的に変更しなくても動作するように調整されております。しかし、全ての環境において動作を保証するものではありません。一度内容を全てご確認いただき、必要に応じて設定を変更してください。

4. Dockerサービスの開始

いよいよi2b2サーバーを起動します。
このステップでは以下の3つのDockerコンテナを起動します:
  • i2b2 Core Server (i2b2-core-server)

  • i2b2 Web Client (i2b2-webclient)

  • PostgreSQL Database (i2b2-data-pgsql)

  • Nginx プロキシサーバー (i2b2-nginx)

これらが同じDockerネットワーク上で連携して動作します。PostgreSQLのデータベースの本体は`i2b2-data-pgsql`コンテナ内に存在します。

4-1. プロジェクトのルートディレクトリに移動します。

cd /path/to/your/working_dir/i2b2-jp-docker
すでに移動している場合はこのステップは不要です。

4-2. Dockerサービスを起動します。

docker compose up -d
これにより、3つのコンテナがバックグラウンドで起動します。
ここでは -d オプションを使用して、コンテナをデタッチモードで起動していますが、オプションは適宜調整してください。
(ただ起動するのであれば、通常は -d オプションだけで十分です。)

4-3. NGINXサーバーが起動するまで待ちます。

通常は数分で起動が完了しますが、多少時間がかかるステップです。
コンソールのログを確認して、全てのサービスが正常に起動したことを確認してください。
(-d オプションを使用している場合は、 docker compose logs -f コマンドでログをリアルタイムに確認できます。)

4-4. i2b2 Web Clientにアクセスします。

Note

  • デフォルトではNGINXはSSL(TLS)に対応していません。HTTP (prot80)によるアクセスのみです。

  • TLSの対応は、NGINXの設定(nginx.conf)を変更し、適切な証明書を配置することで可能です。

Webブラウザを開き、以下のURLにアクセスします:
http://<your host IP or domain>/webclient
i2b2 webclientのエンドポイントは、/webclient です。 <your host IP or domain> は、i2b2サーバーが稼働しているホストのIPアドレスまたはドメイン名に置き換えてください。
例えば、ホストのドメインが i2b2.example.com であれば、URLは http://i2b2.example.com/webclient となります。
正常に起動していれば、i2b2 Web Clientのログイン画面が表示されます。

4-5. i2b2 Web Clientにログインします。

ログイン画面が表示されたら、ログインしてみてください。デフォルトのユーザー名とパスワードは以下の通りです:
  • ユーザー名: demo

  • パスワード: demouser

サイトアクセス時にこれらのユーザー名とパスワードが自動的に入力されるかもしれません。
ログインに成功すると、i2b2 Web Clientのダッシュボードが表示されます。

5. ユーザーの管理

サービスの初回起動時に幾つかのデフォルトユーザーが作成されます。セキュリティの観点から、これらのユーザーのパスワードを変更してください。

  1. Adminユーザーでログインします。

    • すでにログインしている場合は、一度ログアウトしてください。i2b2 ver 1.8.xであれば、画面右上のユーザーアイコンをクリックして表示されるメニューから「Logout」を選択します。

    • 再度ログイン画面が表示されたら、Adminユーザーの資格情報を使用してログインします:

      • ユーザー名: i2b2

      • パスワード: demouser

  2. Admin Dashboardを起動します

    • 管理者権限のあるユーザーでログインした場合のみ、この機能にアクセスできます。

    • まず、webclient画面の中央上部の「Analysis Tools」をクリック。

    • 「Category」メニューから「ADMIN」を選択。

    • すると、下部の選択肢に「Admin Dashboard」が表示されるので、これをクリックします。

    • Admin Dashboardが起動します。

  3. Adminユーザーのパスワードを変更します。

    • Admin Dashboardのナビゲーションバーに「USERS」「PROJECTS」「HIVE」などのタブが表示されます。

    • 「USERS」タブをクリックすると、ユーザー管理画面が表示されます。(おそらく、最初から選択されています。)

    • ユーザー一覧からユーザー名(User Name)が `i2b2`のユーザーを見つけ、編集アイコン(鉛筆マーク)をクリックします。これは現在ログインしているユーザーです。

    • ユーザーの詳細画面が表示されるので、「Password」「Verify Password」フィールドを使って、新しいパスワードを入力します。

    • 変更を保存するために、画面下部の「SAVE」ボタンをクリックします。

    • なお、このユーザーが永続的に必要になることはありません。他に管理者権限を持つユーザーを作成した後、このユーザーを削除しても問題ありません。(下の、新しいユーザーの作成を参照してください。)

  4. 他のデフォルトユーザーについても情報の変更を行います。

    • 同様の手順で、他のデフォルトユーザー(ユーザー名 `demo`など)についてもセキュリティのためにパスワードの変更を行います。

    • これらのユーザーはデモ用に提供されているものであり。不要な場合は、削除してください。

    • 削除はユーザー右端のゴミ箱アイコンをクリックします。

  5. 新しいユーザーを作成します。

    • 必要であれば、新しいユーザーを作成してください。

    • 左上の「+ADD NEW USER」ボタンをクリックします。

    • ユーザーの詳細画面が表示されるので、必要な情報を入力し、「SAVE」ボタンをクリックして新しいユーザーを作成します。

    • なお、ユーザーフィールドの「Is Admin」をTrueに設定すると、管理者権限が付与されます。管理者権限を持つユーザーは、他のユーザーの管理やシステム設定の変更が可能です。必要に応じて設定してください。