vitrinka.docs

Operator

Install, configure and run vitrinka on your own host.

The shape of the job

vitrinka self-hosted is one static Go binary in one container on one host, with SQLite and blobs in a single /data volume — deliberately the only supported topology. Configuration is environment variables, upgrades are a tag change, and the whole estate — including an air-gapped one — is served by the same bundle.

In this tab

PageWhat it covers
Installing on your own hostThe self-hosted bundle on a single host with Docker Compose — and why that is the only supported topology.
ConfigurationEverything is environment variables: where data lives, sign-up and plan metering, observability, which integrations are active.
Single sign-onOIDC against your own directory — on your internal network too — configured in-product, with MFA vitrinka verifies rather than assumes.
OperationsUpgrades, backups, air-gapped installs, the operator verbs and the admin console — the things you do after it is running.
ConnectorsThe GitHub App, the Jira mirror, Plane, the AI backend, meeting transcription, and how hosted agents connect through OAuth.
Mail and notificationsOne mailer per install, changed in Settings or from the CLI by whoever holds deployment authority, and the keys web push needs.
LicensingObtaining, installing and renewing the enterprise licence, and what an expired one gates.

Read this before anything else

  • Make yourself platform admin, then close sign-up — any account that signs up can own an organization, so being first grants nothing: grant /admin from the server binary and gate new accounts, as the first admin shows.
  • Back up /data before every upgrade — and through compose, not with a bare docker run. The exact commands are in Operations.
  • Your licence is not in /data — it lives in the bundle's ./license/ directory; back up both. See Licensing.
  • Offline deployment — AIR_GAP=1 disables configured outbound integrations. The bundle includes the server image and CLI binaries; use network controls for complete isolation and check air-gap mode for exceptions.

On this page