vitrinka.docs
Provoz

Provoz

Upgrady, zálohy, air-gapped instalace, operátorské příkazy a administrátorská konzole — věci, které děláte potom, co to běží.

Upgrade

Nejdřív zazálohujte /data, pak ukažte na nový tag a spusťte. Migrace proběhnou při startu.

# uprav .env: VITRINKA_VERSION=vX.Y.Z
docker compose up -d

Při startu server povýší každou databázi workspace, která zaostává za schématem, po VITRINKA_MIGRATE_WORKERS najednou (výchozí min(8, CPUs)). /readyz odpovídá 503 s průběhem, dokud to neskončí, zatímco /healthz zůstává nahoře, takže kontrolu připravenosti v proxy nasměrujte na /readyz.

  • Žádné tvrdé zarážky — každé vydání migruje z libovolného předchozího, takže můžete verze přeskakovat.
  • Dodané soubory neupravujete — poznámky k vydání můžou přidat volitelné klíče do .env; nic z toho, co dostanete, není určené k úpravám.
  • Server před klienty — nasaďte server dřív, než rozešlete klienty volající nové endpointy.

Zálohy

/data — volume vitrinka-data — nese SQLite databáze a, pokud nepoužíváte S3, i blob soubory. Zálohujte podle svého běžného plánu a před každým upgradem.

docker compose stop vitrinka
docker compose run --rm --no-deps --entrypoint sh -v "$PWD:/backup" vitrinka \
  -c 'cd /data && tar czf /backup/vitrinka-data-$(date +%F).tgz .'
docker compose start vitrinka

Spusťte to přes compose, jak je výše. Holé docker run -v vitrinka-data:… připojí jiný, nesouvisející globální volume než ten, který aplikace opravdu používá — zálohovali byste nic.

Licence není v /data

Leží v adresáři ./license/ v balíku, připojeném do kontejneru jen pro čtení. Zálohujte /data kvůli datům a uchovejte adresář balíku kvůli licenci — jsou to dvě různé věci k zachování.

Air-gapped instalace

Balík obsahuje image.tar, LOAD-AIRGAP.md a binárky CLI. Nahrajte image do interního registru nebo rovnou do Dockeru, nasměrujte na něj VITRINKA_IMAGE a nastavte AIR_GAP=1, čímž vymažete každé napojení, které by sahalo na veřejný internet — e-mailového poskytovatele, Telegram, GitHub, AI kanál i AI backend (EVE_*, AI_BACKEND_*), spravovanou AI, Plane, Stripe, web push, Sentry, export traces přes OTLP, kontrolu úniků i náhledy odkazových karet — zatímco S3, SMTP, capture a přepisový sidecar i listener metrik dál fungují proti vaší vlastní síti. Tracker, AI backend workspace nebo AI endpoint organizace do ní dosáhne, až když ho uloží pravomoc nad instalací (Odchozí cíle); stejně tak připojení SSO, a to jen uvnitř rozsahů, které vyjmenuje VITRINKA_SSO_PRIVATE_NETWORKS (poskytovatel identity ve vaší vlastní síti). MCP klienti se registrují na POST /oauth/register, protože se nestahuje žádný dokument metadat client ID. Když je Stripe vymazaný, tarify se měří, jen když je nastavené VITRINKA_METERED=1. Server nikdy nevolá domů kvůli verzi: kontrola aktualizací žije v CLI a VITRINKA_RELEASE_FEED níže ji nasměruje na váš mirror.

shasum -a 256 -c SHA256SUMS    # nejdřív ověřte balík

CLI bez registru

Balík nese i CLI — šest statických binárek, jednu na platformu, plus cli/latest.json. Pracovní stanice ho potřebují na pořizování sad a obsluhu fronty, a npm install -g předpokládá registr, který ve vaší síti být nemusí.

Nasměrujte $VITRINKA_RELEASE_FEED na vlastní interní mirror a vitrinka update bude fungovat i offline. Instrukce a cestu pro PowerShell nese cli/README.md v balíku.

Operátorské příkazy

Serverová binárka nese údržbové příkazy. Každý destruktivní je zprávou nanečisto, dokud nepředáte -execute. shred-workspace odmítne provést změnu bez -server-stopped a reconcile-storage bez -offline. Pro rewrap-deks server také zastavte, protože to sám nekontroluje. seal-existing je stavěný na běh vedle živého serveru (-batch, -pace), a stejně tak platform-admin.

