Deploy

Free credit available Limited time

Strapi self hosted. The same admin panel, on a machine with your name on it.

Strapi Cloud starts at $35 for one project. This is the whole server, and it does not count projects.

Strapi v5.52.1, the open source headless CMS, deploys as a one-click template with its own PostgreSQL 16 onto a dedicated server Selfhost.dev provisions, secures and runs, across six locations on three continents. A European 4 GB server is $0.02/hr, about $15 a month, however many projects you put on it.

Launch Strapi

One click. Two containers. The template deploys in about six minutes.

+$5.00 added at signup · deployment choice preserved · no card

A European 4 GB server, $0.02/hr/Six locations, three continents/Every project included, no per-project fee/Deploys in about 6 minutes

What is Strapi self hosted?

The same admin panel.
On a machine with your name on it.

What it is. Running the open source build of Strapi on a server you control rather than subscribing to Strapi Cloud. The software is identical. What changes is who holds the database and who gets the bill.

Who it is for. Teams running more than one Strapi project, where per-project pricing compounds fastest. Also anyone whose content has to sit inside their own infrastructure for a residency or procurement reason.

When to use it. When you want the content API and the database on hardware you can point at. We name the two cases where Strapi Cloud is the better answer below, and they are real.

One-click template (live today)

Strapi self hosted requirements

What Strapi needs, and what arrives already wired.

RequirementThis deployment
VersionStrapi v5.52.1, pinned
DatabasePostgreSQL 16, bundled
ContainersTwo: Strapi and its database
Memory4 GB recommended, which is also the platform minimum for any project
Architecturex86 or ARM, both supported
Node environmentNODE_ENV=development, deliberately, to keep the content-type builder usable
Content APIReturns 403 or 404 until an admin grants permissions
Admin registrationOpen until the first account exists, then closed
What Selfhost.dev providesDetail
LocationsSix, across three continents
HTTPSCertificate issued and renewed per hostname
Custom domainOne, added after launch
BackupsOptional. Daily, whole VM, last 7 kept, +20% of the server price
MonitoringMetrics, logs, and a health check every 60 seconds
FirewallDefault deny, ports 22, 80 and 443
Deploy timeAbout 6 minutes for the template, once the server exists
MCP tools189 across 31 modules

Specifications current as of September 2026.

What is in the Strapi deployment

Two containers, four volumes, nothing floating.

Selfhost.dev pins every image to an exact tag. Nothing moves until you move it.

ComponentImage and tagWhat it does
Strapielestio/strapi-development:v5.52.1Strapi v5, admin panel and content API, on port 1337
PostgreSQLpostgres:16-alpineThe content database
VolumeWhat it holds
strapi-configThe project configuration
strapi-srcThe project source, including your content-type schemas
strapi-uploadsAll media, at /opt/app/public/uploads
strapi-postgresql-dataThe database

Rebuilding the containers does not touch any of them. The schemas you build in the admin panel are files on that disk, which is also why they travel when you export.

PostgreSQL 16, not the default SQLite

Strapi will happily run on SQLite, and a local install usually does. This template ships PostgreSQL 16 instead, on the same server. That matters in two places: a SQLite destination blocks other database connections during a data transfer, and a single file is a harder thing to back up cleanly than a database you can pg_dump while it runs.

Both images are pinned to an exact tag

elestio/strapi-development:v5.52.1 and postgres:16-alpine. Neither is a floating tag, so a redeploy brings back the version you were already running. Your Strapi version moves when you move it, and at no other time.

What we set up for you

The five secrets, and why they are five.

