Zum Inhalt springen
PentAGI
Konfiguration

Sicherheit

Anmeldedaten, HTTPS, Anmeldung und Netzwerkanbindung einer PentAGI-Installation.

Standardwerte ändern

Eine Neuinstallation erstellt den lokalen Administrator [email protected] mit dem Passwort admin, das bei der ersten Anmeldung geändert werden muss. Falls das Passwort verloren geht, setzt es das Wartungsmenü des Installers zurück, solange das Konto noch die Adresse [email protected] verwendet.

Legen Sie diese Werte in .env vor dem ersten Start fest; der Installer generiert den Salt und die Passwörter für Sie. PostgreSQL und Neo4j übernehmen ihre Anmeldedaten nur bei der Erstellung ihrer Datenvolumes, sodass eine spätere Änderung die Verbindung unterbricht:

VariableZweck
COOKIE_SIGNING_SALTSigniert Session-Cookies und API-Tokens — setzen Sie einen zufälligen Wert
PENTAGI_POSTGRES_USER, PENTAGI_POSTGRES_PASSWORDPostgreSQL-Anmeldedaten
NEO4J_PASSWORDNeo4j-Passwort für den Knowledge Graph; NEO4J_USER muss neo4j bleiben
PUBLIC_URLDie URL, die Benutzer aufrufen, zum Beispiel https://pentagi.example.com

Ändern Sie bei einer laufenden Installation zuerst ein Datenbankpasswort in PostgreSQL oder Neo4j und anschließend in .env.

HTTPS

PentAGI stellt HTTPS auf Port 8443 mit einem selbstsignierten Zertifikat bereit. Um Ihr eigenes zu verwenden, setzen Sie SERVER_SSL_CRT und SERVER_SSL_KEY und binden Sie die Dateien in docker-compose.yml ein.

Benutzer und Anmeldung

Es gibt kein Registrierungsformular. Administratoren verwalten lokale Benutzer über die Users-API (/api/v1/users/) aus einer angemeldeten Browsersitzung heraus — ein API-Token erhält dort einen 403-Fehler — und Rollen beschränken, was jeder Benutzer sehen und ändern darf. Lokale Benutzer ändern ihre eigene E-Mail-Adresse und ihr Passwort unter Settings → Account.

Wenn die Anmeldung über GitHub oder Google konfiguriert ist, meldet sich eine Anmeldung, deren vom Anbieter verifizierte E-Mail-Adresse mit einem bestehenden Konto übereinstimmt (einschließlich lokaler Konten), bei diesem Konto mit seiner Rolle an; jede andere Anmeldung erhält ein neues Konto mit der Standardbenutzerrolle. Jede Installation beginnt mit dem Administrator [email protected], verschieben Sie ihn daher unter Settings → Account auf eine Adresse, die Sie kontrollieren, bevor Sie die Anmeldung aktivieren, und aktivieren Sie sie nur dort, wo neue Konten akzeptabel sind, beispielsweise mit einer Google Workspace-App, die auf Ihre Domain beschränkt ist.

Die Anmeldung über GitHub und Google ist via OAuth verfügbar. Registrieren Sie eine App mit dem Callback ${PUBLIC_URL}/api/v1/auth/login-callback und fügen Sie deren Anmeldedaten hinzu:

PUBLIC_URL=https://pentagi.example.com
OAUTH_GITHUB_CLIENT_ID=your_github_client_id
OAUTH_GITHUB_CLIENT_SECRET=your_github_client_secret

Netzwerkzugriff

Standardmäßig lauscht die PentAGI-Weboberfläche nur auf 127.0.0.1. Um von anderen Rechnern darauf zuzugreifen:

PENTAGI_LISTEN_IP=0.0.0.0
PENTAGI_LISTEN_PORT=8443
PUBLIC_URL=https://192.168.1.100:8443
CORS_ORIGINS=https://localhost:8443,https://192.168.1.100:8443

Verwenden Sie die tatsächliche Adresse in PUBLIC_URL und CORS_ORIGINS, niemals 0.0.0.0. Erstellen Sie die Container mit docker compose up -d --force-recreate neu und öffnen Sie Port 8443 in der Firewall.

