Zum Inhalt springen
PentAGI
Bereitstellung

Produktion

PentAGI für ein Team betreiben – Härtung, Isolation, Podman und mehrere Instanzen.

Checkliste

  • Legen Sie alle Zugangsdaten, einschließlich COOKIE_SIGNING_SALT, vor dem ersten Start fest — siehe Sicherheit. Der Installer generiert das Salt und die Dienstpasswörter, aber nicht die Langfuse- und Grafana-Admin-Passwörter: Legen Sie LANGFUSE_INIT_USER_PASSWORD, password in der Vorlage fest, bevor Langfuse zum ersten Mal startet, und ändern Sie nach dem ersten Start von Grafana dessen Standard-admin / admin. Ändern Sie bei einer laufenden Installation die PostgreSQL- und Neo4j-Passwörter innerhalb der Datenbanken, bevor Sie sie in .env ändern.
  • Verwenden Sie ein echtes Zertifikat und einen stabilen PUBLIC_URL.
  • Hinter einem Reverse-Proxy setzen Sie TRUSTED_PROXIES auf die Adresse oder das CIDR des Proxys. Andernfalls teilen sich alle Nutzer die Adresse des Proxys, und 30 fehlgeschlagene Anmeldungen innerhalb von 5 Minuten sperren jeden für 15 Minuten aus.
  • Verlegen Sie die Tool-Ausführung auf einen dedizierten Worker Node.
  • Aktivieren Sie Observability, um Kosten und Fehler nachverfolgen zu können.
  • Halten Sie den Knowledge Graph und Langfuse in einem privaten Netzwerk.

Podman

PentAGI läuft sowohl auf Podman als auch auf Docker. Im Rootless-Modus benötigt der Dienst scraper eine zusätzliche Konfiguration, da Rootless-Container keine privilegierten Ports binden können; das README des Repositorys beschreibt die Rootless- und Rootful-Setups.

Mehrere Instanzen (TENANT_ID)

Lassen Sie TENANT_ID für eine einzelne Installation leer, und behalten Sie den leeren Wert auch bei einer bestehenden Installation bei: Wenn Sie ihn später setzen, wird die Instanz in ein neues, leeres Schema verschoben, das mit dem Standard-[email protected]-Konto beginnt, und ihre Flows, Benutzer und Einstellungen sind nicht mehr sichtbar. Setzen Sie den Wert bei den Instanzen, die Sie hinzufügen, wenn mehrere PentAGI-Instanzen externe Ressourcen wie einen PostgreSQL-Server, einen Worker Node, eine Neo4j- oder eine Langfuse-Instanz gemeinsam nutzen:

BereichAuswirkung von TENANT_ID=acme
PostgreSQLArbeitet im Schema acme statt public
Worker-ContainerWerden als acme-pentagi-terminal-<flow> benannt
Knowledge GraphGruppen-IDs werden zu acme-flow-<id>
AuthentifizierungCookie- und Token-Schlüssel enthalten den Tenant
TelemetrieLangfuse- und OpenTelemetry-Daten werden mit dem Tenant gekennzeichnet

Der Wert muss mit ^[a-z][a-z0-9_]{0,31}$ übereinstimmen. Host-Ressourcen sind nicht namespaced. Instanzen auf einem Server benötigen ihre eigenen DATA_DIR und veröffentlichten Ports. Instanzen, deren Sandboxes auf demselben Docker-Host laufen, auf einem Server oder einem gemeinsamen Worker Node, benötigen ihren eigenen DOCKER_PORTS_BASE und, falls dieser gesetzt ist, ihren eigenen DOCKER_WORK_DIR; andernfalls beanspruchen ihre Sandboxes dieselben Ports und Flows können nicht gestartet werden. Jede Basis startet ein Fenster von 2000 Ports, standardmäßig bei 28000, verwenden Sie daher zum Beispiel 28000 und 30000.

Zuletzt aktualisiert am