共有メモリモード

App supervisorEnterprise Edition+

紹介

業務をアプリ単位で分割したい一方で、複雑なデプロイ/運用構成を導入したくない場合は、共有メモリ型マルチアプリモードを利用できます。

このモードでは、1 つの NocoBase インスタンス内で複数アプリを同時に実行できます。各アプリは独立しており、独自 DB に接続でき、個別に作成・起動・停止できます。一方で同一プロセス/メモリ空間を共有するため、運用対象は 1 つの NocoBase インスタンスのみです。

利用ガイド

環境変数設定

マルチアプリ機能を使用する前に、NocoBase 起動時に次の環境変数が設定されていることを確認してください。

APP_DISCOVERY_ADAPTER=local
APP_PROCESS_ADAPTER=local

アプリ作成

システム設定メニューで「App Supervisor」をクリックし、アプリ管理ページに入ります。

「Add New」をクリックして新しいアプリを作成します。

設定項目

項目説明
表示名UI 上に表示されるアプリ名
アプリ IDグローバル一意のアプリ識別子
起動モード- 初回アクセス時に起動: URL で初めてアクセスしたときに起動
- メインアプリと同時に起動: メインアプリ起動時に同時起動(メインの起動時間は増加)
環境共有メモリモードでは local のみ利用可能
データベース接続メインデータソースを設定します。以下 3 方式をサポート:
- 新規データベース: 現在の DB サービスを再利用し、独立 DB を作成
- 新規データ接続: 他の DB サービスへ接続
- Schema モード: メインデータソースが PostgreSQL の場合、独立 Schema を作成
アップグレード接続先 DB に旧バージョンの NocoBase データがある場合、現行バージョンへの自動アップグレードを許可するか
JWT シークレット独立した JWT シークレットを自動生成し、メインアプリ/他アプリとセッションを分離
カスタムドメインアプリ専用のアクセスドメインを設定

アプリ起動

Start ボタンでアプリを起動します。

作成時に「初回アクセス時に起動」を選択した場合、初回アクセス時に自動で起動します。

アプリへのアクセス

Visit ボタンで新しいタブにアプリを開きます。

デフォルトでは /apps/:appName/admin/ でアクセスします。例:

http://localhost:13000/apps/a_7zkxoarusnx/admin/

また、専用ドメインも設定できます。ドメインを現在の IP に解決し、Nginx を使用している場合は Nginx 設定にもそのドメインを追加してください。

アプリ停止

Stop ボタンでアプリを停止します。

アプリ状態

一覧で各アプリの現在状態を確認できます。

アプリ削除

Delete ボタンでアプリを削除します。

FAQ

1. プラグイン管理

他アプリで利用できるプラグイン(およびバージョン)はメインアプリと同一ですが、設定と利用はアプリごとに分離されます。

2. データベース分離

他アプリは独立 DB を利用できます。アプリ間でデータ共有したい場合は、外部データソースを利用してください。

3. データバックアップと移行

現時点では、メインアプリのバックアップには他アプリのデータは含まれません(アプリ基本情報のみ)。他アプリのバックアップと移行は各アプリ内で個別に実施してください。

4. デプロイとアップグレード

共有メモリモードでは、他アプリのバージョンはメインアプリのバージョンに自動追従し、バージョン整合性が保たれます。

5. アプリセッション

  • アプリが独立 JWT シークレットを使う場合、セッションはメインアプリ/他アプリから分離されます。同一ドメイン配下のサブパスで複数アプリへアクセスすると、LocalStorage 上のトークン管理により切り替え時に再ログインが必要です。より良い分離のため、アプリごとに独立ドメインを推奨します。
  • 独立 JWT シークレットを使わない場合、メインアプリのセッションを共有します。同一ブラウザで再ログインなしに切り替えできますが、セキュリティリスクがあります。異なるアプリ間でユーザー ID が重複すると、越権アクセスが発生する可能性があります。