Vai al contenuto
PentAGI
Distribuzione

Produzione

Eseguire PentAGI per un team: hardening, isolamento, Podman e più istanze.

Checklist

  • Imposta tutte le credenziali, COOKIE_SIGNING_SALT inclusa, prima del primo avvio — vedi Sicurezza. L'installer genera il salt e le password dei servizi, ma non le password di amministrazione di Langfuse e Grafana: imposta LANGFUSE_INIT_USER_PASSWORD, password nel template, prima che Langfuse si avvii per la prima volta, e cambia le credenziali predefinite di Grafana admin / admin dopo il suo primo avvio. Su un'installazione in esecuzione, cambia le password di PostgreSQL e Neo4j all'interno dei database prima di cambiarle in .env.
  • Utilizza un certificato reale e un PUBLIC_URL stabile.
  • Dietro un reverse proxy, imposta TRUSTED_PROXIES sull'indirizzo o sul CIDR del proxy. Altrimenti ogni utente condivide l'indirizzo del proxy e 30 accessi falliti entro 5 minuti bloccano tutti per 15 minuti.
  • Sposta l'esecuzione dei tool su un worker node dedicato.
  • Abilita l'osservabilità per monitorare costi ed errori.
  • Mantieni il knowledge graph e Langfuse su una rete privata.

Podman

PentAGI funziona sia con Podman che con Docker. In modalità rootless, il servizio scraper richiede una configurazione aggiuntiva perché i container rootless non possono associarsi a porte privilegiate; il README del repository descrive le configurazioni rootless e rootful.

Più istanze (TENANT_ID)

Lascia TENANT_ID vuoto per un'installazione singola e mantienilo vuoto su un'installazione esistente: impostarlo in seguito sposta l'istanza in uno schema nuovo e vuoto che inizia con l'account [email protected] predefinito, e i suoi flow, utenti e impostazioni non appaiono più. Impostalo sulle istanze che aggiungi quando più istanze di PentAGI condividono risorse esterne come un server PostgreSQL, un worker node, un'istanza di Neo4j o di Langfuse:

AreaEffetto di TENANT_ID=acme
PostgreSQLOpera nello schema acme invece di public
Container workerDenominati acme-pentagi-terminal-<flow>
Knowledge graphGli ID di gruppo diventano acme-flow-<id>
AutenticazioneLe chiavi di cookie e token includono il tenant
TelemetriaI dati di Langfuse e OpenTelemetry sono etichettati con il tenant

Il valore deve corrispondere a ^[a-z][a-z0-9_]{0,31}$. Le risorse dell'host non sono isolate in namespace. Le istanze sullo stesso server necessitano del proprio DATA_DIR e delle proprie porte pubblicate. Le istanze i cui sandbox vengono eseguiti sullo stesso host Docker, su un server o su un worker node condiviso, necessitano del proprio DOCKER_PORTS_BASE e, se è impostato, del proprio DOCKER_WORK_DIR; altrimenti i loro sandbox reclamano le stesse porte e i flow non riescono ad avviarsi. Ogni base avvia una finestra di 2000 porte, 28000 per impostazione predefinita, quindi usa ad esempio 28000 e 30000.

Ultimo aggiornamento il