コンテンツへスキップ
PentAGI
デプロイ

本番環境

チーム向けにPentAGIを運用 — 堅牢化、分離、Podman、および複数インスタンス。

チェックリスト

  • 初回起動前に、COOKIE_SIGNING_SALT を含むすべての認証情報を設定してください — セキュリティを参照してください。インストーラーはソルトとサービスパスワードを生成しますが、LangfuseおよびGrafanaの管理者パスワードは生成しません。Langfuseが最初に起動する前に、テンプレートで LANGFUSE_INIT_USER_PASSWORD と password を設定し、Grafanaの初回起動後にデフォルトの admin / admin を変更してください。稼働中のインストールでは、.env で変更する前に、データベース内でPostgreSQLとNeo4jのパスワードを変更してください。
  • 正式な証明書と安定した PUBLIC_URL を提供してください。
  • リバースプロキシの背後では、TRUSTED_PROXIES をプロキシのアドレスまたは CIDR に設定してください。そうしないと、すべてのユーザーがプロキシのアドレスを共有することになり、5 分以内に 30 回のサインイン失敗が発生すると、全員が 15 分間ロックアウトされます。
  • Tool の実行を専用の worker node に移動してください。
  • コストや障害を追跡できるよう、可観測性を有効にしてください。
  • Knowledge graph と Langfuse はプライベートネットワーク上に配置してください。

Podman

PentAGI は Docker だけでなく Podman でも動作します。Rootless モードでは、特権ポートをバインドできないため scraper サービスに追加の設定が必要です。リポジトリの README に Rootless および Rootful のセットアップ手順が記載されています。

複数インスタンス(TENANT_ID)

単一インストールの場合は TENANT_ID を空のままにしてください。既存のインスタンスでも空のままにしてください:後から設定すると、インスタンスはデフォルトの [email protected] アカウントで始まる新しい空のスキーマに移動され、その flow、ユーザーおよび設定は表示されなくなります。複数の PentAGI インスタンスが 1 つの PostgreSQL サーバー、1 つの worker node、1 つの Neo4j、または 1 つの Langfuse といった外部リソースを共有する場合に、追加するインスタンスで設定します:

領域TENANT_ID=acme の効果
PostgreSQLpublic ではなくスキーマ acme 内で動作します
ワーカーコンテナ名前が acme-pentagi-terminal-<flow> になります
Knowledge graphグループ ID が acme-flow-<id> になります
認証Cookie とトークンのキーに tenant が含まれます
テレメトリLangfuse と OpenTelemetry のデータに tenant のタグが付与されます

値は ^[a-z][a-z0-9_]{0,31}$ と一致する必要があります。ホストリソースはネームスペース化されません。同一サーバー上のインスタンスには、それぞれ独自の DATA_DIR と公開ポートが必要です。sandbox が同じ Docker ホスト(同一サーバー上または共有 worker node 上)で実行されるインスタンスには、それぞれ独自の DOCKER_PORTS_BASE と、設定されている場合は独自の DOCKER_WORK_DIR が必要です。これらを設定しない場合、sandbox が同じポートを確保しようとし、flow の開始に失敗します。各 base はデフォルトで 28000 から始まる2000ポートの範囲を開始するため、例えば 28000 や 30000 を使用してください。

最終更新日