Saltar al contenido
PentAGI
Despliegue

Producción

Ejecutar PentAGI para un equipo: hardening, aislamiento, Podman y varias instancias.

Lista de verificación

  • Configura todas las credenciales, incluida COOKIE_SIGNING_SALT, antes del primer inicio — consulta Seguridad. El instalador genera la sal y las contraseñas de los servicios, pero no las contraseñas de administrador de Langfuse y Grafana: configura LANGFUSE_INIT_USER_PASSWORD y password en la plantilla, antes de que Langfuse se inicie por primera vez, y cambia el admin / admin predeterminado de Grafana después de su primer inicio. En una instalación en ejecución, cambia las contraseñas de PostgreSQL y Neo4j dentro de las bases de datos antes de cambiarlas en .env.
  • Sirve un certificado real y un PUBLIC_URL estable.
  • Detrás de un proxy inverso, establece TRUSTED_PROXIES con la dirección o CIDR del proxy. De lo contrario, todos los usuarios comparten la dirección del proxy y 30 intentos de inicio de sesión fallidos en 5 minutos bloquean a todos durante 15 minutos.
  • Mueve la ejecución de tool a un worker node dedicado.
  • Habilita la observabilidad para que puedas seguir los costos y los fallos.
  • Mantén el knowledge graph y Langfuse en una red privada.

Podman

PentAGI se ejecuta tanto en Podman como en Docker. En modo rootless, el servicio scraper necesita configuración adicional porque los contenedores rootless no pueden enlazar puertos privilegiados; el README del repositorio describe las configuraciones rootless y rootful.

Varias instancias (TENANT_ID)

Deja TENANT_ID vacío para una instalación única y manténlo vacío en una existente: configurarlo más tarde mueve la instancia a un esquema nuevo y vacío que comienza con la cuenta [email protected] por defecto, y sus flows, usuarios y configuraciones ya no aparecen. Configúralo en las instancias que añadas cuando varias instancias de PentAGI compartan recursos externos como un servidor PostgreSQL, un worker node, un Neo4j o un Langfuse:

ÁreaEfecto de TENANT_ID=acme
PostgreSQLFunciona dentro del esquema acme en lugar de public
Contenedores workerCon nombre acme-pentagi-terminal-<flow>
Knowledge graphLos IDs de grupo se convierten en acme-flow-<id>
AutenticaciónLas claves de cookies y tokens incluyen el tenant
TelemetríaLos datos de Langfuse y OpenTelemetry se etiquetan con el tenant

El valor debe coincidir con ^[a-z][a-z0-9_]{0,31}$. Los recursos del host no tienen espacios de nombres aislados. Las instancias en un mismo servidor necesitan su propio DATA_DIR y puertos publicados. Las instancias cuyos sandboxes se ejecutan en el mismo host de Docker, ya sea en un servidor o en un worker node compartido, necesitan su propio DOCKER_PORTS_BASE y, si está configurado, su propio DOCKER_WORK_DIR; de lo contrario, sus sandboxes reclaman los mismos puertos y los flows no pueden iniciarse. Cada base inicia un rango de 2000 puertos, 28000 por defecto, así que usa por ejemplo 28000 y 30000.

Última actualización el