Hinter einem Reverse-Proxy setzen Sie TRUSTED_PROXIES auf die Adresse oder das CIDR des Proxys, durch Kommas getrennt. Andernfalls scheint jede Anfrage vom Proxy zu kommen, und das Anmelde-Limit pro Adresse – 30 fehlgeschlagene Versuche in fünf Minuten, dann eine 15-minütige Sperrung – wird von allen Nutzern gemeinsam genutzt.

Jeder Sandbox-Container eines Flow veröffentlicht außerdem zwei Ports für Out-of-Band-Callbacks, beispielsweise für Reverse Shells. Sie stammen aus den 2000 Ports, die bei DOCKER_PORTS_BASE beginnen (Standard 28000) und an DOCKER_PUBLIC_IP gebunden sind, die Adresse, die die Agents auch Zielen für Rückrufe angeben.

Standardmäßig ist DOCKER_PUBLIC_IP auf 0.0.0.0 eingestellt: Die Ports lauschen auf allen Schnittstellen des Docker-Hosts, und die Agents ermitteln ihre öffentliche Adresse selbst. Legen Sie nur dann eine spezifische Adresse fest, wenn der Host diese Adresse besitzt und die Ziele sie erreichen können; hinter NAT behalten Sie den Standardwert bei. Von Docker veröffentlichte Ports umgehen ufw- und firewalld-Regeln auf dem Host, schränken Sie den Bereich daher mit einer Firewall vor dem Host ein, beispielsweise einer Cloud-Sicherheitsgruppe, oder mit Regeln in der DOCKER-USER-Kette von Docker.

PROXY_URL leitet die Aufrufe des Backends an Modell-Provider, den Embedding-Provider, Such-APIs und die Update-Prüfung über einen Proxy weiter, was hilft, die Installation von externen Netzwerken zu isolieren. Selbst gehostete Endpunkte wie Ollama, vLLM oder SearXNG laufen ebenfalls darüber, da es keine NO_PROXY-Ausnahme gibt; der Proxy muss sie daher erreichen können. Die Sandbox-Container der Flows, in denen die Agents ihre Befehle ausführen, der Scraper, der Webseiten für das Browser-Tool öffnet, und der Graphiti-Dienst verwenden ihn nicht; beschränken Sie daher deren ausgehenden Datenverkehr auf Netzwerkebene. Die Anmeldung mit GitHub oder Google sowie Aufrufe an einen Langfuse- oder OpenTelemetry-Endpunkt außerhalb der gebündelten Stacks verwenden ihn ebenfalls nicht, und der Docker-Daemon lädt Images mit seinen eigenen Proxy-Einstellungen herunter.

Update-Prüfung

Innerhalb von zwei Minuten nach dem Start und dann alle drei Stunden fragt der Server update.pentagi.com, ob ein neuerer Build verfügbar ist. Die Anfrage enthält die Installations-ID, den Lizenzschlüssel, falls einer gesetzt ist, die Version und Plattform sowie eine Zusammenfassung der Installation: den konfigurierten Provider und die Anmeldearten, einige Feature-Schalter, die Anzahl der Benutzer, Flows, Tasks, Container, Prompts, API-Tokens und Tool Calls sowie die Token- und Kostensummen pro Providertyp – keine Namen, Adressen, Prompts oder Flow-Inhalte. UPDATE_CHECK_INTERVAL=0 schaltet dies ab. Bei jedem Start des Installers und nach jeder ausgeführten Aktion, wie Apply Changes, Update, Start oder Stop, sendet dieser die installierten Images und den Status jedes Stacks sowie dieselbe Zusammenfassung, solange PentAGI läuft; UPDATE_CHECK_INTERVAL hat darauf keinen Einfluss.

Der Container pentagi läuft als Root, da er Container über den Docker-Socket verwaltet. Für eine stärkere Isolation führen Sie die Tools auf einem separaten Worker Node aus.

Zuletzt aktualisiert am