LASSIC Media らしくメディア
ToolJetで社内業務アプリをセルフホスト外注
LASSIC IT事業部|元請(プライムベンダー)としてシステム保守・運用を受託
この記事のポイント
- ToolJetは、ドラッグ&ドロップでUI画面を組み立てられるOSSの低コード開発基盤で、AGPL-3.0ライセンスのもと無料でセルフホストできます。
- 80以上のデータソース接続と60以上のUIコンポーネントを備え、社内の管理画面・ダッシュボード・CRUDツールを内製しやすい設計になっています。
- Docker構築や環境変数設定、バックアップ運用には専門知識が求められるため、内製と外注のどちらで進めるかを費用構造とリスクの両面から判断する必要があります。
目次
ToolJetとは?OSSの低コード開発基盤の特徴
ToolJetとは、ドラッグ&ドロップの操作でUI画面を組み立て、社内向けの管理画面・ダッシュボード・CRUDツールを短期間で内製できる、オープンソースの低コード開発プラットフォームです。公式ドキュメントでは「AI-powered apps, built with AI」というキャッチフレーズが掲げられており、GitHubで開発が公開され誰でも貢献できる体制が取られています*1。GitHub公式リポジトリでは2026年7月時点で3.8万件を超えるスターを獲得しており、AGPL-3.0(GNU Affero General Public License v3.0)ライセンスの下で「ToolJet Solutions Inc」により提供されています*4。
社内の情シス部門や業務部門では、Excel運用の限界や、外部SaaSでは細かな要件に対応しきれない管理画面のニーズが積み重なりがちです。ToolJetは、こうした小回りの利く業務アプリを自社サーバー上で構築するために開発されたプラットフォームで、文書データや業務データを外部のクラウドサービスへ送信せず、自社の環境に閉じたまま運用できる設計になっています*1。SaaS型の業務アプリ作成ツールと比べ、ライセンス費用が発生しない点はコスト最適化を検討するうえで無視できない要素と言えるでしょう。一方で、構築・運用を自社で担うか外部に委託するかという別の判断が新たに発生します。
UI画面を組み立てるApp Builderとデータ管理の仕組み
ドラッグ&ドロップで組み立てるApp Builder
App Builderは、ドラッグ&ドロップのインターフェースとあらかじめ用意されたコンポーネントを組み合わせて画面を設計する中核機能です*1。公式GitHubリポジトリによれば、コミュニティ版(CE)だけで60以上のレスポンシブなUIコンポーネントが用意されており、ボタン・テーブル・フォーム・グラフといった業務アプリでよく使う部品を一から実装する必要がありません*4。複数ページのアプリ作成や、複数人での同時編集にも対応しています*4。
画面上の部品にはJavaScriptやPythonのコードを組み込むこともでき、条件分岐や入力値の加工といった細かな挙動を追加できます*4。定型的な管理画面であれば標準コンポーネントの組み合わせだけで完結し、独自の業務ロジックが必要な箇所だけコードで補うという使い分けが可能です。
PostgreSQLベースのToolJet DatabaseとWorkflows
ToolJet Databaseは、PostgreSQLを基盤にしたデータ管理機能で、専用のUIエディタから表形式でデータを編集できます*1。外部データベースを別途用意しなくても、業務アプリに必要なマスタデータやトランザクションデータを同じ環境内で保持できる点が特徴です。
Workflowsは、複数の処理を順序立てて自動実行する仕組みで、業務プロセスの自動化や、定型作業の一括処理を組み立てる際に使われます*1。App Builderで作った画面からWorkflowsを呼び出す構成にすれば、入力から後続処理までを1つのアプリ内で完結させることもできるでしょう。
80以上のデータソース接続とコミュニティ版・Enterprise版の違い
ToolJetのコミュニティ版(CE)は、80以上のデータソースへの接続に対応しており*4、社内で使われているデータベースやAPI、外部サービスと連携したアプリを組みやすい構成になっています。Docker・Kubernetesをはじめ複数の方法でセルフホストできる点もCEの特徴です*4。
一方、「ToolJet AI」と呼ばれるEnterprise版では、CEの全機能に加えて、自然言語によるアプリ生成(AI App Generation)・AIによるクエリ作成支援(AI Query Builder)・AIデバッグ・Agent Builderといった機能や、SOC 2対応・GDPR対応・監査ログ・エンタープライズサポートが追加されます*4。GitSyncやマルチ環境管理、SSOといった機能もEnterprise向けの構成として案内されています*1。無料のセルフホスト版を検討する際は、必要な機能がCEに含まれるのか、Enterprise版でなければ使えない機能なのかを、導入前に公式情報で確認しておく必要があるでしょう。
Dockerでセルフホスト構築する標準的な手順
内蔵PostgreSQLで構築する4ステップ
公式ドキュメントは、内蔵PostgreSQLを使う構成でのDocker構築手順を案内しています*3。第一に、公式が配布するdocker-compose-db.yamlをダウンロードしてdocker-compose.yamlという名前に変更し、データ保存用のpostgres_dataディレクトリを作成します。第二に、.env.internal.exampleと自動生成スクリプトinternal.shを取得し、ファイル名を.envに変更したうえでスクリプトを実行します*3。
このスクリプトは、LOCKBOX_MASTER_KEY・SECRET_KEY_BASE・PostgreSQLのパスワードといった値を自動で生成します*3。第三に、docker-compose up -dでコンテナを起動すると環境が立ち上がります*3。手作業で秘密鍵を用意する必要がない分、初期構築の負担は抑えやすい設計と言えるでしょう。
TOOLJET_HOSTなど必須の環境変数設定
公式ドキュメントは、TOOLJET_HOSTという環境変数の設定を必須としています。この値は「http://」または「https://」から始まる必要があり、公開するIPアドレスやドメインに合わせて指定します*3。この設定を誤ると、社内から正しくアクセスできない事態につながりかねません。
Workflowsを複数ワーカーで処理させたい場合や、外部のRedisを使いたい場合は、WORKER・TOOLJET_WORKFLOW_CONCURRENCYといった環境変数をdocker-compose.ymlに、REDIS_HOST・REDIS_PORT・REDIS_USER・REDIS_PASSWORDを.envに追加します*3。既定ではHTTP/HTTPS用にポート80が外部公開され、Redisは内部通信用にポート6379を使う構成です*3。
バックアップとアップグレードの運用
バックアップについて、公式ドキュメントはbackup-restore.shというスクリプトを配布しています*3。このスクリプトを取得して実行権限を付与し実行することで、バックアップを取得できますが、対応するのは内蔵PostgreSQLを使う構成のみと明記されています*3。外部のマネージドデータベースを使う構成では、別途そのデータベース側のバックアップ手段を用意する必要があります。
アップグレードは、docker compose downでコンテナを一度停止し、docker-compose.yml内のイメージタグを最新のLTSバージョンへ書き換えたうえで、docker compose up -dにより再起動する流れです*3。バージョンをまたぐ更新では、公式ドキュメントに記載されたマイグレーションやv3への変更点といった注意事項を事前に確認しておくことが欠かせません*2。業務データを扱う以上、更新前のバックアップ取得を運用ルールとして固定しておくとよいでしょう。
セルフホスト内製と外注委託のコスト構造比較
セルフホストによる内製構築と、外部パートナーへの委託では、費用構造・必要スキル・リスク対応の重心が異なります。以下の表に主な違いを整理しました。
| 比較項目 | セルフホスト内製 | 外注委託 |
|---|---|---|
| ライセンス費用 | AGPL-3.0の無料ソフトウェアのため、CE利用であればライセンス費用は発生しません*4 | ソフトウェア自体は無料ですが、構築・保守を委託する分の費用が発生します |
| 必要な専門知識 | Docker運用・環境変数設計・データソース連携・権限設計の知見が必要です*3 | 専門パートナーが構築・調整を担うため、社内での知識習得は最小限で済みます |
| バックアップ・データ保全 | backup-restore.shの実行やDBの運用を自社で設計・実行します*3 | バックアップ設計から監視までを含めて委託できます |
| アップグレード対応 | バージョン間の変更点を確認しながら自社で作業します*2 | 動作検証を含めて委託先が対応します |
AGPL-3.0ライセンスと商用利用時に確認すべき点
ToolJetのコミュニティ版は、AGPL-3.0(GNU Affero General Public License v3.0)のもとで公開されています*4。AGPL-3.0は、ソースコードを一般に公開して自由な利用・改変・再頒布を認める一方、ネットワーク経由でソフトウェアを提供する場合の取り扱いについて、より一般的なGPLとは異なる条件が定められている点が知られています。社内の管理画面として使うだけであれば通常の利用の範囲に収まりますが、ToolJet自体を改変して第三者向けのサービスとして提供するような使い方を検討する場合は、ライセンス条文を確認したうえで、必要に応じて法務担当者や専門家に相談することが望ましいでしょう。
ToolJet Solutions Incが著作権を保有していることも公式リポジトリに明記されています*4。導入にあたっては、CEとEnterprise版とで適用されるライセンス条件が異なる可能性も踏まえ、契約前に公式情報で最新の条件を確認する姿勢が求められます。
内製構築に必要なスキルと外注との違い
情シス部門だけで完結させる難しさ
ToolJetを内製で構築・運用する場合、求められる専門知識は複数分野にまたがります。Dockerコンテナの運用、TOOLJET_HOSTをはじめとする環境変数の設計、社内システムやAPIとのデータソース連携、Workflowsを使った業務プロセスの自動化設計がその内容です。自社の情報システム部門だけでこれらを完結させるには、複数の担当者が連携する体制を整える必要があるでしょう。
判断を先延ばしにしたまま自己流で構築を進めると、環境変数の設定漏れやバックアップ未設計といった問題に後から気づくケースが生じます。特にCEとEnterprise版で機能範囲が異なる点を把握しないまま導入を進めると、必要な機能が使えないという事態に陥りかねません*4。
専門パートナーに委託した場合の違い
専門パートナーに依頼すると、Docker環境の構築からデータソース連携、Workflowsの設計、バージョンアップ時の動作検証まで一連の工程を任せられます。自社では構成検討や動作検証だけで時間がかかる場面でも、複数の低コード開発基盤を扱ってきた知見を活用すれば、稼働までの期間を圧縮しやすくなります。内製と外注のどちらでも、まずは対象業務の要件整理とデータソースの棚卸しが出発点と言えるでしょう。
まとめ:ToolJetセルフホスト活用の3つの判断軸
本稿ではToolJetの機能とセルフホスト構築の要点を、公式ドキュメントとGitHubリポジトリの情報に基づいて整理しました。要点は次の3つに集約されるでしょう。第一に、App Builder・ToolJet Database・Workflowsによる業務アプリの内製は、AGPL-3.0の無料OSSであるコミュニティ版で実現でき、80以上のデータソースにも対応しています*4。第二に、Docker運用・環境変数設計・バックアップ運用には専門知識が必要であり、CEとEnterprise版の機能範囲にも注意が必要です*3。第三に、AGPL-3.0特有のライセンス条件を踏まえた使い方の検討が必要な場面もあり、構築・運用の判断と実行は外部委託によってリスクを抑えやすくなります*4。
よくある質問
ToolJetは無料で商用利用できますか。
はい、コミュニティ版はAGPL-3.0ライセンスのOSSであり、ソースコードは無料で利用・改変できます*4。商用環境で使う場合も、ネットワーク経由での提供に関する条件等、AGPL-3.0特有の取り扱いを確認したうえで運用することが大切です。
ToolJetの構築にはどのくらいの専門知識が必要ですか。
Dockerでのコンテナ管理、TOOLJET_HOSTなど環境変数の設定、データソース連携やバックアップ設計など複数分野の知識が求められます*3。構成によっては複数ワーカーやRedisの設定も必要になります*3。
無料のセルフホスト版でもAI機能は使えますか。
自然言語によるアプリ生成やAIクエリ作成支援といったAI機能は、Enterprise版「ToolJet AI」の追加機能として案内されています*4。無料のコミュニティ版で使える機能かどうかは、導入前に公式情報で確認しておく必要があります。
既存のデータベースやAPIと連携できますか。
コミュニティ版は80以上のデータソースへの接続に対応しており*4、社内のデータベースや外部APIと連携したアプリを組みやすい構成になっています。具体的な接続対象は公式ドキュメントで確認することをおすすめします。
バックアップやアップグレードはどう行いますか。
内蔵PostgreSQLを使う構成では、公式が配布するbackup-restore.shでバックアップを取得できます*3。アップグレードはコンテナを停止し、イメージタグを更新してから再起動する流れです*3。
著者:テレリモ総研編集部 鈴木 亮佑
ご不明な点はお問い合わせフォームからもご連絡いただけます。
- *1 出典:ToolJet公式ドキュメント「Docs Home」(https://docs.tooljet.com/docs/)
- *2 出典:ToolJet公式ドキュメント「Setup」(https://docs.tooljet.com/docs/setup/)
- *3 出典:ToolJet公式ドキュメント「Docker」(https://docs.tooljet.com/docs/setup/docker)
- *4 出典:ToolJet公式GitHubリポジトリ「README/LICENSE」(https://github.com/ToolJet/ToolJet)