Self-hosting Strapi the easy way

Self-hosting Strapi the easy way

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
4 min

Strapi is the leading open-source headless CMS. It lets you build powerful APIs with a visual content editor, so you can manage content without touching code. Strapi Cloud works, but pricing starts at $29/month and scales up fast with usage and team size.

Sliplane is a managed container platform that makes self-hosting painless. With one-click deployment, you can get Strapi up and running in minutes — no server setup, no reverse proxy config, no infrastructure headaches.

Prerequisites

Before deploying, ensure you have a Sliplane account (free trial available).

Quick start

Sliplane provides one-click deployment with presets.

SliplaneDeploy Strapi >
  1. Click the deploy button above
  2. Select a project
  3. Select a server. If you just signed up you get a 48-hour free trial server
  4. Click Deploy!

About the preset

The one-click deploy above uses Sliplane's Strapi preset. Here's what it includes:

  • Strapi v5 via the elestio/strapi-production image (version v5.41.1 — check Docker Hub for newer stable versions)
  • SQLite as the default database — no external database service needed
  • Persistent storage for your data (.tmp), uploads (public/uploads), and content type schemas (src)
  • Auto-generated secrets for JWT, admin JWT, and app keys
  • Telemetry disabled by default

Next steps

Once Strapi is running on Sliplane, access it using the domain Sliplane provided (e.g. strapi-xxxx.sliplane.app).

First-time setup

When you open Strapi for the first time, you'll see a registration form to create your admin account. Fill in your name, email, and password — this becomes the super admin user.

After that, you land in the Strapi admin panel where you can:

  • Create Content Types (like blog posts, products, pages)
  • Add and manage content entries
  • Configure roles and permissions for your API
  • Install plugins from the Strapi marketplace

Default paths

Here are the key paths inside the container:

PathPurpose
/opt/app/.tmpSQLite database (persisted via volume)
/opt/app/public/uploadsUploaded media files (persisted via volume)
/opt/app/srcContent type schemas and customizations (persisted via volume)
/opt/app/configConfiguration files

Environment variables

The preset configures the essentials, but you might want to customize a few things:

VariableDefaultPurpose
DATABASE_CLIENTsqliteDatabase engine (sqlite, postgres, or mysql)
NODE_ENVproductionNode environment
STRAPI_TELEMETRY_DISABLEDtrueDisable anonymous usage data
HOST0.0.0.0Listen address
PORT1337Listen port

If you need PostgreSQL instead of SQLite (recommended for larger projects), deploy a PostgreSQL service on the same server and update these environment variables:

DATABASE_CLIENT=postgres
DATABASE_HOST=your-postgres-service.internal
DATABASE_PORT=5432
DATABASE_NAME=strapi
DATABASE_USERNAME=postgres
DATABASE_PASSWORD=your-password

Logging

Strapi logs to STDOUT by default, which integrates nicely with Sliplane's built-in log viewer. For more verbose output, you can set STRAPI_LOG_LEVEL=debug in your environment variables. For general Docker log tips, check out our post on how to use Docker logs.

Troubleshooting

If Strapi takes a while to start on the first deploy, that's normal — it needs to build the admin panel and set up the database. Subsequent starts are much faster.

If you see connection errors, double-check your environment variables (especially database settings if you switched from SQLite to PostgreSQL).

Cost comparison

Of course you can also self-host Strapi with other cloud providers. Here is a pricing comparison for the most common ones:

ProvidervCPU CoresRAMDiskEstimated Monthly CostNotes
Sliplane22 GB40 GB€9charge per server
Render12 GB40 GB~$35–$45VM Small
Fly.io22 GB40 GB~$20–$25VM + volume
Railway22 GB40 GB~$15–$66Usage-based

FAQ

Here are answers to the most common questions about running Strapi on Sliplane.

What can I build with Strapi?

Strapi is a headless CMS — it provides a content API that any frontend can consume. Common use cases include blogs, e-commerce product catalogs, documentation sites, mobile app backends, and any project where non-technical users need to manage structured content. It pairs well with frameworks like Next.js, Nuxt, Astro, or any frontend that can call a REST or GraphQL API.

How do I add plugins to Strapi?

You can install plugins through the Strapi admin panel under Marketplace, or manually by adding them to your project's package.json. Since the preset persists the /opt/app/src directory, plugin configurations survive redeployments. After installing a plugin, restart your service in Sliplane for it to take effect.

How do I update Strapi?

Change the image tag in your service settings (e.g. from v5.41.1 to a newer version) and redeploy. Check Docker Hub for the latest stable version. Always back up your data before major version updates — you can use Sliplane's volume backup feature for this.

Are there alternatives to Strapi?

Yes. Popular open-source headless CMS options include Directus (database-first approach, supports any SQL database), Payload CMS (TypeScript-native, code-first), and Ghost (focused on publishing and newsletters). Each has different strengths depending on your use case.

Can I use Strapi with a custom domain?

Yes. Once your Strapi service is running on Sliplane, you can add a custom domain in the service settings. Sliplane automatically handles TLS certificates via Let's Encrypt, so your Strapi instance will be served over HTTPS without any extra configuration.

Self-host Strapi now - It's easy!

Sliplane gives you everything you need to run Strapi without managing servers.