Next AI Draw.io
管理パネルすべてのページ

セルフホスト

管理パネル

管理パネルを使うと、.env を手で編集しなくても、Web ページでサーバーの設定を管理できます。このページでは、パネルを有効にする方法、パネルで変更できること、設定の保存場所を説明します。

パネルを有効にする

  1. 環境変数 ADMIN_PASSWORD を設定します。設定していない間は、パネルは無効です。
  2. /admin を開き、そのパスワードでログインします。

全ユーザーにモデルを提供する

「モデル」セクションで、プロバイダーを API キーとモデルの一覧と一緒に追加します。認証情報の入力欄は、アプリの設定の「モデル」タブと同じです。

保存したモデルは、全ユーザーが使えるサーバー側のモデルになります。リクエストの時点で、環境の AI_MODELS_CONFIG または ai-models.json とマージされます。パネルがこれらの環境ファイルを変更することはありません。

その他の設定を変更する

パネルのほかのセクションには、次の設定があります。

セクション設定する内容
応答の設定生成のパラメータです。AI の応答のしかたを決めます
アクセス権アクセスコード
オプション機能機能の切り替え
呼び出し記録モデルの呼び出しの記録(可観測性)
使用量の制限クォータ

保存した設定は設定ファイル(既定では data/settings.json)に書き込まれ、すぐに反映されます。再起動は不要です。ただし、Langfuse や DynamoDB の設定など一部の設定には「再起動が必要」と表示されます。これらはサーバーを再起動すると反映されます。

パネルで変更できるのは、パネルに表示される設定だけです。それ以外の変数は、パネルでは保存できません。次の変数は環境で設定してください。

  • NEXT_PUBLIC_* 変数。アプリのビルド時に固定されます
  • パネルを有効にする ADMIN_PASSWORD と、設定ファイルの場所を指定する SETTINGS_FILE
  • 各プロバイダーの推論と思考の設定。たとえば OPENAI_REASONING_EFFORT や ANTHROPIC_THINKING_BUDGET_TOKENS です
  • パネルに表示されないその他の変数。たとえば DEBUG_LLM_PAYLOAD や CLIENT_IP_HEADER です

どの値が使われるか

1 つの設定に、複数の場所で値があることがあります。アプリは次の順に探し、最初に見つかった値を使います。

  1. パネルで保存した値
  2. 環境変数
  3. 組み込みの既定値

パネルで保存した値を削除すると、ふたたび環境変数が使われます。

設定の保存場所

設定は、既定ではサーバーを起動したディレクトリの data/settings.json に保存されます。別の場所に保存するには、環境変数 SETTINGS_FILE にファイルのパスを設定します。

  • API キーなどのシークレットは、設定ファイルに平文で保存されます。このファイルのモードは 600 で、所有者だけが読み書きできます。このファイルは非公開にしてください。
  • どのホストでも、アプリが設定ファイルのディレクトリを作成できないか、そこに書き込めない場合、パネルは読み取り専用になります。このときパネルの上部にお知らせが表示され、入力欄と「変更を保存」ボタンは使えなくなります。アプリはこの確認を一度だけ行い、サーバーを再起動するまで結果を保持します。
  • Vercel や Cloudflare Workers などのサーバーレスプラットフォームには、ファイルを残しておけるディスクがないので、そこではパネルは読み取り専用です。これらの環境では、すべて環境変数で設定してください。

Docker で設定を残す

リポジトリの docker-compose.yml は、ホストの ./data ディレクトリをコンテナ内の /app/data にマウントします(./data:/app/data)。そのため、コンテナを入れ替えても、保存した設定は残ります。SETTINGS_FILE を設定する場合は、ファイルを /app/data の中に置いてください。

コンテナ内のアプリはユーザー nextjs(uid 1001)で動くので、このユーザーがディレクトリに書き込める必要があります。Linux では、./data がないと、Docker が root の所有でディレクトリを作成します。するとアプリが書き込めず、パネルは読み取り専用になります。コンテナを起動する前に、docker-compose.yml があるディレクトリで、正しい所有者のディレクトリを作成してください。

mkdir -p data
sudo chown 1001:1001 data

すでにこの理由でパネルが読み取り専用になっている場合は、chown コマンドを実行してから、コンテナを再起動してください。

GitHub でこのページを編集