生产环境
为团队运行 PentAGI——加固、隔离、Podman 及多实例部署。
检查清单
- 在首次启动前设置所有凭据,包括
COOKIE_— 请参阅安全。安装程序会生成盐值和服务密码,但不会生成 Langfuse 和 Grafana 管理员密码:请在 Langfuse 首次启动前,在模板中设置SIGNING_ SALT LANGFUSE_、INIT_ USER_ PASSWORD password,并在 Grafana 首次启动后更改其默认admin/admin。对于正在运行的安装,请先在数据库中更改 PostgreSQL 和 Neo4j 密码,然后再在.env中更改它们。 - 使用正式证书并提供稳定的
PUBLIC_。URL - 在反向代理后面,将
TRUSTED_设置为代理的地址或 CIDR。否则,所有用户将共享代理的地址,且在 5 分钟内出现 30 次失败的登录尝试会导致所有人被锁定 15 分钟。PROXIES - 将 tooltool — 工具智能体执行操作所用的手段:终端、隔离浏览器或网络搜索等内置功能,或沙箱中的程序,例如 nmap、metasploit 或 sqlmap。 执行迁移到专用的 worker node。
- 启用可观测性,以便您跟踪成本和故障情况。
- 将 knowledge graphknowledge graph — 知识图谱启用此可选功能后,PentAGI 在测试期间构建的主机、服务、漏洞及其之间访问关系的图谱。它展示了发现项之间的关联。 和 Langfuse 部署在私有网络中。
Podman
PentAGI 既可在 Docker 上运行,也可在 Podman 上运行。在无根模式下,scraper 服务需要额外配置,因为无根容器无法绑定特权端口;仓库的 README 中描述了无根和有根模式的设置方法。
多实例(TENANT_ ID)
对于单实例安装,请将 TENANT_ 留空;在现有安装中也请保持其为空:稍后设置该值会将实例迁移到一个新的、空的 schema,该 schema 以默认的 [email protected] 账户开始,其原有的 flowflow — 流程PentAGI 的一次运行:一个目标、根据您的消息创建的任务,以及智能体在此过程中执行的所有操作。、用户和设置将不再显示。当多个 PentAGI 实例共享外部资源(例如同一个 PostgreSQL 服务器、同一个 worker nodeworker node — 工作节点运行智能体工具容器的独立服务器,因此它们运行的命令永远不会触及主 PentAGI 主机。、同一个 Neo4j 或同一个 Langfuse)时,请在您添加的实例上设置该值:
| 领域 | TENANT_ 的影响 |
|---|---|
| PostgreSQL | 在模式 acme 内运行,而非 public |
| 工作容器 | 命名为 acme-pentagi-terminal-<flow> |
| Knowledge graph | 组 ID 变为 acme-flow-<id> |
| 认证 | Cookie 和令牌密钥包含 tenanttenant — 租户一个 PentAGI 安装实例。当多个安装实例共享外部资源(例如同一个 PostgreSQL 数据库)时,您添加的每个实例都会获得自己的 TENANT_ID;现有安装实例则保持为空。 信息 |
| 遥测 | Langfuse 和 OpenTelemetry 数据会标记 tenant 信息 |
该值必须与 ^[a-z][a-z0-9_ 匹配。主机资源未进行命名空间隔离。同一台服务器上的实例需要拥有自己的 DATA_ 和发布端口。sandboxsandbox — 沙箱智能体运行其工具的隔离 Docker 容器。界面中将其显示为 Terminal。 运行在同一 Docker 主机(无论是单台服务器还是共享的 worker node)上的实例,需要拥有自己的 DOCKER_,以及自己的 DOCKER_(如果已设置);否则,它们的 sandbox 会占用相同的端口,导致 flow 无法启动。每个 base 开启一个 2000 个端口的窗口,默认为 28000,因此例如可使用 28000 和 30000。
最后更新于