Layer 5 · self-hosting reality check
What it actually takes to self-host Directus
The docs say 512 MB (with 0.25 vCPU) for the Directus container. The database is extra. In practice you want 2 GB for the Directus container, the vendor's recommended minimum, plus room for PostgreSQL and Redis. That fits on a 4 GB VPS. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.
Usually reached from Contentful alternatives, where Directus is one of the picks.
Wondering whether you need to at all? Is Contentful free? — what the free tier actually allows, and where the wall is.
| RAM — documented minimum | 512 MB (with 0.25 vCPU) for the Directus container. The database is extra |
|---|---|
| RAM — what it really needs | 2 GB for the Directus container, the vendor's recommended minimum, plus room for PostgreSQL and Redis. That fits on a 4 GB VPS |
| CPU | The vendor's recommended minimum reads '2x 1 vCPU / 2GB' for the Directus container; the database needs its own share |
| Disk | Your database plus the uploads volume, which grows with every file and image uploaded. Extensions sit in a separate small volume. |
| Monthly cost | $12–24/mo on a 4 GB VPS running Directus, PostgreSQL and Redis. Past three Studio users you also need a licence key: free under the Open Innovation Grant (under $5M revenue and 50 staff), otherwise from $499/mo |
| Setup time | 30 minutes with the docs' compose file; an afternoon with HTTPS, file storage and a licence key |
| How you install it | The docs' docker compose: directus/directus pinned to a version, PostGIS 17 as the database and Redis 7 as the cache, with uploads and extensions on volumes |
| Ongoing maintenance | About one minor release a month to test before production. Read the breaking changes before a major: v12 changed the licence and the proxy-trust and health-check defaults. Keep the licence key current. |
| Where it stops scaling | One 4 GB box covers a small team's CMS. To scale out, run several Directus containers behind a load balancer on one shared database. Redis becomes a requirement at that point, per the vendor. |
The thing that catches people out
Directus 12 (June 2026) moved from the BSL to its own MSCL licence and started enforcing tiers in software. With no licence key, a self-hosted instance runs on Core: 3 Studio seats, 25 collections, 5 flows and no SSO. An upgraded instance gets a 30-day grace period. After that, an instance over its limits is locked down: the /items endpoints stop answering and GraphQL, WebSockets and MCP are switched off, so any website reading from it breaks. Nothing is deleted. If you are under $5M revenue and 50 staff, get the free Open Innovation Grant key before you upgrade. Otherwise, price the $499/mo Team tier first.
When not to self-host Directus
More than three people need to log in to the Studio and your organisation is over $5M revenue or 50 staff. You would be buying a $499/mo licence. Payload (MIT) or Strapi (MIT outside its enterprise folder) are headless CMSs without a seat cap in the licence.
Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.
Other Layer 5 self-hosting guides
- Self-hosting LibreOffice2 GB with a large spreadsheet open
- Self-hosting ONLYOFFICE6 GB for the Document Server with a handful of concurrent editors
- Self-hosting Collabora Online4 GB, and roughly 1 GB per 20 concurrent documents
- Self-hosting CryptPad2 GB for a small instance
- Self-hosting Mattermost4 GB for a team of 50 with PostgreSQL on the same box
- Self-hosting Rocket.Chat6 GB with MongoDB on the same machine
Common questions
- How much RAM does Directus actually need?
- 2 GB for the Directus container, the vendor's recommended minimum, plus room for PostgreSQL and Redis. That fits on a 4 GB VPS in practice. The documented minimum is 512 MB (with 0.25 vCPU) for the Directus container. The database is extra, which is the figure at which the process starts rather than the figure at which it works under real use. The vendor's recommended minimum reads '2x 1 vCPU / 2GB' for the Directus container; the database needs its own share alongside it.
- What does self-hosting Directus cost per month?
- $12–24/mo on a 4 GB VPS running Directus, PostgreSQL and Redis. Past three Studio users you also need a licence key: free under the Open Innovation Grant (under $5M revenue and 50 staff), otherwise from $499/mo This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for about one minor release a month to test before production. Read the breaking changes before a major: v12 changed the licence and the proxy-trust and health-check defaults. Keep the licence key current.
- How long does it take to set up Directus?
- 30 minutes with the docs' compose file; an afternoon with HTTPS, file storage and a licence key, via The docs' docker compose: directus/directus pinned to a version, PostGIS 17 as the database and Redis 7 as the cache, with uploads and extensions on volumes.
- When should I NOT self-host Directus?
- More than three people need to log in to the Studio and your organisation is over $5M revenue or 50 staff. You would be buying a $499/mo licence. Payload (MIT) or Strapi (MIT outside its enterprise folder) are headless CMSs without a seat cap in the licence.
- What is the most common mistake when self-hosting Directus?
- Directus 12 (June 2026) moved from the BSL to its own MSCL licence and started enforcing tiers in software. With no licence key, a self-hosted instance runs on Core: 3 Studio seats, 25 collections, 5 flows and no SSO. An upgraded instance gets a 30-day grace period. After that, an instance over its limits is locked down: the /items endpoints stop answering and GraphQL, WebSockets and MCP are switched off, so any website reading from it breaks. Nothing is deleted. If you are under $5M revenue and 50 staff, get the free Open Innovation Grant key before you upgrade. Otherwise, price the $499/mo Team tier first.