This is the part a compose file does not do for you.

  • Five separately generated secrets, every one persisted: JWT_SECRET, ADMIN_JWT_SECRET, APP_KEYS, API_TOKEN_SALT and TRANSFER_TOKEN_SALT. Upstream reuses one value for two of them and omits the salts entirely, which silently invalidates every API token and transfer token you have issued the moment the container restarts.
  • API_TOKEN_SALT persisted, so the API tokens your frontend holds keep working after a redeploy.
  • TRANSFER_TOKEN_SALT persisted, which is what makes Strapi's own data tooling usable here.
  • DATABASE_* wired to the bundled PostgreSQL 16, generated per deployment, never a documented default.
  • STRAPI_TELEMETRY_DISABLED=true. Usage telemetry is off.
  • TLS per hostname, issued and renewed automatically, and a default-deny firewall with only 22, 80 and 443 open.

No Selfhost.dev template ever boots on a documented default password. If credential seeding fails, the instance boots locked rather than open.

How to self host Strapi in four steps

From zero to live.
No server to set up.

Four steps. Two containers, and PostgreSQL comes up before Strapi answers.

1

1. Choose Strapi and a server

The page opens the exact console template. Pick the 4 GB server and one of six locations, then submit. Nothing else needs configuring.

2

2. Let it build

Two containers start and PostgreSQL comes up before Strapi answers. The template deploys in about six minutes.

3

3. Register the administrator

Open the generated HTTPS address at /admin and create the first account. Registration closes behind you.

4

4. Model content, then open the API

