医療現場生まれのオープンソース在庫管理システム「OpenBoxes」— Docker で即起動、世界中の病院・倉庫で実績

タグ OpenBoxes在庫管理オープンソースDockerGrails医療ITWMSサプライチェーンcolumnコラムlinuxLinuxwindowsWindowsGitHubopenboxes

医療現場生まれのオープンソース在庫管理システム「OpenBoxes」— Docker で即起動、世界中の病院・倉庫で実績

ひとことでいうと

OpenBoxes(オープンボックス)は、医療施設のために生まれたオープンソースの在庫・サプライチェーン管理システムです。薬品や医療用品の入出庫記録、在庫の追跡、発注管理をまとめてこなせる Web アプリ(ブラウザで使うソフト)として、世界中の医療機関や倉庫事業者に活用されています。無償で使えるオープンソースソフトウェアで、Docker(後述)を使えば手軽に自分の環境で動かすことができます。医療用途だけでなく、一般の倉庫管理や物流業務にも応用できる柔軟さが特徴です。ライセンスは Eclipse Public License 1.0 で、商用利用を含む幅広い目的に対応しています。

こんな人におすすめ

  1. 医療機関・NGO・支援団体の担当者: 病院、診療所、救援物資を扱う団体で、薬品や医療消耗品の在庫をデジタル管理したい場合に最適です。Sierra Leone・Lesotho・Rwanda・Liberia・米国など、インフラが限られた現場での運用実績があり、インターネット環境が不安定な地域でも安定して動作します。

  2. 倉庫・物流管理者: 製造業や小売業の倉庫でも使えるよう機能が拡張されています。入出庫履歴の管理、棚番号などのロケーション管理、発注点アラートといった WMS(倉庫管理システム)の基本機能を備えており、医療用途以外にも転用可能です。

  3. オープンソース導入を検討する IT 担当者・エンジニア: 商用 WMS は高コストになりがちですが、OpenBoxes は無償で導入でき、Docker Compose(複数のソフトをまとめて起動する仕組み)による環境構築に対応しています。Grails(Java ベースの Web フレームワーク)で構築されているため、Java エンジニアが社内カスタマイズを行いやすい構造になっています。

主な機能

OpenBoxes が提供する機能は多岐にわたります。在庫追跡では、製品のロット・有効期限・シリアル番号の単位で細かく管理できます。入出庫管理では、受領・払い出し・拠点間移動といった取引をすべて記録します。発注管理では、発注書(Purchase Order)の作成から納品確認まで一連の流れをサポートします。ダッシュボード・レポート機能で在庫の見える化と分析が行えます。フロントエンド(ブラウザで見える画面側)は React(JavaScript)、バックエンド(サーバー側の処理)は Grails(Groovy/Java)で構築されており、外部システムと連携できる REST API も公開されています。

インストール・使い方

OpenBoxes の推奨インストール方法は Docker Compose を使った方法です。まず、Docker(アプリをまとめて動かす仮想環境のツール)と Docker Compose がパソコンにインストールされていることを確認してください。

以下の手順はターミナル(文字で命令を送る画面。Mac なら「ターミナル」、Windows なら「PowerShell」や「コマンドプロンプト」)に、コマンドをコピー&ペーストして実行します。

Step 1: リポジトリ(ソースコードの置き場)をダウンロードする

git clone https://github.com/openboxes/openboxes.git
cd openboxes/docker
cp .env.example .env

git clone でインターネット上のソースコードを手元にコピーします。次に cd でフォルダを移動し、設定ファイルのひな型(.env.example)を .env という名前でコピーしています。

Step 2: 設定ファイルにパスワードを書き込む

.env ファイルをテキストエディタで開き、データベースのパスワードを設定します。

# .env の主要項目(例)
MYSQL_ROOT_PASSWORD=yourpassword
OPENBOXES_DATASOURCE_PASSWORD=yourpassword

yourpassword の部分を任意の文字列に変更してください。このパスワードはデータを保存するデータベース(情報の倉庫)への接続に使われます。

Step 3: Docker Compose でサービスを起動する

docker-compose up -d

