# Zabezpečení

> Přihlašovací údaje, HTTPS, přihlášení a síťová expozice instalace PentAGI.

## [Změna výchozích nastavení](https://pentagi.com/cs/docs/configuration/security/#change-the-defaults)

Čerstvá instalace vytvoří místního administrátora `admin@pentagi.com` s heslem `admin`, které je nutné změnit při prvním přihlášení. Pokud heslo zapomenete, údržbové menu instalátoru jej obnoví, pokud účet stále používá adresu `admin@pentagi.com`.

Tyto hodnoty nastavte v `.env` před prvním spuštěním; instalátor pro vás vygeneruje sůl a hesla. PostgreSQL a Neo4j přijímají své přihlašovací údaje pouze při vytváření svých datových svazků, takže jejich pozdější změna přeruší připojení:

| Proměnná                                             | Účel                                                                                                   |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| `COOKIE_SIGNING_SALT`                                | Podepisuje relační cookies a API tokeny — nastavte náhodnou hodnotu                                    |
| `PENTAGI_POSTGRES_USER`, `PENTAGI_POSTGRES_PASSWORD` | Přihlašovací údaje k PostgreSQL                                                                        |
| `NEO4J_PASSWORD`                                     | Heslo k Neo4j pro [knowledge graph](https://pentagi.com/cs/docs/glossary/#knowledge-graph); `NEO4J_USER` musí zůstat `neo4j` |
| `PUBLIC_URL`                                         | URL, kterou uživatelé otevírají, například `https://pentagi.example.com`                               |

Na běžící instalaci nejprve změňte heslo k databázi v PostgreSQL nebo Neo4j a poté v `.env`.

## [HTTPS](https://pentagi.com/cs/docs/configuration/security/#https)

PentAGI poskytuje HTTPS na portu 8443 s certifikátem podepsaným samým sebou. Chcete-li použít vlastní certifikát, nastavte `SERVER_SSL_CRT` a `SERVER_SSL_KEY` a připojte soubory do `docker-compose.yml`.

## [Uživatelé a přihlášení](https://pentagi.com/cs/docs/configuration/security/#users-and-sign-in)

Registrační formulář není k dispozici. Administrátoři spravují místní uživatele prostřednictvím Users API (`/api/v1/users/`) z přihlášené relace prohlížeče — API token zde obdrží chybu 403 — a role omezují, co může každý uživatel zobrazit a měnit. Místní uživatelé mění svůj e-mail a heslo v sekci **Settings → Account**.

Pokud je nakonfigurováno přihlášení přes GitHub nebo Google, přihlášení, jehož e-mail ověřený poskytovatelem odpovídá existujícímu účtu (včetně místních účtů), se přihlásí k tomuto účtu s jeho rolí; jakékoli jiné přihlášení získá nový účet s výchozí uživatelskou rolí. Každá instalace začíná s administrátorem `admin@pentagi.com`, takže jej před povolením přihlašování přesuňte na adresu, kterou ovládáte, v části **Settings → Account**, a povolte jej pouze tam, kde jsou nové účty přijatelné, například u aplikace Google Workspace omezené na vaši doménu.

Přihlášení přes GitHub a Google je dostupné prostřednictvím OAuth. Zaregistrujte aplikaci se zpětným voláním `${PUBLIC_URL}/api/v1/auth/login-callback` a přidejte její přihlašovací údaje:

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

## [Vystavení do sítě](https://pentagi.com/cs/docs/configuration/security/#network-exposure)

Ve výchozím nastavení naslouchá webové rozhraní PentAGI pouze na `127.0.0.1`. Chcete-li k němu přistupovat z jiných počítačů:

```bash
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
```

V `PUBLIC_URL` a `CORS_ORIGINS` použijte skutečnou adresu, nikdy ne `0.0.0.0`. Kontejnery znovu vytvořte pomocí `docker compose up -d --force-recreate` a otevřete port 8443 ve firewallu.

Za reverzní proxy nastavte `TRUSTED_PROXIES` na adresu nebo CIDR proxy, oddělené čárkami. V opačném případě se každý požadavek bude jevit jako pocházející z proxy a limit přihlášení na adresu – 30 neúspěšných pokusů během pěti minut, následovaných 15minutovým uzamčením – budou sdílet všichni uživatelé.

Každý [sandbox](https://pentagi.com/cs/docs/glossary/#sandbox) kontejner [flow](https://pentagi.com/cs/docs/glossary/#flow) také publikuje dva porty pro out-of-band callbacky, například pro reverse shelly. Tyto porty pocházejí z rozsahu 2000 portů začínajících na `DOCKER_PORTS_BASE` (výchozí `28000`) a jsou navázány na `DOCKER_PUBLIC_IP`, což je adresa, kterou agenti také poskytují cílům pro zpětné volání.

Ve výchozím nastavení je `DOCKER_PUBLIC_IP` nastaveno na `0.0.0.0`: porty naslouchají na každém rozhraní hostitele Dockeru a agenty si svou veřejnou adresu vyhledávají samy. Nastavte konkrétní adresu pouze v případě, že ji hostitel vlastní a cíle se k ní mohou připojit; za NAT ponechte výchozí hodnotu. Porty, které Docker publikuje, obcházejí pravidla ufw a firewalld na hostiteli, takže omezte rozsah pomocí firewallu před hostitelem, například cloudové bezpečnostní skupiny, nebo pomocí pravidel v řetězci `DOCKER-USER` aplikace Docker.

`PROXY_URL` směruje volání backendu k poskytovatelům modelů, poskytovateli vektorových reprezentací, rozhraním API pro vyhledávání a kontrole aktualizací prostřednictvím proxy serveru, což pomáhá izolovat instalaci od externích sítí. Samoobslužné koncové body, jako jsou Ollama, vLLM nebo SearXNG, jím procházejí také, protože neexistuje žádná výjimka `NO_PROXY`, takže proxy server musí mít možnost je dosáhnout. Kontejnery sandboxu flow, kde agenti spouštějí své příkazy, scraper, který otevírá webové stránky pro nástroj prohlížeče, a služba Graphiti jej nepoužívají, proto omezte jejich odchozí provoz na úrovni sítě. Přihlašování přes GitHub nebo Google a volání koncového bodu Langfuse nebo OpenTelemetry mimo dodávané stacky jej rovněž nepoužívají a démon Docker stahuje obrazy s vlastním nastavením proxy serveru.

## [Kontrola aktualizací](https://pentagi.com/cs/docs/configuration/security/#update-check)

Během dvou minut od spuštění a poté každé tři hodiny se server dotazuje `update.pentagi.com`, zda je k dispozici novější sestavení. Požadavek obsahuje ID instalace, licenční klíč, pokud je nastaven, verzi a platformu a souhrn instalace: nakonfigurovaný provider a typy přihlášení, několik přepínačů funkcí, počty uživatelů, flow, [task](https://pentagi.com/cs/docs/glossary/#task), kontejnerů, promptů, tokenů API a [tool call](https://pentagi.com/cs/docs/glossary/#tool-call) a celkové součty tokenů a nákladů podle typu provider — žádná jména, adresy, prompty ani obsah flow. `UPDATE_CHECK_INTERVAL=0` tuto funkci vypne. Při každém spuštění instalátoru a po každé akci, kterou provede, jako jsou Apply Changes, Update, Start nebo Stop, odešle nainstalované obrazy a stav každého stacku a během běhu PentAGI také stejný souhrn; `UPDATE_CHECK_INTERVAL` jej neovlivňuje.

> [!WARNING]
> Kontejner `pentagi` běží pod uživatelem root, protože spravuje kontejnery prostřednictvím socketu Docker. Pro silnější izolaci spusťte [tools](https://pentagi.com/cs/docs/glossary/#tool) na samostatném [worker node](https://pentagi.com/cs/docs/deployment/worker-node/).