Skip to content

Configuration

Didacta is configured in two complementary layers:

1. Environment variables (the installation)

They define the instance infrastructure: database, Redis, storage, instance-wide SMTP, license, telemetry… They are set in .env (Docker Compose) or in the container environment, and apply to the whole installation.

→ One-to-one reference for every variable

Only 3 are required (ADMIN_DATABASE_URL, REDIS_URL, AUTH_SECRET); the rest have sensible defaults.

2. Per-tenant settings (admin panel)

Everything specific to an organization lives in the database and is managed from Administration in the web app — never in code and never in environment variables:

Setting Where
Branding: logo, colors, sign-in copy Administration → Branding
The tenant's own SMTP server Administration → Settings → Notifications
AI provider and API key (BYOK) Administration → AI providers
Zoom Server-to-Server credentials Administration, «Integrations & API» group
Registration verifiers, Telegram bot Administration → Settings → Registration
Opt-in registration with the Didacta team Administration → Settings → Registration

Per-tenant secrets (OIDC client secrets, tokens, Stripe keys, Telegram bot…) are encrypted at rest with the instance master key (TENANT_SETTINGS_ENC_KEY, or the key auto-generated in the data volume).

Set the encryption key before configuring integrations

If you neither define TENANT_SETTINGS_ENC_KEY nor persist the data volume, the encryption key will be ephemeral and per-tenant secrets will be lost on restart. Details in Environment variables → Authentication and encryption.

Guides by area