Konfigurace
Nastavení instalace, výchozí hodnoty a možnosti správy za běhu.
Jak konfigurace funguje
Server při startu načítá výchozí nastavení z proměnných prostředí; změna vyžaduje restart. Některá nastavení můžete změnit i za běhu: uložená konfigurace SMTP se použije u dalšího e-mailu a nastavení AI ve workspace má přednost před backendem celé instalace. Kontrola hodnot závisí na konkrétní proměnné; používejte hodnoty uvedené v přehledu a po změnách zkontrolujte logy při startu.
Referenční přehled konfigurace uvádí registrované proměnné, jejich výchozí hodnoty a význam. Tato stránka popisuje hlavní možnosti instalace.
Základ
| Proměnná | Výchozí | Poznámky |
|---|---|---|
VITRINKA_ADDR | :8080 | Adresa, na které poslouchá. |
BASE_URL | http://127.0.0.1:8080 | Veřejná URL; musí být https, aby cookies nesly Secure a aby se posílalo HSTS. |
DATA_DIR | ./data | Řídicí databáze, každá databáze workspace, bloby na disku a cache blobů. |
VITRINKA_MASTER_KEY | — | Povinné při VITRINKA_KEYS_PROVIDER=env. 64 hex znaků; pečetí tajemství aplikace a slouží i jako klíč instalace, když VITRINKA_KEK není nastavený. Při openbao ho nastavte na jeden start, aby se převzal do úložiště klíčů, a pak ho odstraňte. |
VITRINKA_KEK | záložně master klíč | 64 hex znaků; klíč, pod kterým je zabalený datový klíč každého workspace — Šifrování. |
VITRINKA_SEAL_STRICT | off | on odmítá starší řádky a objekty v prostém textu, místo aby je četl — přepněte, až projde seal-existing -verify. |
MAX_SET_MB | 200 | Limit těla požadavku i rozbalené velikosti jedné sady. |
VITRINKA_SESSION_TTL | 720h | Absolutní životnost session, vynucená na serveru. Compose v enterprise balíku nastavuje 12h. |
VITRINKA_SESSION_IDLE | 0 | Timeout nečinnosti; 0 ho vypíná, nastavená hodnota musí být aspoň 5m a kratší než životnost. Compose v enterprise balíku nastavuje 30m. |
VITRINKA_WAITLIST | nenastaveno | 1 podrží každý nový účet, dokud ho neschválíte v /admin; čekající pozvánka platí jako schválení a existující účty se přihlásí vždy — první administrátor. |
VITRINKA_OPS_ORG | nenastaveno | Slug organizace, která instalaci provozuje. Její admini — a vždy platform admini — spravují nastavení pro celé nasazení: mailer, nároky na e-mailové domény pro SSO, zapnutí vynuceného SSO při zapnutých nárocích, SSO připojení spravovaná nasazením a trackery, AI backendy a AI endpointy, které smí dosáhnout do vaší interní sítě (Odchozí cíle). Bez nastavení jen platform admini. Nedává žádný přístup k datům — první administrátor. |
VITRINKA_SSO_DOMAINS | off | on dovolí organizacím nárokovat e-mailové domény pro směrování na jejich SSO a vynucené SSO per doména — SSO. |
VITRINKA_SSO_PRIVATE_NETWORKS | nenastaveno | CIDR rozsahy oddělené čárkou, na které smí SSO připojení kromě veřejných adres dosáhnout, pro poskytovatele identity ve vaší síti; dosáhne na ně jen připojení spravované nasazením — SSO. |
VITRINKA_SSO_CA | nenastaveno | Privátní CA pro certifikát vašeho poskytovatele identity, jako cesta k PEM souboru nebo text PEM; důvěřuje jí vedle systémových kořenů jen SSO klient — SSO. |
VITRINKA_BREAK_GLASS | owners | Kdo smí použít nouzovou cestu ?local=1 při vynuceném SSO: off, owners (vlastníci vynucující organizace) nebo all — SSO. |
VITRINKA_TRUSTED_PROXIES | nenastaveno | CIDR rozsahy vašeho reverzního proxy oddělené čárkou, jejichž X-Real-Ip rate limiter a každý řádek auditu berou jako adresu klienta (holá adresa potřebuje své /32); loopbacku se věří vždy a od jakéhokoli jiného protějšku se hlavička ignoruje a použije se adresa samotného spojení — Instalace. |
AIR_GAP | nenastaveno | 1 vymaže každé napojení, které sahá na veřejný internet, vypne náhledy odkazových karet a zbylé cíle nastavené adminy — trackery, AI backend workspace, AI endpoint organizace — omezí na interní adresy, a to jen ty, které uložila pravomoc nad instalací; SSO dosáhne jen na interní rozsahy, které vyjmenuje VITRINKA_SSO_PRIVATE_NETWORKS, a MCP klienti se registrují bez dokumentu metadat client ID; S3, SMTP, capture a přepisový sidecar i listener metrik zůstávají dostupné — Air-gapped nasazení. |
LICENSE_FILE | DATA_DIR/license.json | Kde server hledá podepsanou licenci. Compose v enterprise balíku nastavuje /run/license/license.json. Bez souboru běží neomezený zkušební režim; soubor, který existuje, ale nedá se použít, start odmítne — Licence. |
Úložiště blob souborů
| Proměnná | Výchozí | Poznámky |
|---|---|---|
BLOB_BACKEND | fs | fs nebo s3. |
S3_ENDPOINT S3_REGION S3_BUCKET | — | Povinné při BLOB_BACKEND=s3. Bucket se založí, pokud chybí, a ověří se při startu. |
S3_ACCESS_KEY_ID S3_SECRET_ACCESS_KEY | — | Přihlašovací údaje k tomu bucketu. |
VITRINKA_S3_SSE | aes256 | Šifrování na straně serveru vyžádané od bucketu: aes256, kms:<key id> nebo off. Objekty jsou tak jako tak šifrovaným textem ze strany klienta. |
BLOB_CACHE_MAX_GB | 20 | Jen S3: průchozí cache pod DATA_DIR/blobcache, předehřátá při startu, maže od nejstaršího. 0 ji vypne. |
CLAMD_ADDR | nenastaveno | Adresa clamd zapne kontrolu souborů před uložením. Pokud kontrola selže, nahrání se odmítne — Úložiště. |
Úložiště klíčů a export auditu
Obojí je ve výchozím stavu vypnuté a nedělá žádné odchozí volání, dokud to nezapnete — úplný kontrakt, kontrola při startu, migrace a chování při selhání jsou v Šifrování a klíče.
| Proměnná | Výchozí | Poznámky |
|---|---|---|
VITRINKA_KEYS_PROVIDER | env | env nechává KEK v prostředí; openbao ho drží v transit klíči OpenBao, se kterým server jen komunikuje. |
VITRINKA_OPENBAO_ADDR VITRINKA_OPENBAO_MOUNT VITRINKA_OPENBAO_KEY VITRINKA_OPENBAO_ROLE_ID VITRINKA_OPENBAO_SECRET_ID VITRINKA_OPENBAO_CA | transit · vitrinka-kek | Transit engine: adresa, mount, název klíče, přihlašovací údaje AppRole a privátní CA (cesta k PEM souboru, nebo přímo text PEM začínající -----BEGIN). VITRINKA_OPENBAO_TOKEN je alternativa k AppRole jen pro vývoj. |
VITRINKA_DEK_REVERIFY | 15m | Jak často se datový klíč každého otevřeného workspace znovu ověřuje proti úložišti klíčů; odvolaný klíč přestane obsluhovat do tohoto okna. |
VITRINKA_AUDIT_EXPORT | off | dir nebo s3 exportuje auditní stopu každých VITRINKA_AUDIT_EXPORT_EVERY (5m) jako hashově řetězený podepsaný proud JSONL — Export auditu. |
VITRINKA_AUDIT_EXPORT_DIR | DATA_DIR/audit-worm | Adresář jen pro zápis pro dir — volba pro odpojené instalace. |
VITRINKA_AUDIT_EXPORT_S3_ENDPOINT VITRINKA_AUDIT_EXPORT_S3_REGION VITRINKA_AUDIT_EXPORT_S3_BUCKET VITRINKA_AUDIT_EXPORT_S3_PREFIX VITRINKA_AUDIT_EXPORT_S3_ACCESS_KEY_ID VITRINKA_AUDIT_EXPORT_S3_SECRET_ACCESS_KEY | — | Bucket s object lockem pro s3 a přihlašovací údaje jen pro ukládání. |
VITRINKA_AUDIT_EXPORT_RETAIN_DAYS | nenastaveno | Jen s3: retence Object Locku otisknutá na každou dávku; nenastavená ponechává každou dávku. Cíl dir ji ignoruje. |
Uchovávání, hlavičky a hostitel sdílení
| Proměnná | Výchozí | Poznámky |
|---|---|---|
VITRINKA_RETENTION_GRACE | 720h | Jak dlouho zůstává smazaná session obnovitelná, než ji zametač vymaže. |
VITRINKA_RETENTION_SWEEP | 1h | Jak často zametač běží; nikdy méně než 1m. |
VITRINKA_CSP | report-only | enforce povýší celou content security policy z hlášení na vynucování — Hlavičky a CSP. |
VITRINKA_FRAME_ANCESTORS | nenastaveno | Originy, které smějí vkládat stránky workspace; prázdné znamená 'self'. |
VITRINKA_SHARE_ORIGIN | nenastaveno | Vyhrazený hostitel pro sdílecí odkazy, který nikdy nepřijme session ani token. |
VITRINKA_RECORDER_FULL_FIDELITY | deny | allow dovolí politice rekordéru ve workspace redakci úplně vypnout — záchranná brzda pro vlastní instalace — Plná věrnost. |
VITRINKA_REFERENCE_ORIGINS | nenastaveno | Přesné HTTPS originy oddělené mezerou, které smějí se session prohlížeče číst soukromé kolekce referencí; platí jen pro /api/v1/reference-library. |
Tarify a měření
| Proměnná | Výchozí | Poznámky |
|---|---|---|
VITRINKA_METERED | nenastaveno | 1 vymáhá tarif každé organizace — úložiště, místa, nástěnky na workspace — podle nastavení v /admin; nová organizace začíná na Free. Bez nastavení, a bez účtování přes Stripe, běží každá organizace na limitech Enterprise: 500 GiB sdíleného úložiště, neomezená místa a 250 000 aktivních nástěnek na workspace. Uložený tarif se zachová a znovu platí, jakmile se měření zapne. Jakákoli jiná hodnota start odmítne. |
STRIPE_API_KEY STRIPE_WEBHOOK_SECRET STRIPE_PRICE_STARTER STRIPE_PRICE_PRO STRIPE_PRICE_TEAM | — | Všech pět nastavených ⇒ účtování aktivní a tarify se také měří. Částečná sada nebo zástupná hodnota start odmítne. Všechny nenastavené ⇒ účtovací cesty se nepřipojí. STRIPE_PACKS volitelně uvádí předplacené AI balíčky. |
AIR_GAP=1 vymaže Stripe, takže air-gapped instalace měří tarify jen s VITRINKA_METERED=1. Který případ platí, říká log při startu: metering on: VITRINKA_METERED, metering on: Stripe configured nebo metering off: self-hosted.
Observabilita
Kromě procesního logu je každý signál vypnutý, dokud ho někam nenasměrujete, a nic neopustí hosta samo.
| Proměnná | Výchozí | Poznámky |
|---|---|---|
VITRINKA_LOG_FORMAT | text | Procesní log na stderr; compose v enterprise balíku nastavuje json pro sběrač logů. Tak jako tak se do něj dostanou jen neprůhledná ID — nikdy e-mail, jméno, IP, user agent, query string, hlavička ani obsah požadavku. |
VITRINKA_LOG_LEVEL | info | debug, info, warn nebo error. |
VITRINKA_METRICS_ADDR | nenastaveno (vypnuto) | Druhý listener jen pro metriky, který servíruje Prometheus /metrics (např. :9464). Stojí mimo licenční bránu i vrstvu session, proto ho držte ve své privátní síti a nikdy ho nepublikujte přes proxy — compose v balíku pro něj žádný port nemapuje. |
OTEL_EXPORTER_OTLP_ENDPOINT | nenastaveno (vypnuto) | OTLP/HTTP endpoint, který přijímá traces (např. http://otel-collector:4318). |
VITRINKA_TRACE_SAMPLE | 0.1 | Poměr vzorkování na začátku, od 0 do 1, rozhodnutý u každého požadavku dřív, než se o něm cokoli ví. Tail politika collectoru vybírá jen z exportovaného podílu, takže uchovat každý pomalý nebo selhaný trace vyžaduje 1. |
SENTRY_DSN | nenastaveno (vypnuto) | Hlášení chyb ze serveru a přes tunel /api/v1/telemetry na stejném originu i z prohlížeče — prohlížeče se Sentry samy nikdy nekontaktují. Hlavičky, cookies, těla a IP se před odesláním vyčistí a uživatel je neprůhledné ID. Nasměrujte ho na vlastní Sentry. |
AIR_GAP=1 při startu vymaže SENTRY_DSN i OTEL_EXPORTER_OTLP_ENDPOINT. Listener metrik zůstane, protože odpovídá jen na scrapování ve vaší vlastní síti.
Napojení
Nastavte jen integrace, které potřebujete. Některé vyžadují také nastavení workspace nebo projektu — viz Konektory.
| Proměnná | Poznámky |
|---|---|
AI_BACKEND_URL AI_BACKEND_TOKEN | AI backend za run view a chatem; token se posílá dál jako bearer. Starší zápisy EVE_API_URL / EVE_API_TOKEN dál fungují. |
EVE_URL EVE_SECRET | AI kanál pro zmínky na nástěnce a review passy, přes HMAC podepsané pushe. |
GITHUB_APP_ID GITHUB_APP_PRIVATE_KEY GITHUB_APP_SLUG GITHUB_APP_CLIENT_ID GITHUB_APP_CLIENT_SECRET GITHUB_WEBHOOK_SECRET | GitHub App: commit pilulky, připojení repozitáře per workspace, webhooky pull requestů, přihlášení přes GitHub (GITHUB_LOGIN=1). |
PLANE_API_URL PLANE_API_TOKEN PLANE_WORKSPACE | Všechny tři nastavené ⇒ napojení na Plane: jeden aktualizovaný komentář na sadu u daného issue. |
VITRINKA_CAPTURE_URL VITRINKA_CAPTURE_TOKEN | Screenshotový sidecar browserless/chrome, který si provozujete sami (např. http://capture:3000), pro náhledy odkazových karet, press rendery, PDF export dokumentů, PNG export diagramů a snímky relací webového rekordéru (přehrané z nahraného DOM streamu, bez přístupu k síti). Bez nastavení použijí odkazové karty metadata og:image a nástěnka relace webového rekordéru se nesestaví, dokud ho nenastavíte. Náhled odkazu mu předá jen stránku na hostiteli ověřeném jako veřejný a snímek stránky, která načetla odpověď z neveřejné adresy, zahodí — co opouští hostitele. |
VITRINKA_STT_URL | Sidecar whisper.cpp, který spouští profil stt v balíku (http://vitrinka-stt:8080), pro přepis schůzek na serveru — Konektory. |
VITRINKA_LISTENER_TTL | Výchozí 90. Kolik sekund přežije lease posluchače mezi heartbeaty, než se jeho rozpracovaná práce vrátí do fronty. |
Pošta
Jeden mailer na instalaci, nastavený v Settings → Organization → Email, z CLI (vitrinka admin smtp) nebo z prostředí: jako SMTP (SMTP_HOST, SMTP_PORT, SMTP_TLS, SMTP_USER, SMTP_PASSWORD, SMTP_CA_FILE, EMAIL_FROM — autentizace přes nešifrované spojení je při startu odmítnutá), nebo jako RESEND_API_KEY. Uložená konfigurace má přednost před prostředím a uložit ji smí jen ten, kdo drží pravomoc nad nasazením — Pošta a notifikace. Web push potřebuje VAPID_PUBLIC_KEY a VAPID_PRIVATE_KEY; VAPID_SUBSCRIBER nastavte na vlastní mailto:, protože výchozí hodnota je jen zástupná.
vitrinka admin smtp --helpInstalace na vlastní server
Jeden Go binárník, jeden kontejner, vaše infrastruktura. Self-hosted balík nainstaluje vitrinku na jeden stroj přes Docker Compose — a to je schválně jediná podporovaná topologie.
Jednotné přihlášení
OIDC proti vašemu adresáři, nastavené přímo v produktu, ne v souboru — a MFA, které vitrinka ověřuje, ne předpokládá.