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:

ProvidervCPURAMDiskMonthly CostNote
Sliplane22 GB50 GB€22.80Flat rate, free egress, SSL included
Fly.io22 GB40 GB~$17.83Disk and bandwidth billed separately
Render12 GB40 GB~$355 GB bandwidth included on Hobby; disk billed separately
Railway22 GB40 GBUp to ~$66Usage-based; Pro required for a 40 GB volume
Click here to see how these numbers were calculated.

Prices checked July 19, 2026. Assuming an always-on instance running 730 hrs/month, Germany/Amsterdam where regional pricing applies, excluding VAT and egress.

  • Sliplane: Base server with 2 vCPU, 2 GB RAM and 20 GB storage = €17.80/month; the 50 GB storage tier adds €5 -> €22.80/month. Unlimited services, free egress and SSL are included.
  • Fly.io: in Amsterdam, shared-cpu-2x with 2 GB RAM = $11.83/month + 40 GB volume × $0.15/GB = $6 -> ~$17.83/month. Egress is billed separately at $0.02/GB in Europe.
  • Render: closest match is Standard ($25, 1 vCPU / 2 GB) plus 40 GB disk × $0.25/GB = $10 -> ~$35/month. A Hobby workspace includes 5 GB bandwidth, then charges $0.15/GB. Stepping up to Pro compute (2 vCPU / 4 GB) costs $85/month plus disk.
  • Railway (Pro plan): at full resource usage: CPU 2 × $20/vCPU/month = $40; RAM 2 × $10/GB/month = $20; volume 40 × $0.15/GB/month = $6 -> up to ~$66/month. Actual CPU and RAM charges depend on usage. A 40 GB volume requires Pro; its $20/month subscription is a minimum commitment that counts toward usage, not an additional charge. Egress is $0.05/GB.

Bandwidth costs can add up fast on usage-based providers. Use our bandwidth cost comparison tool to see what your egress would cost on each platform.

Bandwidth Cost Growth Comparison

Move the slider or play the animation to compare monthly egress costs. Sliplane stays free as traffic grows.

0 GB
Sliplane
Free
Fly.io
$0.00
Railway
$0.00
Render
$0.00

Egress only, excluding compute and storage. Based on public US/European rates checked July 19, 2026. Render includes its first 5 GB per month. Sliplane egress is free, subject to the Fair Use Policy.

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.