docs(onprem): add hardware sizing guidance for self-hosted Pro - #15459
Merged
Conversation
Adds a public page with starting-point hardware recommendations for self-hosted DefectDojo Pro deployments, indexed by finding count and concurrent users. Specs are given as generic vCPU and memory figures so they apply to any cloud provider or on-premise hardware. Every tier is expressed as a range rather than a fixed number, since the right size depends on import volume, deduplication breadth, reporting load, API traffic, and retention. The page covers each of those as reasons to size up ahead of your finding count. Ranges are deliberately conservative. The floor of each range is a workable configuration and the ceiling leaves headroom, so a deployment provisioned anywhere inside a range has room to grow rather than needing a resize shortly after going live. Also reorders the on-premise section so the lifecycle reads size, install, migrate, upgrade. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
paulOsinski
approved these changes
Jul 31, 2026
Adds a row at the far end of the sizing table for deployments approaching 500M findings, along with a section on what changes at that scale. The row is marked as a reference point rather than a continuation of the pattern above it, since the gap from the 10M tier is too wide to interpolate across and a deployment landing in between needs sizing on its own terms. Two things drive the accompanying guidance. Deduplication compares each incoming finding against the existing data set, so import cost grows with the size of the data behind it and becomes the binding constraint ahead of query performance. And the memory figures throughout the table assume a small hot set, which is what allows a database to hold far more data than it has memory and still perform well. Both assumptions are now stated rather than implied. The 500M storage figure assumes older findings are archived out of the live data set rather than accumulating, so the storage section states that assumption and notes that the per-million rate does not extend to an unmanaged data set of that size. Also notes that throughput becomes the storage constraint before capacity does once the working set stops fitting in memory. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The top tier before the 500M reference point listed a flat 16 vCPU, which sat low against deployments of that size in practice and left an abrupt gap ahead of the 500M row. Widening it to 16-32 keeps the ceiling in line with what a data set of that size actually asks for. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reads 768 GB+ rather than a fixed figure. How much memory a data set of that size actually needs depends on how much of it stays hot, and the section on very large deployments already says a workload that reads across the whole data set will want more than the table lists. Writing it as a floor keeps the table consistent with that. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Import and deduplication run on the application tier, so at a data set that size the node count is driven by ingest throughput rather than by how many people are in the UI. The section on application nodes now carries that exception, since the rest of the table follows user count and the 500M row would otherwise look inconsistent with the rule stated directly above it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
devGregA
self-requested a review
August 2, 2026 02:42
devGregA
approved these changes
Aug 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a public page with starting-point hardware recommendations for self-hosted DefectDojo Pro deployments, indexed by finding count and concurrent users. This guidance previously only existed in internal documents and got reassembled by hand for each request, which meant the numbers drifted. This gives it one home.
Specs are given as generic vCPU and memory figures so they apply to any cloud provider or on-premise hardware. The application node guidance assumes Kubernetes, and the page notes that a Docker Compose deployment on a single host should use the same totals.
Every tier is a range rather than a fixed number. Finding count is the headline figure, but it is not the only thing that drives sizing, so the page covers what pushes a deployment up a tier ahead of its finding count: import volume and frequency, deduplication breadth, reporting and dashboard load, API traffic from integrations, and retention policy.
Ranges are deliberately conservative. The floor of each range is a workable configuration and the ceiling leaves headroom, so a deployment provisioned anywhere inside a range has room to grow rather than needing a resize shortly after going live. The page is explicit that these are starting points rather than limits, and directs anyone at the top of the table to talk to us before provisioning.
Two points the page makes that are easy to get wrong:
Also reorders the on-premise section so the lifecycle reads size, install, migrate, upgrade.
Testing
hugo --minify --gc --config config/production/hugo.tomlbuilds clean, 636 pages, no errors.🤖 Generated with Claude Code