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, and 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 that provides a content API 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.