# Air-gapped nasazení (https://docs.vitrinka.ai/cs/security/airgap)



## Přepínač [#switch]

Veřejné integrace vypnete při startu přesným nastavením `AIR_GAP=1`: poskytovatele e-mailu, Telegram, GitHub, AI kanál a AI backend (`EVE_*`, `AI_BACKEND_*`), spravovanou AI, Plane, Stripe, web push, hlášení chyb do Sentry a exportér trasování OTLP. Vypne se i kontrola uniklých hesel, náhledy karet odkazů a stahování dokumentů metadat client ID při přihlášení MCP; jednotné přihlášení přijde o veřejný internet. Server vymaže jejich nastavení a vypíše do logu, co vypnul. Při jiné hodnotě zůstává přepínač vypnutý; překlep nezastaví start serveru. Síťové oddělení vyžaduje také firewall a správné adresy interních služeb.

## Co záměrně zůstává [#stays]

| Dostupné                                                                           | Proč                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| S3 a sidecar pro snímky obrazovky                                                  | Míří na vaše vlastní endpointy ve vaší vlastní síti.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| SMTP                                                                               | Interní SMTP server zůstává dostupný například pro obnovu hesla. Použijte `SMTP_*` místo klíče externího poskytovatele.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Konektory na trackery (Jira, Plane), AI backend workspace a AI endpoint organizace | Nastavené proti vašemu vlastnímu trackeru nebo modelu — ale někam dosáhne jen ten, který uložila pravomoc nad instalací ([Odchozí cíle](/cs/operator/connectors#outbound)), a i ten jen na interní adresu: loopback, privátní (RFC 1918, ULA), link-local, CGNAT nebo třídu E, nikdy na endpoint cloudových metadat nebo přihlašovacích údajů jako `169.254.169.254`. Jeho HTTP klient prověří každou adresu, na kterou se hostitel přeloží, takže URL `atlassian.net` v air-gapped instalaci dostane odmítnutí, ne timeout firewallu; cíl, který uložil běžný admin, je odmítnut rovnou, stejně jako poskytovatelé AI hostovaní dodavatelem, předplatné ChatGPT a Claude a základní URL, která jmenuje hostitele dodavatele. |
| Jednotné přihlášení (OIDC)                                                         | `AIR_GAP=1` samo nic neotevře a veřejný internet odebere: SSO dosáhne jen na poskytovatele identity uvnitř interních rozsahů, které vyjmenuje `VITRINKA_SSO_PRIVATE_NETWORKS`, a jen u připojení, které uložila pravomoc nad instalací; jakékoli jiné připojení nedosáhne nikam ([poskytovatel identity ve vaší síti](/cs/security/identity#sso-network)). Rozsah v seznamu mimo interní síť (loopback, RFC 1918, ULA, CGNAT, třída E) zastaví start serveru; veřejný issuer se odmítne a **Check health** v nastavení SSO pojmenuje `AIR_GAP` i opravu.                                                                                                                                                                      |
| Sidecar pro přepis řeči                                                            | Zvuk z porad jde do služby whisper.cpp ve vaší síti compose a nikdy ji neopustí.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Listener metrik                                                                    | Jen odpovídá na scrapování z vaší vlastní sítě a nic neodesílá.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |

MCP konektory se dál přihlašují, aniž by se cokoli stahovalo: OAuth metadata přestanou nabízet dokumenty metadat client ID (CIMD) a server žádný nestáhne, takže se klienti jako Claude Code místo toho zaregistrují přes dynamickou registraci klienta (`POST /oauth/register`). Klient, který se dokumentem metadat zaregistroval před zapnutím přepínače, dostane při souhlasu i na token endpointu odmítnutí s odkazem na registrační endpoint a zaregistruje se tam znovu.

Server sám nekontroluje nové verze. Klienti se na jeho aktuální verzi ptají přes `/api/v1/version`; dostupnost aktualizací kontroluje CLI.

## Co opouští hostitele [#egress]

Server dodavateli nic neposílá: žádnou telemetrii, žádný dotaz na aktualizace, žádnou kontrolu licence, žádné hlášení o využití nebo počtu míst. Odchozí provoz začíná u něčeho, co jste nastavili, nebo co vložili vaši lidé:

* **Integrace, které nastavíte** — každá zůstává vypnutá, dokud neexistuje její proměnná nebo nastavení: pošta, jednotné přihlášení, trackery, GitHub, AI kanál a backendy, úložiště klíčů, cíl exportu auditu, S3, sidecary, web push, Stripe a exportéry observability ([nastavení observability](/cs/reference/env#observability)).
* **Odkazy, které vaši lidé vloží** — pod `AIR_GAP=1` vypnuté: vložený odkaz si ponechá holou URL. Jinak karta odkazu stahuje stránku, na kterou ukazuje, její náhledový obrázek a favicon jen z veřejných internetových adres, ověřených na přeložené adrese při navázání spojení a při každém přesměrování, bez proxy z prostředí; odkaz na privátní, loopback nebo link-local adresu nebo na jméno, které se nepřeloží, si ponechá holou klikací URL a karta řekne proč. Když je nastavený sidecar pro snímky, vyfotí jen stránku, na kterou se stažení skutečně dostalo — neúspěšné stažení nevyfotí nic —, na hostiteli ověřeném jako veřejný těsně před každým snímkem. Snímání drží stránku na tomto hostiteli a blokuje požadavky na hostitele zadané IP adresou, jednoslovná jména, localhost a interní přípony, a snímek stránky, která načetla odpověď z neveřejné adresy nebo z adresy, kterou snímání nedokázalo určit, se zahodí; karta si ponechá název i náhledový obrázek. Sidecar si ale jména překládá sám: stránka ho pořád může přimět poslat požadavek na interní adresu přes veřejné jméno, které se přeloží na privátní adresu, a WebSockety ani požadavky, které spustí worker, sledované nejsou. Odpověď se na nástěnku nikdy nedostane, ale pokud vám vadí už samotný požadavek, omezte odchozí provoz sidecaru.
* **Dvě výchozí volání** — nastavení hesla spustí kontrolu uniklých hesel, která odešle pět hexadecimálních znaků SHA-1 hesla a porovná výsledek lokálně, a AI klientovi, který se registruje dokumentem metadat client ID, server tento https dokument stáhne, a to jen z veřejných adres. `AIR_GAP=1` vypne obojí.

Limity tarifů se vynucují jen s `VITRINKA_METERED=1` nebo nastaveným účtováním přes Stripe a `AIR_GAP=1` Stripe vymaže: air-gapped instalace, která tarify neměří, provozuje každou organizaci na limitech Enterprise ([nastavení účtování](/cs/reference/env#billing)). Tak či tak se nikam nic nehlásí.

## Balík [#bundle]

Enterprise balík obsahuje `image.tar`, `LOAD-AIRGAP.md`, `SHA256SUMS`, šest binárek CLI a `cli/latest.json`. Ověřte, nahrajte, nasměrujte `VITRINKA_IMAGE` na nahraný image, nastavte přepínač:

```bash
shasum -a 256 -c SHA256SUMS
docker load -i image.tar
```

Pracovní stanice dostanou CLI z adresáře `cli/` v balíku a `VITRINKA_RELEASE_FEED` nasměruje `vitrinka update` na váš interní mirror, aby samoaktualizace fungovala i offline — stáhne holou binárku a její kontrolní součet, připraví ji vedle běžící, jednou spustí připravenou kopii a teprve pak prohodí. Celá rutina instalace a upgradu je v [Provozu](/cs/operator/operations#airgap).

## Licence offline [#licence]

Licence je soubor podepsaný dodavatelem a ověřovaný uvnitř procesu serveru proti klíči dodavatele zabudovanému do vydání: žádné aktivační volání, žádný licenční server, žádné volání domů, a obnova je výměna souboru a restart ([Licence](/cs/security/licensing)). Hodiny hostitele držte správně podle vlastního zdroje času — expirace se čte proti nim a licence, která se zdá vydaná v budoucnosti, start odmítne.

<Callout type="warn">
  `AIR_GAP=1` vypíná uvedené veřejné integrace. Adresy SMTP, S3 a služby pro snímky obrazovky zkontrolujte zvlášť; musí směřovat do vaší interní sítě. Vlastního poskytovatele AI organizace nevypíná. Na air-gapped instalaci odpovídá jen na endpointu ve vaší síti, který uložila pravomoc nad instalací ([Odchozí cíle](/cs/operator/connectors#outbound)), a nikdy na veřejném výchozím endpointu poskytovatele — nasměrujte ho proto na endpoint modelu ve vaší síti, nebo ho nenastavujte.
</Callout>
