Self-hosting your own PaaS: the complete guide
What a Platform-as-a-Service really does, the open-source stack behind it (Docker, Traefik, PostgreSQL, Redis), and how to stand up your own self-hosted PaaS.
A Platform-as-a-Service turns a raw server into a “git push to deploy” experience. Running your own means no per-seat fees, no usage metering, and full control of your data. This guide explains what a self-hosted PaaS needs and how to stand one up with Darmi Cloud.
What a PaaS actually does
Under the hood, every PaaS combines the same building blocks:
- Source integration — clone your repo on each push.
- Build — turn source into a runnable artifact, almost always a Docker image.
- Run — start the container and keep it healthy.
- Route — a reverse proxy maps a domain to the container and terminates HTTPS.
- Observe — logs, metrics, and one-click rollback.
The self-hosted stack
Darmi Cloud assembles these from proven open-source pieces:
- Docker to build and run every app in isolation.
- Traefik as the reverse proxy with automatic Let's Encrypt SSL.
- PostgreSQL for platform state and Redis for the job queue.
- A background worker that runs the clone → build → run pipeline.
Prerequisites
- A VPS with 2 GB+ RAM and Docker installed.
- A domain with an
Arecord and a wildcard*record pointing at the VPS IP (for automatic subdomains).
Stand it up
- Clone the platform repository onto your VPS.
- Copy
.env.exampleto.envand fill in your domain, database and OAuth credentials. - Run
docker compose up -d --build. This starts the web dashboard, the deploy worker, PostgreSQL, Redis and Traefik. - Apply database migrations with
docker compose run --rm migrate(orprisma migrate deploy). - Open your domain and sign in — you now have your own PaaS.
Managed convenience vs. self-hosted control
You don't have to choose blindly. The exact same platform is available as a managed cloud at darmicloud.tech if you'd rather not babysit a server. The difference from proprietary platforms like Railway or Vercel is that self-hosting is a first-class option, not a locked door.
Operating tips
- Keep your VPS updated and enable automatic security patches.
- Back up the PostgreSQL volume regularly.
- Monitor disk usage — Docker images accumulate; prune periodically.
Ready to try it? Deploy your first app on the managed cloud, or self-host for full control.
Deploy your app in minutes
Connect GitHub and ship any app — full backend, self-hostable, with flat pricing.
Get started freeKeep reading
Vercel pricing explained: when it gets expensive and what to do
An honest breakdown of Vercel's usage-based pricing, where costs tend to climb, when Vercel is still the right choice, and your options when it gets expensive.
How to deploy Django with PostgreSQL for free
A step-by-step guide to deploying a Django app backed by PostgreSQL for free — from a GitHub push to a live HTTPS URL, with environment config and migrations.