# Produkce

> Provoz PentAGI pro tým — hardening, izolace, Podman a více instancí.

## [Kontrolní seznam](https://pentagi.com/cs/docs/deployment/production/#checklist)

* Nastavte všechna pověření, včetně `COOKIE_SIGNING_SALT`, před prvním spuštěním — viz [Zabezpečení](https://pentagi.com/cs/docs/configuration/security/). Instalátor generuje sůl a hesla služeb, ale ne hesla administrátora Langfuse a Grafana: nastavte `LANGFUSE_INIT_USER_PASSWORD`, `password` v šabloně před prvním spuštěním Langfuse a změňte výchozí `admin` / `admin` Grafany po jejím prvním spuštění. Na běžící instalaci změňte hesla PostgreSQL a Neo4j přímo v databázích dříve, než je změníte v `.env`.
* Použijte platný certifikát a stabilní `PUBLIC_URL`.
* Za reverzním proxy nastavte `TRUSTED_PROXIES` na adresu nebo CIDR proxy. V opačném případě všichni uživatelé sdílejí adresu proxy a 30 neúspěšných přihlášení během 5 minut zablokuje přístup všem na 15 minut.
* Přesuňte spouštění [tool](https://pentagi.com/cs/docs/glossary/#tool) na vyhrazený [worker node](https://pentagi.com/cs/docs/deployment/worker-node/).
* Povolte [observabilitu](https://pentagi.com/cs/docs/configuration/observability/), abyste mohli sledovat náklady a selhání.
* Udržujte [knowledge graph](https://pentagi.com/cs/docs/glossary/#knowledge-graph) a Langfuse v soukromé síti.

## [Podman](https://pentagi.com/cs/docs/deployment/production/#podman)

PentAGI funguje na Podmanu i na Dockeru. V režimu bez oprávnění root vyžaduje služba `scraper` dodatečnou konfiguraci, protože kontejnery bez oprávnění root nemohou svazovat privilegované porty; README repozitáře popisuje nastavení s oprávněním root i bez něj.

## [Více instancí (`TENANT_ID`)](https://pentagi.com/cs/docs/deployment/production/#several-instances-tenant_id)

Pro samostatnou instalaci ponechte `TENANT_ID` prázdné a na existující instalaci jej také ponechte prázdné: jeho pozdější nastavení přesune instanci do nového, prázdného schématu, které začíná s výchozím účtem `admin@pentagi.com`, a její [flow](https://pentagi.com/cs/docs/glossary/#flow), uživatelé a nastavení se již nezobrazují. Nastavte jej u instancí, které přidáváte, pokud několik instancí PentAGI sdílí externí prostředky, například jeden server PostgreSQL, jeden [worker node](https://pentagi.com/cs/docs/glossary/#worker-node), jednu instanci Neo4j nebo Langfuse:

| Oblast              | Vliv `TENANT_ID=acme`                                |
| ------------------- | ---------------------------------------------------- |
| PostgreSQL          | Funguje ve schématu `acme` namísto `public`          |
| Pracovní kontejnery | Pojmenovány jako `acme-pentagi-terminal-<flow>`      |
| Knowledge graph     | ID skupin se změní na `acme-flow-<id>`               |
| Autentizace         | Klíče cookies a tokenů zahrnují tenanta              |
| Telemetrie          | Data Langfuse a OpenTelemetry jsou označena tenantem |

Hodnota musí odpovídat `^[a-z][a-z0-9_]{0,31}$`. Prostředky hostitele nejsou odděleny jmennými prostory. Instance na jednom serveru potřebují vlastní `DATA_DIR` a publikované porty. Instance, jejichž [sandboxes](https://pentagi.com/cs/docs/glossary/#sandbox) běží na stejném Docker hostu, na jednom serveru nebo sdíleném worker node, potřebují vlastní `DOCKER_PORTS_BASE` a, pokud je nastaven, vlastní `DOCKER_WORK_DIR`; v opačném případě si jejich sandboxes nárokují stejné porty a flow se nepodaří spustit. Každá base zahajuje okno 2000 portů, ve výchozím nastavení `28000`, takže použijte například `28000` a `30000`.