PříkazCo děláPodrobnosti
vitrinka backup -data /data -out <file>.vtbkKonzistentní kopie každé databáze, zapečetěné do jednoho archivu; bloby vynechané.Zálohy
vitrinka restore-backup -in <file>.vtbk -out <empty dir>Odpečetí archiv do prázdného adresáře, nikdy přes živý DATA_DIR.Zálohy
vitrinka seal-existing -data /data [-execute | -verify]Zapečetí starší řádky a objekty v prostém textu na místě; -verify je brána před přísným režimem.Šifrování
vitrinka rewrap-deks -data /data -old-kek … -new-kek … [-execute]Rotuje klíč instalace přebalením klíče každého workspace; dat se nedotkne.Šifrování
vitrinka shred-workspace -data /data <workspace> -server-stopped [-execute]Zničí datový klíč workspace a označí ho náhrobkem.Uchovávání a mazání
vitrinka inventory -data /data -out <manifest>Sčítání každého odkazovaného blobu jen pro čtení proti jednomu výpisu úložiště; vypíše očištěné shrnutí.Předchází migrate-blobs.
vitrinka migrate-blobs -data /data -manifest <manifest> [-execute]Přesun starších objektů do prefixů jejich workspaců jen kopírováním; zdroj nikdy nemaže.Idempotentní; po částečném selhání spusťte znovu.
vitrinka reconcile-storage -data /data -workspace <ws> -backend fs|s3 [-execute -offline]Přepočítá evidenci úložiště workspace po ruční offline údržbě a předtím udělá zapečetěnou zálohu.Spusťte před restartem zapisujících procesů.
vitrinka audit-export-key -data /dataVypíše veřejný klíč, který podepisuje dávky exportu auditu.Export auditu
vitrinka audit-verify -data /data (nebo -dir <dir> -key <key>)Ověří každý hashový článek i podpis exportu a u prvního přerušeného článku skončí nenulovým kódem.Export auditu
vitrinka platform-admin grant <email> · revoke <email> · listOtevře nebo zavře administrátorskou konzoli účtu, který se už jednou přihlásil; platí od jeho dalšího požadavku a zapíše se do auditu.První administrátor
vitrinka smtp-test -to <you@example.com>Pošle jeden testovací e-mail přes relay SMTP_* bez startu serveru.Pošta
vitrinka license-inspect <file>Rozparsuje a ověří licenční soubor bez startu serveru.Licence
vitrinka healthcheckKontrola zdraví kontejneru, kterou spouští compose.

Spouštějte je přes compose, aby viděly stejný /data, klíče a backend blobů jako server:

docker compose stop vitrinka
docker compose run --rm --no-deps -v "$PWD/backups:/backups" vitrinka backup -data /data -out /backups/vitrinka-$(date +%F).vtbk
docker compose start vitrinka

backup odmítne -out uvnitř DATA_DIR. Zapečetěné bezpečnostní snímky, které údržbové příkazy pořizují, než přepíšou data — třeba reconcile-storage -execute — míří do VITRINKA_BACKUP_DIR, výchozí <DATA_DIR>-backups. Uvnitř kontejneru tato sousední cesta na volume neleží, proto připojte adresář a nasměrujte na něj proměnnou; cesta uvnitř DATA_DIR je odmítnutá.

Administrátorská konzole

/admin je platformní konzole. Každému, kdo není platform admin, odpoví 404; příznak udělíte přes platform-admin (první administrátor).

  • Statistiky — účty, workspaces, organizace podle tarifu a čekající položky čekací listiny.
  • Workspaces — hledání podle slugu nebo názvu. Výběr nastavuje uložený tarif organizace, které workspace patří. Dokud se tarify neměří, ukazuje každý řádek i tarif Enterprise, na kterém organizace běží, a poznámka říká, že uložený tarif začne platit, jakmile se měření zapne — tarify tak můžete připravit dřív, než nastavíte VITRINKA_METERED=1. Pozastavení workspace — pozastavený neobslouží nic, dokud ho neobnovíte — a kontrola AI plateb, kde se schodek spravované AI dá uzavřít bez účtování, s písemným důvodem.
  • Uživatelé — hledání podle e-mailu nebo jména; platform admini nesou ★.
  • Čekací listina — při VITRINKA_WAITLIST=1 sem přistane každá nová adresa, která se pokusí přihlásit. Schvalte ji a její další přihlášení účet vytvoří; adresa s čekající pozvánkou schválení nepotřebuje.

Změna tarifu se v auditu zapíše jako org.plan, pozastavení jako workspace.suspend.

Licencování

Vložte podepsaný license.json do ./license/; compose ho připojí jen pro čtení na /run/license, kde ho server hledá. Jak ho server ověřuje, co udělá se souborem, který nemůže použít, co expirace pozastaví a jak funguje obnova, najdete na Licence.

Na této stránce