Skip to content

Admin settings

xNifty edited this page Oct 11, 2026 · 1 revision

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.

Site settings

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.

Attachments

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 bytea column in task_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_size to at least the per-file limit, or large uploads fail with 413 before reaching Ordryn. See Reverse-proxy.

Image hosting

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.

Email

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.

GitHub OAuth

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).

Extensions

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.

Clone this wiki locally