vitrinka.docs
Bezpečnost

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 obrazovkyMíří na vaše vlastní endpointy ve vaší vlastní síti.
SMTPInterní 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 organizaceNastavené 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čiZvuk z porad jde do služby whisper.cpp ve vaší síti compose a nikdy ji neopustí.
Listener metrikJen 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=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í). 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.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.

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.

Na této stránce