Naar inhoud springen
PentAGI
Implementatie

Productie

PentAGI draaien voor een team — hardening, isolatie, Podman en meerdere instanties.

Checklist

  • Stel alle inloggegevens in, inclusief COOKIE_SIGNING_SALT, voordat je voor het eerst start — zie Beveiliging. De installer genereert de salt en de service-wachtwoorden, maar niet de Langfuse- en Grafana-admin-wachtwoorden: stel LANGFUSE_INIT_USER_PASSWORD en password in de template in, voordat Langfuse voor het eerst start, en wijzig Grafana's standaard admin / admin na de eerste start. Op een draaiende installatie wijzig je de PostgreSQL- en Neo4j-wachtwoorden binnen de databases voordat je ze wijzigt in .env.
  • Gebruik een echt certificaat en een stabiele PUBLIC_URL.
  • Achter een reverse proxy stel je TRUSTED_PROXIES in op het adres of CIDR van de proxy. Anders delen alle gebruikers het adres van de proxy, en 30 mislukte aanmeldingen binnen 5 minuten blokkeren iedereen voor 15 minuten.
  • Verplaats de uitvoering van tools naar een speciale worker node.
  • Schakel observeerbaarheid in zodat je kosten en storingen kunt volgen.
  • Houd de knowledge graph en Langfuse op een privénetwerk.

Podman

PentAGI draait zowel op Podman als op Docker. In rootless-modus heeft de scraper-service extra configuratie nodig omdat containers zonder root-rechten geen bevoorrechte poorten kunnen binden; de README van de repository beschrijft de configuraties voor zowel rootless als met root-rechten.

Meerdere instanties (TENANT_ID)

Laat TENANT_ID leeg voor een enkele installatie en houd het leeg bij een bestaande: als je het later instelt, verhuist de instantie naar een nieuw, leeg schema dat begint met de standaard [email protected] account, en zijn flows, gebruikers en instellingen verschijnen niet meer. Stel het in op de instanties die je toevoegt wanneer meerdere PentAGI-instanties externe bronnen delen, zoals één PostgreSQL-server, één worker node, één Neo4j of één Langfuse:

GebiedEffect van TENANT_ID=acme
PostgreSQLWerkt binnen schema acme in plaats van public
Worker-containersHeten acme-pentagi-terminal-<flow>
Knowledge graphGroeps-id's worden acme-flow-<id>
AuthenticatieCookie- en tokensleutels bevatten de tenant
TelemetrieLangfuse- en OpenTelemetry-gegevens worden gelabeld met de tenant

De waarde moet overeenkomen met ^[a-z][a-z0-9_]{0,31}$. Hostbronnen zijn niet namespaced. Instanties op één server hebben hun eigen DATA_DIR en gepubliceerde poorten nodig. Instanties waarvan de sandboxes op dezelfde Docker-host draaien, op één server of een gedeelde worker node, hebben hun eigen DOCKER_PORTS_BASE nodig en, als deze is ingesteld, hun eigen DOCKER_WORK_DIR; anders claimen hun sandboxes dezelfde poorten en starten flows niet. Elke base start een venster van 2000 poorten, standaard 28000, gebruik dus bijvoorbeeld 28000 en 30000.

Laatst bijgewerkt op