Need advice about which tool to choose?Ask the StackShare community!

Dokku

170
217
+ 1
69
Heroku

25.3K
20.1K
+ 1
3.2K
Add tool

Dokku vs Heroku: What are the differences?

Introduction

In this Markdown formatted document, we will explore the key differences between Dokku and Heroku. Dokku and Heroku are both popular platform-as-a-service providers that offer easy deployment and management of applications, but they have distinct differences in terms of architecture, flexibility, deployment process, scalability, and cost considerations.

1. Architecture:

Dokku is built on Docker and uses lightweight containers for application deployment. It provides a Heroku-like experience but requires manual server setup and configuration. On the other hand, Heroku abstracts away the infrastructure and uses dynos as isolated lightweight containers to host applications, making it easier to deploy and manage without worrying about the underlying servers.

2. Flexibility:

Dokku provides more flexibility compared to Heroku, as it allows users to customize and modify the platform according to their specific requirements. Since Dokku is an open-source platform, users have access to the source code and can make changes as needed. However, with Heroku, users have limited control and customization options as the platform is managed and controlled by the Heroku team.

3. Deployment Process:

Dokku offers a simpler deployment process compared to Heroku. With Dokku, you can deploy your application by pushing your code to a remote Git repository, and Dokku automatically builds and deploys the application based on the specified configuration. Heroku, on the other hand, uses a Git-based workflow, where you push your code to a remote Heroku repository, and Heroku's build system takes care of building and deploying the application.

4. Scalability:

Dokku supports horizontal scalability by using Docker containers, allowing you to scale your application by adding more containers as needed. However, managing scaling and load balancing is manual and requires additional configuration. In contrast, Heroku provides an automatic horizontal scaling feature that allows your application to handle increased traffic by adjusting the number of dynos dynamically. Heroku takes care of load balancing and scaling without requiring manual intervention.

5. Cost Considerations:

Dokku is a self-hosted platform, which means you need to set up and manage your own server infrastructure to run Dokku. This can reduce the costs compared to Heroku, especially for larger applications with high traffic, as you only need to pay for the server resources. On the other hand, Heroku is a fully managed platform where you pay for the resources and services provided by Heroku, which can be more expensive, especially for applications with high resource requirements.

Summary:

In summary, Dokku and Heroku have key differences in terms of architecture, flexibility, deployment process, scalability, and cost considerations. Dokku offers more flexibility and customization options, requires manual server setup, and provides a simpler deployment process. Heroku, on the other hand, abstracts away the infrastructure, offers automatic scaling, and is a fully managed platform. Consider your specific requirements and preferences when choosing between between Dokku and Heroku.

Decisions about Dokku and Heroku

The Friendliest.app started on Heroku (both app and db) like most of my projects. The db on Heroku was on the cusp of becoming prohibitively expensive for this project.

After looking at options and reading recommendations we settled on Render to host both the application and db. Render's pricing model seems to scale more linearly with the application instead of the large pricing/performance jumps experienced with Heroku.

Migration to Render was extremely easy and we were able to complete both the db and application moves within 24 hours.

The only thing we're really missing on Render is a CLI. With Heroku, we could manage everything from the command line in VSCode. With Render, you need to use the web shell they provide.

See more

I'm transitioning to Render from heroku. The pricing scale matches my usage scale, yet it's just as easy to deploy. It's removed a lot of the devops that I don't like to deal with on setting up my own raw *nix box and makes deployment simple and easy!

Clustering I don't use clustering features at the moment but when i need to set up clustering of nodes and discoverability, render will enable that where Heroku would require that I use an external service like redis.

Restarts The restarts are annoying. I understand the reasoning, but I'd rather watch my service if its got a memory leak and work to fix it than to just assume that it has memory leaks and needs to restart.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Dokku
Pros of Heroku
  • 23
    Simple
  • 12
    Open Source
  • 11
    Built on Docker
  • 11
    Free
  • 4
    Yay, it works like a charm
  • 4
    Git deploy
  • 2
    HTTP proxy from public hostname to container IP address
  • 2
    Zero downtime deploys
  • 703
    Easy deployment
  • 459
    Free for side projects
  • 374
    Huge time-saver
  • 348
    Simple scaling
  • 261
    Low devops skills required
  • 190
    Easy setup
  • 174
    Add-ons for almost everything
  • 153
    Beginner friendly
  • 150
    Better for startups
  • 133
    Low learning curve
  • 48
    Postgres hosting
  • 41
    Easy to add collaborators
  • 30
    Faster development
  • 24
    Awesome documentation
  • 19
    Simple rollback
  • 19
    Focus on product, not deployment
  • 15
    Natural companion for rails development
  • 15
    Easy integration
  • 12
    Great customer support
  • 8
    GitHub integration
  • 6
    Painless & well documented
  • 6
    No-ops
  • 4
    I love that they make it free to launch a side project
  • 4
    Free
  • 3
    Great UI
  • 3
    Just works
  • 2
    PostgreSQL forking and following
  • 2
    MySQL extension
  • 1
    Security
  • 1
    Able to host stuff good like Discord Bot
  • 0
    Sec

Sign up to add or upvote prosMake informed product decisions

Cons of Dokku
Cons of Heroku
    Be the first to leave a con
    • 27
      Super expensive
    • 9
      Not a whole lot of flexibility
    • 7
      No usable MySQL option
    • 7
      Storage
    • 5
      Low performance on free tier
    • 2
      24/7 support is $1,000 per month

    Sign up to add or upvote consMake informed product decisions

    - No public GitHub repository available -

    What is Dokku?

    It is an extensible, open source Platform as a Service that runs on a single server of your choice. It helps you build and manage the lifecycle of applications from building to scaling.

    What is Heroku?

    Heroku is a cloud application platform – a new way of building and deploying web apps. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Dokku?
    What companies use Heroku?
    See which teams inside your own company are using Dokku or Heroku.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Dokku?
    What tools integrate with Heroku?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    Sep 29 2020 at 7:36PM

    WorkOS

    PythonSlackG Suite+17
    6
    3049
    GitHubPythonNode.js+47
    54
    72312
    GitHubPythonSlack+25
    7
    3155
    Jun 19 2015 at 6:37AM

    ReadMe.io

    JavaScriptGitHubNode.js+25
    12
    2359
    GitHubPythonDocker+24
    13
    17012
    What are some alternatives to Dokku and Heroku?
    Flynn
    Flynn lets you deploy apps with git push and containers. Developers can deploy any app to any cluster in seconds.
    Docker
    The Docker Platform is the industry-leading container platform for continuous, high-velocity innovation, enabling organizations to seamlessly build and share any application — from legacy to what comes next — and securely run them anywhere
    Kubernetes
    Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.
    Rancher
    Rancher is an open source container management platform that includes full distributions of Kubernetes, Apache Mesos and Docker Swarm, and makes it simple to operate container clusters on any cloud or infrastructure platform.
    Docker Compose
    With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running.
    See all alternatives