Configuration
The one environment variable you must set, and the settings you change in the UI.
Minutd keeps almost everything in the Settings page, stored in Postgres. The environment only holds what is needed to start and to decrypt.
Environment
| Variable | Required | Purpose |
|---|---|---|
MINUTD_SECRET | Yes | Encrypts stored secrets and OAuth tokens. Use a long random value and keep it. |
MINUTD_PUBLIC_URL | No | Public base URL of Minutd, such as https://minutd.example.com. Used to build the OAuth redirect URIs. Set it behind a reverse proxy that changes the host or scheme. Otherwise it is derived from the request. |
The compose file sets the database connection between the containers. Check compose.yaml for the full list and the defaults it ships with.
Settings in the UI
- Accounts: connect Google and Microsoft calendars with your own OAuth app. The page shows the redirect URI to register (
/api/oauth/google/callback,/api/oauth/microsoft/callback). Calendars are polled every 2 minutes for the next 14 days. - Join rules: per calendar, join all meetings, only ones you organise, only ones with external guests, or never. New calendars start on never.
- Bot: display name, lobby timeout (default 10 minutes), maximum meeting length, and the concurrency cap.
- Transcription: provider, its settings (keys are stored encrypted) and a Test button. See providers.
- Summary: provider, base URL, key, model and editable prompt templates.
- Storage: local path or S3-compatible bucket, and how many days to keep audio.
The bot name and join message can be changed freely with a supporter key. Without one they use the defaults.
Backups
Back up the Postgres volume, the audio volume (or bucket) and MINUTD_SECRET. All three are needed to restore.
Image variants
slim: cloud providers only.local: bundles faster-whisper so transcription needs no key. Until that image exists, start the whisper service withdocker compose --profile local up -d.