DEV Community

Cover image for Comparing selfhosted Heroku alternatives
Gianni Carafa
Gianni Carafa

Posted on • Edited on

Comparing selfhosted Heroku alternatives

First a disclaimer: I have built my own alternative, Kubero, which is part of this article.

Heroku is a well known and solid PaaS provider. It is very easy to deploy a web application and the pricing starts very low (they just canceled the free plan tough). Not so well known are their enterprise and private space plans which can become quite pricy.

But the good thing is that some open-source projects were launched during the last few years to replace Heroku on a self-managed infrastructure, like Google, AWS, or an even server rack in your basement.

There are already excellent articles to list and introduce these projects. But they are not comparing them against each other.

It is important to point out, that a missing feature does not always have to be negative but in many cases, this comes with less complexity. And it is not my intent to rate any of these great projects.

Not part of this comparison are the hosted PaaS competitors of Heroku like netlify or platform.sh and licenced/closed source projects.

I did not install all the tools but did my best to look up the docs, issues, and roadmaps. If I misinterpreted something, please let me know in the comments, and point me to where you have found the information.

These projects are being compared

Scroll right to see the full list

Heroku
Private Space
Kubero Coolify Dokku Caprover Piku Cuber Acorn
User Interface ❌ PRO
Multi User N/A N/A N/A
Kubernetes N/A
Multi Kubernetes N/A
Scaling vertically
Autoscaling
Cronjobs
CLI
API ❌ PRO
Autodeployment
Pull-Request-Apps
Dataclips
CI/CD
Builtin Addons plugin
Builtin Services
Any language

User interface

The app needs to be easy to use. It should be possible to deploy an app with a view clicks. The user should be able to see the status of the app and the logs.

Multi User

The app should be able to handle multiple users. Each user should be able manage applications.

Kubernetes

Kubernetes has benefits like metrics, logmanagement, autoscaling and immutable infrastructure (restarts when the app crashes).

Multi Kubernetes

It should be possible to deploy its apps to multiple different Kubernetes clusters.

Scaling

The app should be able to scale apps horizontally and vertically.

Auto scaling

The app should be able to auto scale apps horizontally and vertically based on the load.

Cron jobs

The app should be able to run timed cron jobs periodically.

CLI

The app should have a CLI to manage the running applications.

API

The app should have an API to manage the running applications.

CI/CD

The app should be able to deploy apps from git repositories.

Autodeployment

The app should listen to git pushes on a branch (webhooks)

Pullrequest Apps

Tha app should automaticly start a new app for every pull request.

Built in addons

The app should have built in addons like databases, caches, queues, etc.

Built in Services

The app should have built in services like Wordpress, Nextcloud, CachetHQ, etc.

Any language

The app should be able to build and run any language.

Top comments (4)

Collapse
 
catalystbyzoho profile image
Catalyst

Catalyst By Zoho is an application development platform using which you can build, host, test, deploy, and monitor applications.

Read why Catalyst is a great-fit as Heroku alternative:
dev.to/catalystbyzoho/looking-for-...

Collapse
 
shoksuno profile image
Gianni Carafa

I missed devtron.ai and tsuru.io which should definitly be in this list. I will add them as soon as I made my researches. Sorry.

Collapse
 
arthurcgc profile image
Arthur Coelho

Hey @shoksuno , I'm one of tsuru.io 's developers. Just stumbled on your post. Feel free to reach out and ask any questions.

Collapse
 
pay_web_01e2015934986cb00 profile image
Pay Web

Nice comparison, looks like Kubero the winner here. Been considering migrating from Heroku but pretty much stuck with it's ease of use UI, mainly running Python & Typescript apps.

Does Kubero has Web UI for these functions?
i. Duplicating Existing App
ii. Editing ENV
iii. Start / Stop App
iv. View live app log
v. Multi user access to assigned app.