Skip to content

Limits

Every cap you can actually hit, with the reason where it isn’t obvious. The caps stop one request from using up the memory, disk or responsiveness of the whole installation. The app tells you when you hit one. This page lets you know in advance, and whether the number can be changed.

Limit Value Notes
Session lifetime 12 hours Set with -session-ttl (flag only, no DC_ variable). Then you sign in again.
Failed sign-ins 5 per 15 minutes, per address After that the password form is refused until the window ends, even with the right password. Behind a reverse proxy without DC_TRUSTED_PROXIES, all clients share one address. See Deployment.
2FA code attempts 5 per 15 minutes, per address and per account The account budget keeps counting when the address changes.
Passkey sign-in attempts 30 per 5 minutes, per address A separate budget, because everyone sees the button and closing the browser prompt is common. It must not lock the password form.
Authenticators and passkeys 10 per account TOTP apps and passkeys count together.
Password length at least 10 characters Everywhere, including the offline --reset-password.
Limit Value Notes
Ordinary request body 1 MiB Everything except the streaming routes below.
Seed volumes saved before a remote restore 2 GiB in all Kept on the Docker Commander machine until the restore ends. Over it, the restore is refused before anything changes.
File upload into a container or volume, or an image build context 2 GiB Written to a temporary file that is unlinked at once, so it costs no memory.
Archive uploaded for Extract 4 GiB compressed
Uploaded archive, after decompression 512 MiB Protects against a zip or gzip bomb.
Idle time during a streaming upload 2 minutes Counts silence, not total time. A slow large upload is fine; a stalled one is dropped.
Any request’s body, start to finish 60 seconds Streaming routes use the idle limit above instead.
Limit Value Notes
Files in a project 100
Size of one project file 1 MiB The editor refuses to save a larger file.
Imported project .zip 32 MiB Entries over the file size or file count limit are skipped.
Compose file read or displayed 1 MiB
docker compose command 10 minutes A longer deploy is abandoned.

Set under Settings → Data retention.

Limit Value Notes
Alert events and deliveries 90 days by default 1 to 36 500 days, or forever. Deliveries are never kept longer than their events.
Audit log 365 days by default 30 to 36 500 days, or forever.
Project revisions newest 50 per project by default At least 3, or unlimited.
Purge schedule first run about 2 minutes after start, then every 24 hours Deletes in batches of 2 000 rows.
Backup job run history newest 200 runs per job Not adjustable. See Backup jobs.
Limit Value Notes
Containers in one bulk action 200 per request
Project files in a recovery bundle 1 GiB and 20 000 files in total An export over 1 GiB fails with 413; an import over either limit is refused before anything is written. See Recovery bundle.
Limit Value Notes
Vulnerability scan 6 minutes, 2 at a time Trivy does the scan. Two at a time so scans cannot starve the daemon.
Vulnerabilities reported per scan 5000
Registry response while listing tags 2 MiB
CVEs ignored in one request 500
Limit Value Notes
Lines held by the Logs page 3000 Oldest lines are dropped. This is browser memory, not server.
Events held by the Events page 2000 Same. The feed is live only and shows nothing from before you opened it.
Alert feed 50 per page The feed itself has no cap. The API returns at most 500 per request.
Audit entries fetched by the page 1000 The server returns at most that many per request.
Recurring maintenance occurrence 24 hours A longer one is refused. See Alerts.
Limit Value Notes
Token lifetime 30 days default, 365 maximum Both set by an admin in Settings.
OAuth access token 15 minutes
Control actions 30 per minute Keeps a runaway agent in check. See MCP.
container_logs 1000 lines, 64 KiB
search_logs tail of 2000 lines, 200 matches, pattern up to 200 characters
container_changes 500 entries
list_alerts, recent_audit 50 by default, 200 at most
recent_events 360 minutes back, 100 by default, 500 at most
scan_image 100 findings
Limit Value Notes
WebAuthn ceremony 2 minutes Time between pressing the button and answering the browser prompt.
Half-finished passkey sign-ins held at once 512 Server-wide. Anyone can start one without signing in, so it has its own cap. A flood of them cannot stop anyone pairing a passkey or finishing a second factor.