Self-hosted PaaS
A comparison table of platform-as-a-service or “Heroku clone” software that you can run on your own servers. “Self-hosted platform as a service” may seem like a contradiction, but it can make it easier to manage your applications in a uniform way. I focus on the smaller and simpler projects; no Kubernetes here.
Projects listed as “multi-server” support use on a single server.
| Project name and link | Type | Technologies | Management | License | Notes |
|---|---|---|---|---|---|
| CapRover | Multi-server (Docker swarm mode) | Node.js, TypeScript, Docker | Web UI | Source-available free to self-host | Formerly open-source under Apache-2.0. |
| Coolify | Multi-server (independent Docker Engines) | PHP, Docker | Web UI | Apache-2.0 | |
| Dokku | Single-server | Bash, Docker | CLI on the server | MIT | |
| Dokploy | Multi-server (Docker swarm mode) | Node.js, TypeScript, Docker | Web UI | Apache-2.0 (core), source-available free to self-host (multi-node, Docker Compose support) | |
| Exoframe | Multi-server (Docker swarm mode) | Node.js, JavaScript, Docker | CLI client on the deployment machine | MIT | Latest commit in 2023. |
| Nua | Single-server | Python, Docker | CLI on the server | AGPL-3.0-only | Documenation warns you to not yet use it in production. |
| Piku | Single-server | Python | CLI client on the deployment machine | MIT | Smaller than Dokku. Does not use Docker. Runs on low-end devices. Known to work on FreeBSD. |
| Sailor | Single-server | Python | CLI on the server | MIT | A fork of Piku. Does not use Docker. Latest commit in 2023. |
| Skate | Multi-server | Rust, systemd | CLI on the client | Apache-2.0 | Deploys Kubernetes manifests (Cronjob, Deployment, Ingress, Secret, etc.) without Kubernetes using systemd. |
| Swarmlet (archived) | Multi-server (Docker swarm mode) | Bash, Docker | CLI on the server | MIT | |
| SwiftWave | Multi-server (Docker swarm mode) | Go, Docker | Web UI, CLI on the server | Apache-2.0 |
- Wharf—a web UI for Dokku. Written in Python.