このコマンドを実行すると、Web アプリ・データベースなど必要な全コンポーネントがまとめて起動します。-d は「バックグラウンドで動かす」オプションで、ターミナルを閉じても動き続けます。

起動後、ブラウザのアドレス欄に http://localhost:8080/openboxes と入力するとセットアップウィザードが表示されます。初回起動時はデータベースの初期設定が自動で走るため、数分かかる場合があります。開発・テスト環境向けには docker-compose-base.yml、既存のデータベースサーバーに接続する場合は docker-compose-remotedb.yml も用意されており、用途に合わせて選択できます。

ブラウザで試す(デモ)

インストール前に機能を確認したい場合は、公式デモサイト(demo.openboxes.com)を使うと便利です。アカウント登録なしで、在庫一覧の確認・詳細照会・入出庫シミュレーションといった基本操作をブラウザ上で体験できます。実際の OpenBoxes は Grails の Web アプリとして Docker 上で動作しますが、デモでは代表的な医療用品のサンプルデータを使って、在庫数チェック・最低在庫アラート・取引記録などの概念を試せます。まずデモで雰囲気をつかんでからインストールに進む、という使い方がおすすめです。

動かしてみた

実際にリポジトリの構成を確認すると、以下のファイルが存在することがわかりました。

./docker/docker-compose.yml
./docker/docker-compose-base.yml
./docker/docker-compose-remotedb.yml
./docker/.env.example
./build.gradle
./gradlew
./package.json
./webpack.config.js

Docker Compose ファイルが「標準」「ベース(開発用)」「リモート DB 接続用」の 3 パターン用意されており、環境に応じて柔軟に構成を選べる設計になっています。build.gradlegradlew(Gradle のラッパースクリプト)の存在から、Grails アプリとしてのビルド基盤がしっかり整っていることがわかります。package.jsonwebpack.config.js が含まれていることから、React ベースのフロントエンドもバックエンドと一体化された形で管理されているのが確認できます。全体的に、本番運用を想定した堅実な構成になっています。

はじめの一歩(実践のコツ)

初めて OpenBoxes を試すときは、次のポイントを意識するとスムーズに進められます。

  • 公式の Docker Compose をそのまま使う: docker/README.MD に詳細な手順が記載されています。まずはひな型ファイル(.env.example)をコピーして最小限の設定だけ変更すれば起動できます。
  • セットアップの順番を守る: Web UI のウィザードが起動したら、①管理者アカウントの作成 → ②製品カタログ(Product)の登録 → ③場所(Location)の設定 → ④在庫登録(Inventory)の順に進めると、最短で入出庫管理を始められます。
  • デモサイトで予習する: インストール前に demo.openboxes.com で操作感を確認しておくと、本番セットアップがスムーズになります。
  • 公式ドキュメントを手元に置く: docs.openboxes.com に管理者向けインストールガイドとユーザーガイドが整備されています。困ったときはまずここを参照しましょう。
  • 環境ごとに Compose ファイルを選ぶ: 開発・テスト用なら docker-compose-base.yml、既存のデータベースサーバーに接続するなら docker-compose-remotedb.yml を使うと設定がシンプルになります。

活用例

  • 途上国・低リソース現場での医療支援: ハイチ・シエラレオネ・ルワンダなどでの実運用実績があり、インフラが整っていない環境でも安定稼働します。薬品の有効期限管理や FEFO(先入先出)払い出し管理に強みを発揮し、期限切れ廃棄のロスを削減できます。
  • 病院・診療所の在庫デジタル化: 手書き台帳や Excel 管理からの移行先として活用できます。入出庫のたびに記録が自動で残るため、棚卸しの手間が大幅に減ります。
  • 研究機関・大学ラボの消耗品管理: 試薬・消耗品の在庫を部門横断で一元管理できます。ロット管理・発注点アラートが手作業を削減し、実験中に材料が切れるリスクを防ぎます。
  • フードバンク・社会福祉団体: 食品・日用品の在庫追跡と配布記録の管理に応用できます。「製品カテゴリ」を食品・衛生用品に設定するだけで転用可能で、寄付物資の受入から配布まで一貫して追跡できます。
  • 中小企業の倉庫管理コスト削減: 高額な商用 WMS の代替として、無償で本格的な倉庫管理機能を導入できます。Java/Groovy の知識があれば社内エンジニアが独自カスタマイズに対応しやすい構造です。
  • IT 学習・ポートフォリオ制作: Grails・React・Docker Compose を組み合わせた実践的な構成を学ぶ教材として活用できます。実際に世界で使われている OSS(オープンソースソフトウェア)を読み解くことで、設計の考え方を体感できます。

