Repository navigation
Admin settings
Most runtime settings are stored in PostgreSQL (site_settings) and edited by a site admin in the web UI, not in .env. They take effect without a restart. Secrets entered here are encrypted with SESSION_KEY; see Configuration for what rotating that key means.
| Setting | Notes |
|---|---|
| Site name, default timezone, meta description | Branding. SITE_NAME / DEFAULT_TIMEZONE in .env act as the initial values. |
| Enable registration, invite only, join requests | Who can sign up. New installs are invite-only. |
| Allow regular users to send invites, invite limit, default invite expiration | Invite controls for non-admins. |
| Max task description length, max comment length | Server-side limits. |
| Keep deleted tasks in the trash for (days) | Default 30. Deleted tasks (with their subtasks) are restorable until a background job purges them. |
| Allow file attachments on tasks, largest file (MB) | See Attachments. Off by default. |
| Show changelog | In-app changelog from GitHub Releases (see GITHUB_REPO in Configuration). |
| Enable external REST API | Required for API keys, the Android app, device SSO, AI agents, and MCP. Same as ORDRYN_BOOTSTRAP_ENABLE_API=true. |
| Enable inbound webhooks | Allows POST /api/v2/webhooks/inbound for projects that turn it on. |
| Global announcement | Banner shown to every signed-in user. |
Task attachments are off by default. When enabled, project members who can edit a task can upload files to it from the task sidebar.
- Files are stored in PostgreSQL (a
byteacolumn intask_attachments), not on disk or S3. Back up the database and you back up the files. - Per-file limit defaults to 5 MB. Admins can set 16 KB to 50 MB. A task holds at most 20 files.
- Because the files live in the database, they grow your database and its backups. Keep the limit modest on small hosts.
- Turning attachments off stops new uploads. Files already attached stay on their tasks and can still be downloaded or deleted.
- Behind nginx, raise
client_max_body_sizeto at least the per-file limit, or large uploads fail with 413 before reaching Ordryn. See Reverse-proxy.
Images pasted into descriptions and comments, and user avatars, use the Image hosting provider:
| Provider | Where files go |
|---|---|
| None | Image uploads are disabled. |
| Local | A directory on the server, default data/uploads (relative to the working directory). Ordryn serves them at /uploads/…. |
| S3-compatible | Any S3 API (AWS, Cloudflare R2, MinIO, Backblaze B2, …): endpoint, region, bucket, access key, secret key, optional public URL and path-style addressing. |
Maximum image size defaults to 5 MB (64 KB to 50 MB). With Local, make sure the process user can write to the upload directory and include it in backups.
Image hosting and attachments are separate: image hosting is for inline images and avatars, attachments are files on a task.
Admin → Email picks a provider (Mailgun or SMTP) and the From name and address. The From address is independent of the sending domain.
- Allow notification email lets users opt in to email copies of their notifications (immediate batches or a daily summary). Leave it off on hosts with a small sending quota. Password resets and other account mail are sent either way and have their own rate limit.
- Audit log retention (days) controls how long the email send log is kept.
Optional. Fill in a GitHub OAuth app's Client ID and Client secret so users can link their GitHub account (Profile) and projects can link a repository and issues. Users can also paste a personal access token instead.
When creating the OAuth app on GitHub, set the callback URL to:
https://<your-host><BASE_PATH>/api/v2/auth/github/callback
Behind a proxy, Ordryn builds that URL from X-Forwarded-Proto and Host, so forward both (see Reverse-proxy).
Admin → Extensions lists loaded extensions, enables or disables them site-wide, holds site-scoped settings (for example join-request hooks), and has Reload Extensions to rescan the folder without a restart. See Extensions.
Getting started
- Home
- Self-hosting
- Building-the-server
- Configuration
- Admin-settings
- Reverse-proxy
- Extensions
- Upgrading
Using the API
Help