---
title: "ToolJetとは：OSSの社内ツール基盤をDocker Composeで建てる手順とAppsmithとの選び分け"
url: "https://www.issoh.co.jp/tech/details/19108/"
published: 2026-10-31
updated: 2026-10-31
categories: ["自動化"]
publisher: "株式会社一創"
---

# ToolJetとは：OSSの社内ツール基盤をDocker Composeで建てる手順とAppsmithとの選び分け

ToolJetは、PostgreSQLやREST APIにつないだ承認画面・在庫照会・顧客管理などの社内ツールを、画面部品の配置とSQL・JavaScript・Pythonのクエリで組み立てるオープンソースのローコード基盤です。この記事では2026年10月31日時点の公式情報をもとに、データの置き場所とイメージの種類、作る人の数で決まる料金とセルフホスト無料版の上限、公式のComposeファイルで自社サーバに建てる手順を順に確認します。パラメータ付きSQLとWebhookのリクエスト例を示したうえで、Appsmith・Budibase・Retoolとの選び分けを言い切ります。

## まとめ：ToolJetは作る人の課金と頻繁なLTS更新を前提に選ぶAGPLの基盤

ToolJetが向くのは、既存のデータベースやAPIの上に、作る人が少数で使う人が数十人規模の社内ツールを載せる案件です。SQLとJavaScriptに加えてPythonでもクエリを書けるため、データ加工の多い画面を少ない手数で作れます。課金は作る人（Builder）の人数が基準で、セルフホストの無料版は作る人2人・使う人50人・アプリ10本までと料金表に書かれています。

自社サーバに建てるときは、公式のComposeを取得したまま起動しないでください。イメージのタグが可変の`ee-lts-latest`で、80番ポートがHTTPのまま外に開き、サインアップも閉じていない設定です。版の固定、ポートの限定、サインアップの停止を済ませたうえで、10日で6本出ることもあるLTS版の修正に追従する運用を組みます。動くのはx86のサーバだけで、arm64のサーバには載りません。

## ToolJetの定義とToolJet Database・外部データソースで画面を組む仕組み

ToolJetでは、データソースを登録する、クエリを書く、画面部品にクエリの結果を結びつける、の3段で社内ツールを作ります。最初に決めるのはデータの置き場所です。

### PostgreSQLのToolJet Databaseと90以上の外部データソースの選択