Build your content types in the builder, then grant the roles and permissions that make /api/* answer. Add your own domain from the resource Settings screen.

What we run, and what you run

Your content model. Our machine.

Selfhost.dev runsYou run
The server, in one of six locationsStrapi itself: content types, fields and relations
Both containers and their restart policyRoles, permissions and API tokens
The TLS certificate, issued and renewedWhich routes are public and which are not
The default-deny firewall, ports 22, 80 and 443Plugins, custom controllers and middleware
Server CPU and memory metricsYour content, your exports, your retention
Optional whole-server backupsWhich Strapi version you move to, and when

We manage infrastructure, not application administration. There is no Strapi administration service here.

What a 4 GB server handles

Two containers, and room for more than one of them.

Strapi and PostgreSQL together are the lightest pairing in the catalogue, which is why the recommended size is 4 GB rather than 8. The machine has room for more than one project, and the bill does not notice when you add the second. Uploaded media lands on the server disk, so the disk is the part to plan around.

ServerRAMDiskSold in
cx234 GB40 GBEurope
cx338 GB80 GBEurope

A project server holds up to five workloads in total. Strapi is classed light, so it reserves 512 MB of the pack rather than the 2,048 MB a heavy template takes.

What Strapi hosting costs

One rate, and it does not count projects.

Strapi is free software and Selfhost.dev does not charge for it. You pay for the server it runs on and nothing else. A European 4 GB server is $0.02/hr, about $15 a month if you leave it running, billed hourly against prepaid credits.

ServerRAMDiskSold inRateAbout, at 730 hours
cx23, the recommended size4 GB40 GBEurope$0.02/hr$15.18
cax11, ARM4 GB40 GBEurope$0.02/hr$16.35
cpx214 GB80 GBEurope$0.04/hr$25.70
cx338 GB80 GBEurope$0.03/hr$23.36
cpx224 GB80 GBEurope$0.07/hr$53.73

cx23, cax11 and cx33 are European machine types and are sold nowhere else. Price it in your own location, no signup needed.

ItemCost
Strapi, the software$0. Open source, and we do not resell it
Its bundled PostgreSQL$0
HTTPS certificate and custom domain$0
API requests$0. Not metered
Bandwidth$0. Traffic is included in the server price
A second project on the same server$0
Optional whole-server backups+20% of the server price

Strapi Cloud charges $1.50 per 25,000 API requests over its allowance and $30 per 100 GB of asset bandwidth. A headless CMS exists to serve API requests, so a per-request charge is a bill that grows with use. If your credit balance reaches zero the server stops and the content API stops answering, which will show up on any site consuming it. Your data stays on the disk while the server exists, so topping up brings it back as it was. Signing up adds $5 in free credit, no card needed.

What we can promise about this deployment

What we can prove without a testimonial.

Every service is health-checked every 60 seconds, and the sweep is observational: it tells us, and restarting is done from the console. A stalled deploy is retried automatically, not abandoned. A deploy is never reported done until the URL actually answers. Retrying a create never leaves you paying for two copies. Your version never moves on its own.

Strapi is one of the faster templates we run: about six minutes, which is the platform's own budget rather than an estimate.

Sizing sheet

Working out what a headless CMS costs?

Tell us how many projects and roughly how much media, and we will send back the server size, the monthly cost and what it replaces on a per-project plan. One email, no newsletter.

Strapi Cloud vs self hosted

They price the project. We price the server.

Strapi Cloud is the vendor's own hosted product, priced per project per month rather than per user.

PlanPriceAPI requestsAsset storageAsset bandwidth
Starter$35 per project per month100k50 GB50 GB
Pro$90 per project per month1M250 GB500 GB
Business$450 per project per month10M1,000 GB1,000 GB
Over the allowanceCharge
API requests+$1.50 per 25,000
Asset storage+$0.60 per GB
Asset bandwidth+$30 per 100 GB
An extra environment on Pro+$60 a month
An extra environment on Business+$300 a month

Prices from strapi.io/pricing-cloud, checked 14 September 2026. Our figure is a European 4 GB server at 730 hours.

When Strapi Cloud is the better choice

When you need a global CDN in front of your assets. Strapi Cloud includes one. This is a single server in a single location, and for a media-heavy site serving readers on three continents that difference is real. And when you need a contractual uptime SLA. Strapi Cloud publishes 99.9% on Business. We publish no availability figure, because none is measured, and we would rather say so than imply one. Their plans also carry multi-environment support, weekly or daily backups, log retention, DDoS protection and push-to-deploy.

Two Strapi projects on Starter are $70 a month before any overage. Two on a European 4 GB server are $15.18, and the second one changes nothing.

Strapi vs Contentful

Eight hundred and fifty dollars for a second project.

Contentful is the SaaS incumbent in this category and it prices by the Space, which is its word for a project.

PlanPriceUsersAPI callsCDN bandwidth
Free$0 forever10100K a month, no overages50 GB a month
Lite$300 a month201M a month, paid overages100 GB a month
Enterprisequote onlycustomwaivedcustom
Strapi on Selfhost.dev$15.18 a monthunlimitednot meterednot metered

Source: contentful.com/pricing, checked 14 September 2026. Contentful is now part of Salesforce, announced on their own site.

An additional Space licence on Lite is $850 a month, so a second project on Contentful is $1,150. A second project here is $15.18, because it is the same server. Worth knowing: the real ceiling on Contentful's free tier is 10,000 records on the Starter Space, not the ten users. Ten users sounds generous until the content hits five figures.

Strapi on a raw VPS, versus this

Same Hetzner box. The five secrets already sorted.

Selfhost.dev runs on Hetzner and we say so. The machine underneath this deployment is the one you would rent anyway.

On a raw VPS you do this yourselfHere it is already done
Generate five secrets and resist reusing one twiceFive, separate, persisted
Discover that a regenerated salt killed your API tokensBoth salts survive a redeploy
Write and debug the compose fileTwo containers, pinned, wired
Install a reverse proxy and issue a certificateTLS per hostname, renewed
Close the ports you did not mean to openDefault deny, three ports
Wire four volumes so content survives a rebuildConfig, source, uploads and database

This is not a price-parity claim. Hetzner's own list price for a comparable machine is lower than ours, and the difference pays for the wiring, the certificate, the monitoring and the restarts.

Strapi self hosted limitations

Four things to know, and the first one is deliberate.

  • This deployment runs NODE_ENV=development on a development image, deliberately. That is what keeps the content-type builder usable in the admin panel, which is the thing most people want Strapi for. It is not a production build and we are not going to pretend it is. If you need a production build, that is a different deployment and we should talk about it first.
  • The content API under /api/* returns 403 or 404 until an admin grants permissions. That is Strapi working as designed, not a broken deploy, and it is the first thing to do after logging in.
  • Admin registration closes once the first account exists. Claim it before you share the address.
  • The server is sized when you deploy it and is not expanded in place, so pick the size you want to grow into. Uploaded media accumulates on that disk.

Strapi backup and restore

An encrypted archive, and it is yours.

Everything Strapi holds lives in one PostgreSQL database and in the uploads volume. Both are yours, and both can leave.

  • strapi export produces an encrypted, compressed archive containing the project configuration, every entity, the relations between them, the assets in the uploads folder, the schemas and a metadata file. strapi import reads it back.
  • Optional whole-server backups cover the entire machine at +20% of the server price, daily, with the last seven kept.
  • Your own dump, any time. pg_dump against the bundled PostgreSQL 16 restores onto any PostgreSQL 16, ours or anyone else's.
  • Uploaded media sits in the strapi-uploads volume, so a file-level copy of that directory belongs in the same routine as the database dump.

Two published limits, worth knowing before you rely on the archive: admin users and API tokens are not transferred, and schemas are always exported, because schema matching is what strapi import uses. Deleting the server takes its backup images with it, which is why a copy kept somewhere else is worth the ten minutes.

Frequently asked questions

Can I self host Strapi on Selfhost.dev?
Yes. Strapi is a one-click template you deploy onto your project server. Selfhost.dev provisions the server, brings up Strapi and its PostgreSQL 16, issues the certificate and gives you a generated HTTPS address. You register the administrator at /admin, and registration closes behind you.
How much does self hosted Strapi cost?
You pay for the server and nothing else. A European 4 GB server is $0.02 an hour, about $15 a month if you leave it running, billed hourly against prepaid credits. API requests are not metered and traffic is included. A second Strapi project on the same server costs nothing extra. See pricing.
Is self hosting cheaper than Strapi Cloud?
For more than one project, comfortably. Strapi Cloud Starter is $35 per project per month, so two projects is $70 before any overage. A European 4 GB server here is about $15 a month and the second project changes nothing. Strapi Cloud does include a global CDN and an uptime SLA on Business.
Why does my content API return 403 or 404?
Because permissions have not been granted yet. Strapi ships with the public role locked down, so routes under /api/* stay closed until an administrator enables them in Settings, Roles. That is Strapi working as designed rather than a broken deploy, and it is the first thing to do after logging in.
Does this deployment use SQLite or PostgreSQL?
PostgreSQL 16, bundled on the same server, rather than the SQLite a local install usually defaults to. That matters in two places: a SQLite destination blocks other database connections during a data transfer, and a single file is harder to back up cleanly than a database you can pg_dump while it runs.
Do my API tokens survive a redeploy?
Yes. Strapi derives its tokens from salts, and this template persists all five secrets separately, including API_TOKEN_SALT and TRANSFER_TOKEN_SALT. Upstream reuses one value for two of them and omits the salts entirely, which silently invalidates every issued token the moment the container restarts.
Can I export my Strapi project?
Yes. strapi export produces an encrypted, compressed archive holding the project configuration, every entity, the relations, the assets and the schemas, and strapi import reads it back. Admin users and API tokens are not transferred. You also have root SSH and pg_dump against the bundled PostgreSQL.
What happens if my credit balance reaches zero?
The server is powered off first, not deleted, and we email you. You get a 24-hour grace period, and a top-up inside that window restarts the project rather than destroying it. Note the content API stops answering while it is off, which shows up on any site consuming it.

About Selfhost.dev

Selfhost.dev is a managed self hosting platform for developers and small teams. Open source apps and databases on dedicated servers you control, billed by the hour, in six locations across three continents.

Best for: Strapi, WordPress, Supabase, Nextcloud and managed PostgreSQL, MySQL, Redis and ClickHouse.

Self host Strapi. We will run the server.

One-click Strapi template with its own PostgreSQL 16
Custom domain and SSL, handled
API requests and bandwidth never metered
Launch Strapi