用語とポイント解説

OpenBoxes かんたんに言うと、医療現場のために作られた無料の在庫管理 Web ソフトです。薬品や医療消耗品の出入りを記録・追跡する機能を中心に、発注管理やレポート機能まで一通り備えています。世界中の医療機関や支援団体が実際に使っており、現場での信頼実績があります。

Docker / Docker Compose かんたんに言うと、アプリとその動作に必要なすべてをひとつの「箱」に詰めて動かす仕組みです。Docker はその「箱(コンテナ)」を作る土台で、Docker Compose は複数の箱(Web サーバー・データベースなど)を一度にまとめて起動・管理するツールです。「自分のパソコンでは動かない」という環境差異の問題を防ぎやすくなります。

Grails かんたんに言うと、Java 言語をベースにした Web アプリ開発フレームワーク(開発を楽にする道具セット)です。Groovy という言語で書かれており、「決まりごとに従えば設定を最小限にできる」という考え方を大切にしています。Java エンジニアにとって習得しやすく、OpenBoxes のバックエンド(サーバー側の処理)はこれで構築されています。

React かんたんに言うと、ブラウザ上の画面(UI)を作るための JavaScript ライブラリ(部品集)です。部品(コンポーネント)を組み合わせて画面を構成するため、複雑な操作画面も整理して作れます。OpenBoxes のフロントエンド(ユーザーが見る画面側)に使われています。

WMS(Warehouse Management System) かんたんに言うと、倉庫の中の物の動きを管理するシステムのことです。入荷・出荷・棚の場所・在庫数などをまとめて管理する機能を持ちます。OpenBoxes は医療用に設計されていますが、一般的な WMS としての機能も備えています。

FEFO(First Expired, First Out) かんたんに言うと、有効期限が早いものから先に出庫する管理方式です。「先入先出(FIFO)」に似ていますが、FEFO は入荷順ではなく期限の短い順で出庫します。薬品や食品など期限のある物の廃棄ロスを減らすために重要な考え方です。

REST API かんたんに言うと、ソフトウェア同士がインターネット経由でデータをやり取りするための「共通の話しかけ方」のルールです。OpenBoxes は REST API を公開しているため、他のシステム(会計ソフト・電子カルテなど)と連携させることができます。プログラムが得意な人なら、独自のツールから在庫データを取得・更新することも可能です。

Gradle かんたんに言うと、Java や Groovy のプログラムをビルド(コンパイルして動かせる形に変換する作業)するための自動化ツールです。gradlew(Gradle ラッパー)というファイルがあれば、Gradle 本体を別途インストールしなくても同じビルド環境を再現できます。OpenBoxes のリポジトリには build.gradlegradlew が含まれており、ビルド基盤として活用されています。

EPL 1.0(Eclipse Public License 1.0) かんたんに言うと、改変・再配布を認めるオープンソースライセンスのひとつです。コピーレフト型(改変したものも同じライセンスで公開する義務がある)で、商用利用も条件付きで許可されています。OpenBoxes を自社システムに組み込む場合は、ライセンス条件を確認した上で利用してください。

サプライチェーン管理 かんたんに言うと、商品が作られてから使われるまでの流れ(仕入れ・保管・配送・消費)全体を管理することです。医療分野では「薬が必要なときに必要な量だけある」状態を保つことが命に関わるため、サプライチェーン管理は特に重要視されています。OpenBoxes はこの一連の流れをデジタルで記録・可視化するために設計されています。


OpenBoxes は、現場の課題から生まれた実績ある OSS です。ぜひ医療機関やNGOでの薬品・消耗品管理、あるいは倉庫の入出庫デジタル化や研究ラボの試薬在庫追跡などに活用してみてはいかがでしょうか。