[ToolJet Databaseの説明](https://docs.tooljet.com/docs/tooljet-db/tooljet-database/)によると、内蔵のデータベースは準備なしで他のデータソースと同じようにクエリでき、SQLエディタで直接SQLも書けます。テーブル間の関連付けには外部キーを使う構成です。実体はToolJetが使うPostgreSQLの中の別データベースで、[環境変数のページ](https://docs.tooljet.com/docs/setup/env-vars/)は、APIでの読み書きにPostgREST v12.2.0を使うと明記しています。

既に業務データがあるなら、外部のデータソースとして登録します。[GitHubのREADME](https://github.com/ToolJet/ToolJet)は90以上のデータソースに対応するとし、PostgreSQL・MySQL・MongoDB・REST API・GraphQL・Google Sheetsなどが並びます。基幹システムの正本を内蔵DBへ写すと二重管理になるため、正本が外にあるデータは外部接続で扱い、内蔵DBは画面側だけで完結する補助データに限るのが原則です。

### AGPL-3.0の本体とEEイメージ・CEイメージで分かれる配布の形

リポジトリの[LICENSEファイル](https://github.com/ToolJet/ToolJet/blob/main/LICENSE)はAGPL-3.0です。AGPLは、改変したToolJetをネットワーク越しに他者へ使わせるとき、改変後のソースの提供を求めます。社内で改変せずに使う限り、この義務が問題になる場面はまずありません。[GitHubのリポジトリ](https://github.com/ToolJet/ToolJet)のスター数は、2026年10月31日時点で41,151件でした。

配布されるイメージは、次に示す2種類です。公式のComposeが使う`tooljet/tooljet`（EE）と、[Docker Hubのtooljet-ce](https://hub.docker.com/r/tooljet/tooljet-ce/tags)（CE）で、どちらにも`v3.20.252-lts`のタグが付いています。READMEはワークフロー機能をCEではなくToolJet AI（有償版）側の機能として挙げています。ワークフローを使う予定があるなら、公式どおりEEイメージを選んでください。

## ToolJetの料金体系と作る人の課金・セルフホスト無料版の上限

ToolJetの課金は、作る人の人数に、使う人の上限とAIクレジットの量を組み合わせた形です。クラウド版とセルフホスト版で使える機能が違います。

### Cloud版Free・Basic・Pro・Teamの月額とBuilder単位の数え方

[公式の料金ページ](https://tooljet.com/pricing)で2026年10月31日に確認した値です。月額はいずれも作る人1人あたりで、年払いの割引を適用した表示です。

| プラン        | Cloud版の月額 | セルフホスト版の月額 | 使う人の上限 | アプリ数 |
| ---------- | --------- | ---------- | ------ | ---- |
| Free       | $0        | $0         | 50人    | 10本  |
| Basic      | $23       | なし         | 50人    | 10本  |
| Pro        | $79       | なし         | 50人    | 10本  |
| Team       | $199      | $199       | 100人   | 無制限  |
| Enterprise | 要相談       | 要相談        | 無制限    | 無制限  |

Teamの購入画面では、年払いが月$199、月払いが月$249と表示されます。監査ログ、カスタムのユーザーグループ、GitSync、開発・本番のような環境の分離は、Team以上の機能です。使う人が100人を超えるとEnterpriseの見積もりになるため、全社員に配る申請ツールでは費用が人数で跳ねます。ローコード製品のライセンス費と開発費の総額の考え方は、[ローコード開発の費用相場](https://www.issoh.co.jp/column/details/16320/)で整理しています。

### セルフホストFreeの作る人2人・使う人50人・アプリ10本という上限

セルフホストの無料版は、サーバ代以外の費用がかかりません。ただし料金表には、作る人2人、使う人50人、アプリ10本の上限が書かれています。[ユーザーロールのページ](https://docs.tooljet.com/docs/user-management/role-based-access/user-roles/)は、Admin・Builder・End-userの3つのロールが課金の計算に使われると説明しています。

ワークフローはクラウド版では使えず、セルフホスト版だけの機能です。料金表ではセルフホストの全プランで実行回数が無制限ですが、定時起動のスケジューラーはTeam以上に限られます。部署ごとに作る人が3人以上いる、または夜間バッチをToolJetで回したい案件は、無料版の範囲を超えます。AGPLのCEイメージに同じ人数の上限が掛かるかは、2026年10月31日時点で公式に明記がありません。導入前に試用環境で、想定人数の利用者を登録できるか確かめてください。

## 公式Composeとinternal.shでToolJetを自社サーバに建てる手順

公式の[Docker Composeの手順](https://docs.tooljet.com/docs/setup/docker/)には、PostgreSQLを同じComposeで動かす方式と、RDSなど外部のPostgreSQLを使う方式があります。ここでは前者で、本番に出す前に必要な変更を加えた手順を示します。

### x86限定・メモリ4GBから始めるシステム要件とPostgreSQL 16の推奨

[システム要件のページ](https://docs.tooljet.com/docs/setup/system-requirements/)によると、ToolJetのイメージは64ビットのx86のLinuxで動き、arm64は非対応です。Docker Hubのタグも`amd64`だけで、AWSのGravitonやApple SiliconのMacにはそのまま載りません。Windowsは直接の対象外で、仮想マシンかWSL2を使います。

ToolJet本体の最小は1 vCPU・メモリ4GB・ディスク8GiBです。PostgreSQLは16.x系が推奨で、目安は2 vCPU・8GB・20GB以上とされています。同じサーバに両方を載せるなら、メモリ12GB級のx86インスタンスから見積もると要件に沿います。ワーカーを分けて複数台で動かす場合は、外部のRedis 7.x系が必須です。

### internal.shが生成する秘密情報と版固定・ポート制限の設定手順

公式の`internal.sh`は、`.env`の空欄を埋めるスクリプトです。データソースの認証情報を暗号化する`LOCKBOX_MASTER_KEY`、セッションCookieを暗号化する`SECRET_KEY_BASE`、PostgREST用の`PGRST_JWT_SECRET`をopensslで生成し、DBのパスワードは入力するかEnterで自動生成します。次の手順は、その後に版とポートとサインアップの設定を変えてから起動します。

```
# 公式ファイルを取得する（PostgreSQL 16 を同じ Compose で動かす方式）
mkdir tooljet && cd tooljet
BASE=https://tooljet-deployments.s3.us-west-1.amazonaws.com/docker
curl -fsSL -o docker-compose.yaml "$BASE/docker-compose-db.yaml"
curl -fsSL -o .env "$BASE/.env.internal.example"
curl -fsSLO "$BASE/internal.sh" && chmod +x internal.sh
mkdir postgres_data
./internal.sh   # 秘密情報3つと DB パスワードを .env に書き込む

# 可変タグをやめて LTS の版に固定する
sed -i 's|tooljet/tooljet:ee-lts-latest|tooljet/tooljet:v3.20.252-lts|' docker-compose.yaml
# 80 番をサーバ自身に限り、前段の Nginx などで HTTPS を終端する
sed -i 's|- 80:80|- 127.0.0.1:8080:80|' docker-compose.yaml
# 公開 URL と、招待した人だけが登録できる設定
sed -i 's|^TOOLJET_HOST=.*|TOOLJET_HOST=https://tooljet.example.co.jp|' .env
sed -i 's|^DISABLE_SIGNUPS=.*|DISABLE_SIGNUPS=true|' .env

docker compose up -d
```

Composeは`${PWD}/postgres_data`をPostgreSQLの保存先にするため、必ず取得したディレクトリで起動します。`LOCKBOX_MASTER_KEY`は接続情報の暗号鍵なので、`.env`はDBのバックアップと一緒に別の場所へ退避してください。`DISABLE_SIGNUPS=true`にすると、登録画面は見えたまま招待された人しか登録できなくなります。権限とアカウントの棚卸しの考え方は、[ローコード開発のセキュリティリスクと対策](https://www.issoh.co.jp/column/details/16321/)も参考になります。

### CVE-2026-55413を踏まえたLTS版の追従と更新前の2つのDBの退避

2026年6月に公開された[CVE-2026-55413](https://github.com/ToolJet/ToolJet/security/advisories/GHSA-jgmf-cw3v-r98x)は、Builderロールの利用者がマーケットプレイスのプラグインを書き換え、インスタンス全体でサーバ上のコードを実行できる深刻度criticalの欠陥でした。影響版は3.20.169-lts以前で、3.20.178-ltsで修正されています。勧告はワークスペースの作成者が既定でBuilderになると書いており、誰でも登録できる状態のまま公開すると危険が大きくなります。

10月には、サインアップを無効にしてもAPIから登録できてしまう[GHSA-gwr6-mv6v-23f2](https://github.com/ToolJet/ToolJet/security/advisories/GHSA-gwr6-mv6v-23f2)が3.20.242-ltsで直りました。LTSの版は[v3.20.252-lts](https://github.com/ToolJet/ToolJet/releases/tag/v3.20.252-lts)（10月30日）まで、10月21日から10日間で6本出ています。少なくとも月1回は最新のLTSに上げる運用を前提にしてください。公式の更新手順は、アプリ用の`PG_DB`と内蔵DB用の`TOOLJET_DB`の両方をバックアップしてから、`docker compose down`、イメージのタグの書き換え、`docker compose up -d`の順です。

## 既存DBへのパラメータ付きSQLとWebhookで処理を動かす設定例

社内ツールの中身は、既存DBへのクエリと、外部からの処理の起動でほぼ決まります。どちらも書き方を誤ると、情報漏えいや二重実行の原因になります。

### PostgreSQLデータソースで名前付きパラメータを使うSQLの書き方

[PostgreSQLの接続ページ](https://docs.tooljet.com/docs/data-sources/postgresql/)によると、SQLモードでは値を入れたい位置に`:parameter_name`の形のプレースホルダを書き、パラメータ欄で値を渡します。次は、画面で選んだ部署の承認待ち申請を新しい順に取る例です。

```
-- 承認待ちの経費申請を、画面で選んだ部署だけに絞って取得する
SELECT id, applicant, amount, created_at
FROM expense_requests
WHERE status = 'pending'
  AND department = :department
ORDER BY created_at DESC
LIMIT 50;
```

パラメータ欄にはキー`department`、値`{{ components.departmentSelect.value }}`を設定します。同じ値をSQL本文に`{{ }}`で直接埋め込むと、入力値が文字列としてSQLに連結されるため、パラメータ方式に統一してください。接続に使うDBユーザーはToolJet専用に作り、画面が読むテーブルへの権限だけを与えます。自社サーバ版なら、DB側ではToolJetのサーバのIPだけを許可すれば足ります。

### trigger-asyncでワークフローを外部から起動するcurlのリクエスト例

[ワークフロー](https://docs.tooljet.com/docs/workflows/overview/)は、ToolJetのDB操作・JavaScript・ループ・条件分岐などのノードを線でつなぐ自動処理です。[Webhookでの起動](https://docs.tooljet.com/docs/workflows/triggers/webhook/)では、Bearerトークンによる認証を必ず設定します。次は、別の業務システムから申請データを渡して非同期で起動する例です。

```
# 申請データを渡してワークフローを非同期で起動する
curl -s -X POST \
  "https://tooljet.example.co.jp/api/v2/webhooks/workflows/${WORKFLOW_ID}/trigger-async?environment=${TJ_ENV}" \
  -H "Authorization: Bearer ${TJ_WORKFLOW_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"name": "山田太郎", "emp_id": 33}'
```

同期の`/trigger`は処理の完了まで応答を待つため、時間のかかる処理は`/trigger-async`で受けます。応答の実行IDを、`/status/`のエンドポイントに渡すと進み具合を確認できます。送った値の読み取り先は、ワークフロー内の`startTrigger.params`です。トークンと環境名は、Webhook設定の「Copy as cURL」で正しい値を写すのが確実です。既定では60秒あたり100件を超える呼び出しが抑止されるため、一括処理は1件ずつ叩かず、配列で渡してループのノードで回してください。

## ToolJet採用条件とAppsmith・Budibase・Retool・コード製の選定軸

同じG8グループで扱った社内アプリ基盤と並べると、ToolJetの持ち味はPythonのクエリとワークフローを自社サーバで持てる点にあります。採る場面と見送る場面を分けて示します。

### Pythonのクエリと少人数の作り手が効く案件でToolJetを採る判断基準

ToolJetを選ぶのは、次の条件が2つ以上当てはまる案件です。1つ目は、既存のDBやAPIが正本で、その上に照会・更新の画面を載せたい場合です。2つ目は、集計や整形をPythonで書きたい担当者がいる場合で、ToolJet社の[Appsmithとの比較ページ](https://tooljet.com/tooljet-vs-appsmith)もPythonのクエリをToolJet側だけの機能に挙げています。3つ目は、作る人が少なく使う人が100人以内に収まり、作る人の課金で費用が読める場合です。

Webhookで外部から処理を起動し、承認や通知を画面と同じ基盤で回したい業務も、セルフホストのToolJetの得意な範囲です。要件の整理から画面とワークフローの構築、既存システムとの接続までをまとめて任せたい場合は、[ノーコード・ローコードアプリ開発](https://www.issoh.co.jp/service/apps/nocode/)として相談いただけます。

### arm64のサーバや大人数の利用でToolJetを見送る場面と代替の比較表

ToolJetを選ばないのは、arm64のサーバしか使えない環境、使う人が数百人規模でTeamの上限を超える業務、社外の顧客が使う画面です。代替は次の表で選びます。

| 状況                        | ToolJetの扱い | 代替の候補             |
| ------------------------- | ---------- | ----------------- |
| Apache-2.0基盤で既存DBの管理画面を作る | 比較して決める    | Appsmith          |
| DBが無く使う人を人数無制限で増やしたい      | 見送り        | Budibase          |
| 運用をクラウドに任せ完成度を取りたい        | 見送り        | Retool            |
| arm64のサーバしか使えない           | 見送り        | Appsmith・Budibase |
| 社外の顧客に使わせる画面              | 見送り        | React-admin等のコード製 |

AGPLを避けたい、または全員課金のほうが安い構成なら、Apache-2.0の[Appsmith](https://www.issoh.co.jp/tech/details/19058/)と並べて試作してください。正本のDBが無く、セルフホスト無料版で人数を気にせず配りたいなら[Budibase](https://www.issoh.co.jp/tech/details/19071/)が合います。運用を任せたいなら[Retool](https://www.issoh.co.jp/tech/details/18669/)、社外向けや長期の作り込みなら[React-admin](https://www.issoh.co.jp/tech/details/3609/)や[Refine](https://www.issoh.co.jp/tech/details/2979/)のようにコードで書く管理画面を選びます。

## よくある質問：ToolJetの無料範囲・Mac対応・データの保存先・AI機能

ToolJetの導入検討でよく出る質問に、2026年10月31日時点の公式情報をもとに答えます。

### ToolJetは無料で使えますか？

使えます。クラウド版とセルフホスト版の両方にFreeがあり、料金表では作る人2人、使う人50人、アプリ10本までです。AIクレジットは月100で、追加購入はできません。セルフホスト版はワークフローの実行回数に上限がない一方、定時起動のスケジューラーと監査ログはTeam以上です。サーバ代と更新作業の手間は自社の負担になる点も見込んでください。

### ToolJetはApple SiliconのMacやarm64のサーバで動きますか？

公式には動きません。システム要件のページはx86の64ビットだけを対象とし、arm64は非対応と明記しています。Docker HubのイメージもEE版・CE版ともに`amd64`だけで、公式のComposeは`platform: linux/amd64`を指定しています。検証用も本番用も、x86のサーバかx86の仮想マシンを用意してください。

### ToolJetで作ったアプリのデータはどこに保存されますか？

アプリの定義やユーザー情報は、ToolJetが使うPostgreSQLの`PG_DB`に入ります。ToolJet Databaseに入れた業務データは、同じPostgreSQLの`TOOLJET_DB`に保存されます。セルフホストなら自社サーバ、クラウド版ならToolJet社のサーバです。外部のPostgreSQLやAPIにつないだデータは元の場所に残り、ToolJetは読み書きの窓口になります。

### ToolJetのAI機能はセルフホストでも使えますか？

使えますが、外への通信が要ります。Docker Composeの手順のページによると、AI機能を使う場合は`api-gateway.tooljet.ai`と`python-server.tooljet.ai`への通信を許可する必要があります。AIクレジットはFreeで月100、Teamで作る人1人あたり月3,000で、繰り越しはありません。閉じたネットワークで動かすなら、AI機能を使わない前提で画面を設計してください。

### ToolJetとAppsmithはどちらを選べばよいですか？

ライセンスと課金の数え方で選びます。ToolJetはAGPL-3.0で作る人の人数に課金し、AppsmithはApache-2.0です。ToolJet社の比較ページでは、AppsmithのBusinessは使う人も含めた全員への課金とされています。作る人が少なく使う人が多い構成ならToolJet、AGPLを避けたい会社やarm64で動かしたい場合はAppsmithが候補です。どちらもDockerで建てられるので、要件の画面を1つずつ試作して比べるのが確実です。

## 関連記事

- [Appsmithとは？OSSの社内アプリビルダーをDockerで建てる手順とRetoolとの選び分け](https://www.issoh.co.jp/tech/details/19058/)：Apache-2.0の比較先で、課金とライセンスの違いを確認できます
- [Budibaseとは：OSSの社内アプリ基盤をDocker Composeで建てる手順とデータ接続の設計](https://www.issoh.co.jp/tech/details/19071/)：内蔵DBと自動化を1つで持つ別のOSSです
- [Retoolとは？社内管理画面を短期間で作る構成とDB直結の権限設計、内製の限界](https://www.issoh.co.jp/tech/details/18669/)：クラウドで運用を任せる商用基盤との違いが分かります
- [ローコードツールとは？用途別の比較と選定基準・スクラッチ開発との使い分けを解説](https://www.issoh.co.jp/column/details/15348/)：ToolJetを含むツール選定の前提を整理しています
- [ローコード開発のセキュリティリスクと対策｜権限設計・野良アプリ・発注時の確認項目](https://www.issoh.co.jp/column/details/16321/)：DB接続ユーザーと野良アプリの管理に役立ちます

---

出典: [ToolJetとは：OSSの社内ツール基盤をDocker Composeで建てる手順とAppsmithとの選び分け](<https://www.issoh.co.jp/tech/details/19108/>)（株式会社一創）
