Setup

Configuration

Server settings, environment variables, and the admin console.

Settings registry

Most runtime knobs live in the database-backed settings registry and are edited in the admin console (/admin) — branding, registration, legal documents, retention, SMTP, rate limits, upload limits, bots.

Environment

The required environment is three values: TYTO_VERSION, SERVER_DOMAIN and CORS_ALLOW_ORIGIN. Everything else has a working default:

  • CORS_ALLOW_ORIGIN — origins of your web clients (space- or comma-separated; several web clients are fine). Browsers only: native desktop/mobile clients don’t use CORS, so with no web client it stays empty.
  • Secrets (database passwords, Meilisearch master key, LiveKit key/secret, JWT/Mercure/media/VAPID app keys) are auto-generated into the shared secrets volume on first boot by the secrets-init service. Any of them set in .env overrides the generated value — that’s the path for a managed database or an external LiveKit.
  • Public URLs (DEFAULT_URI, SERVER_API_URL, LIVEKIT_PUBLIC_URL, Mercure) derive from SERVER_DOMAIN, the API’s public hostname. Behind a reverse proxy (SERVER_DOMAIN=:80) set them explicitly.
  • MAILER_DSN is an optional fallback — real SMTP lives in the admin panel.

See .env.prod.example in the core repo for the full annotated list of overrides.

Email

Configure SMTP in Admin → Settings → Email, including the From address used for registration and digest mail. A test-email button verifies the configuration end to end.