Air-gapped nasazení
Vypnutí veřejných integrací, interní služby, co opouští hostitele, a instalace bez přístupu k registru.
Přepínač
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á
| 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), 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). 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
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).
- Odkazy, které vaši lidé vloží — pod
AIR_GAP=1vypnuté: 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=1vypne 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í). Tak či tak se nikam nic nehlásí.
Balík
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č:
shasum -a 256 -c SHA256SUMS
docker load -i image.tarPracovní 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.
Licence offline
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). 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.
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), 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.