Limits

August 7, 2026 · View on GitHub

← Manual index

Every cap the app enforces that you can actually hit, with the reason where the number is not obvious. They exist so one request cannot cost the whole installation its memory, its disk or its responsiveness.

If you hit one, the app says so — the point of this page is that you can find out before that, and know whether the number is adjustable.

Signing in

LimitValueNotes
Session lifetime12 hours-session-ttl, flag-only (no DC_ equivalent). After it you are signed out and sign in again.
Failed sign-ins5 per 15 minutes, per addressThen the password form is refused for the rest of the window, right password or not. Behind a reverse proxy without DC_TRUSTED_PROXIES, every client shares one address — see Deployment.
Passkey sign-in attempts30 per 5 minutes, per addressA separate budget on purpose: the sign-in button is offered to everyone, and dismissing the browser prompt is the commonest outcome, so it must not close the password form.
Authenticators and passkeys10 per accountTOTP apps and passkeys share the pool.
Password lengthat least 10 charactersThe same floor everywhere, including the offline --reset-password.

Uploads and files

LimitValueNotes
Ordinary request body1 MiBEverything that is not one of the streaming routes below.
File upload into a container or volume2 GiBBuffered to a temporary file, unlinked immediately, so it never costs memory.
Uploaded archive, after decompression512 MiBThe guard against a zip/gzip bomb: a small archive that expands without bound.
Idle time during a streaming upload2 minutesMeasures silence, not duration — a slow multi-gigabyte upload is fine, a stalled one is dropped.
Any request's body, start to finish60 secondsExcept the streaming routes, which use the idle limit above.

Projects and stacks

LimitValueNotes
Files in a project100
Size of one project file1 MiBThe editor refuses a larger write.
Imported project .zip32 MiBEntries over the per-file limit, or past the file count, are skipped.
Compose file read or displayed1 MiB
docker compose command10 minutesA deploy that takes longer is given up on.

Images

LimitValueNotes
Vulnerability scan6 minutes, 2 at a timeTrivy is the one doing the work; concurrency is capped so a scan cannot starve the daemon.
Vulnerabilities reported per scan5000
Registry response while listing tags2 MiB

Logs, events and alerts

LimitValueNotes
Lines held by the Logs page3000Oldest are dropped; this is the browser's memory, not the server's.
Events held by the Events page2000Same, and the feed is live-only — it shows nothing from before you opened it.
Alert feed500 entries
Audit entries fetched by the page1000The server will not return more than that in one request.

MCP (AI-tool access)

LimitValueNotes
Token lifetime30 days default, 365 ceilingBoth admin-settable; see Settings.
OAuth access token15 minutes
Control actions30 per minuteSo a runaway agent is bounded. See MCP.

Sessions and ceremonies

LimitValueNotes
Sessions listed on your profile256
WebAuthn ceremony2 minutesThe window between pressing the button and answering the browser prompt.
Half-finished passkey sign-ins held at once512Server-wide. Reachable without signing in, so it is bounded separately from everything else — a flood of them cannot stop anyone pairing a passkey or completing a second factor.