跳至主要內容
PentAGI
部署

生產環境

為團隊執行 PentAGI — 強化、隔離、Podman 與多個執行個體。

檢查清單

  • 在首次啟動前設定所有憑證,包括 COOKIE_SIGNING_SALT — 請參閱安全性。安裝程式會產生 salt 與服務密碼,但不會產生 Langfuse 和 Grafana 管理員密碼:請在 Langfuse 首次啟動前,於範本中設定 LANGFUSE_INIT_USER_PASSWORD、password,並在 Grafana 首次啟動後變更其預設的 admin / admin。在已運行的安裝環境中,請先在資料庫內變更 PostgreSQL 與 Neo4j 密碼,再於 .env 中變更。
  • 使用真實憑證與穩定的 PUBLIC_URL。
  • 若位於反向代理後方,請將 TRUSTED_PROXIES 設為該代理的位址或 CIDR。否則所有使用者將共用該代理位址,導致 5 分鐘內累積 30 次登入失敗時,所有人皆會被鎖定 15 分鐘。
  • 將 tool 執行移至專用的 worker node。
  • 啟用可觀測性,以便您追蹤成本與失敗情況。
  • 將 knowledge graph 與 Langfuse 置於私有網路中。

Podman

PentAGI 可在 Podman 及 Docker 上執行。在無根模式下,scraper 服務需要額外設定,因為無根容器無法綁定特權連接埠;儲存庫 README 中說明了無根與有根模式的設定方式。

多個實例 (TENANT_ID)

單一安裝時請將 TENANT_ID 留空,並在現有安裝上保持其為空:稍後設定此值會將實例移至一個新的、空的 schema,該 schema 會以預設的 [email protected] 帳戶開始,而其 flow、使用者和設定將不再顯示。當多個 PentAGI 實例共用外部資源(例如一部 PostgreSQL 伺服器、一個 worker node、一個 Neo4j 或一個 Langfuse)時,請在您新增的實例上設定此值:

領域TENANT_ID=acme 的影響
PostgreSQL在 acme 結構描述內運作,而非 public
工作容器命名為 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 會開啟一個 2000 個連接埠的區間,預設從 28000 開始,因此例如可使用 28000 與 30000。

最後更新於