Hacker News Re-Imagined

Dokku – Free Heroku Alternative

  • 237 points
  • 16 hours ago

  • @punnerud
  • Created a post

Dokku – Free Heroku Alternative


@nasmorn 11 hours

Replying to @punnerud 🎙

I have used it quite a bit. What I hate about it is that it runs on my single machine and the underlying system updates feel a bit dangerous to do. Also at one point it would endlessly crash after adding another worker to a project and there is no way to debug it easily. I moved almost all the projects to DO Kubernetes now. I had written my own dockerfiles anyways since it means faster deploys. The fact that deployment goes through CI is more of a bonus. The Setup is more involved though

Reply


@juanse 11 hours

Replying to @punnerud 🎙

I think with moderns and dedicated VPsS this can work for a very long way.

Hetzner offers 48 dedicated vcores/192 GB RAM in a single machine for less than 500€/month. I can totally see many business working for years within these boundaries. Also, not every company need Google-grade high availability.

Reply


@dgb23 11 hours

Replying to @punnerud 🎙

When it says free heroku alternative that runs on a single host/vps, then I assume the file system stays durable (as opposed to ephemeral). Is that correct?

Reply


@bullen 13 hours

Replying to @punnerud 🎙

The smallest PaaS you have ever seen is one order of magnitude larger than mine: https://github.com/tinspin/rupy

And I bet you the same goes for performance, mine can share data between cores atomically.

Reply


@joshstrange 11 hours

Replying to @punnerud 🎙

Dokku is nice and I used it for a while but recently I've been using CapRover [0] and been pretty happy with it. I only use it on 1 host but it supports multiple. It also has 1-click installs for the usual suspects (drupal/wordpress/etc) and things like spinning up a DB is easy. You can also define a docker file in your repo that you instruct it to build and use. HTTPS is a button click and it automatically sets up virtual hosts for you `<your app name>.<base url you configured>`. It's great for quick prototyping and to get a personal project online.

[0] https://caprover.com/

Reply


@pvsukale3 10 hours

Replying to @punnerud 🎙

Self plug. Some other open source/ proprietary projects like Heroku

https://ossdatabase.com/projects/heroku

Reply


@RileyJames 12 hours

Replying to @punnerud 🎙

Been using it a year or so now. As my B server. $40~ on DO, that I ram all my side projects onto.

From a dev perspective, it’s been awesome.

I have zero monitoring on it, so I have no idea if users love it. But analytics look good.

Either way. Impressed. And appreciate all the efforts behind the project.

Edit: Rails, pg, sidekiq, etc.

Reply


@eric4smith 2 hours

Replying to @punnerud 🎙

Dokku is amazing.

The single point of failure though, is something people worry too much about. If you are serious about what you host, you do need to have another host ready to go.

Majority of workloads can be down for a few hours without customers worrying anyway.

We actually use it for hosting quite large workloads, but we do have a few bar e metal hosts we manually provision different services across. At a moment's notice we can quickly push the app to a different server and would be down for a few tens of minutes at most, minutes normally.

I just don't get the expense of Heroku just because your (in reality) non-essential workload can't be down for a few seconds.

Reply


@wilsonfiifi 11 hours

Replying to @punnerud 🎙

Dokku is an excellent Heroku alternative. If you have the means, please support the project by paying for Dokku Pro [0]

[0] https://pro.dokku.com/

Reply


@tomatowurst 9 hours

Replying to @punnerud 🎙

Is there proper tutorial for people who have never used heroku? I just don't know how to use this because i dont have any experience with heroku.

I'm interesting in self-hosted AWS api compatible solutions.

Parse is also interesting. In fact I discovered that there is a whole new world outside AWS and DO. It no longer makes sense for me to run weekend projects on AWS outright, thats really for large enterprise applications.

What I would love is to be able to deploy my docker images on my "own"cloud running on a dozen droplets/VPS around the world and bill my users at the same rate that AWS is charging. I figure I would be able to undercut AWS significantly with this method.

Storing 2TB on AWS was price shock for me, makes no sense when there are dedicated servers with a ton of storage and bandwidth that I could just use instead of being "serverless".

However, I find it to be a hall of mirrors, wondering if anybody on HN has been in my shoes and how they are handling it. I guess my biggest concerns:

- uptime availability (can I promise close to AWS?)

- security (how do i harden my box/selfcloud and have peace of mind?)

- IAM type of roles/permissions (how do i emulate something like IAM for my team?)

Like the billing from AWS is getting to a point where I feel like we can use bunch of droplets behind some "selfcloud" that manages all these things for me. I'm sure a solution exists, I just often have trouble recalling their names. Dokku makes it easy to remember because it sorta rhymes with Heroku.

Reply


@mardix 8 hours

Replying to @punnerud 🎙

Similar to Heroku deploy flow, checkout Sailor, a tiny PaaS to install on your servers/VPS that uses git push to deploy micro-apps, micro-services, sites with SSL, on your own servers or VPS.

https://github.com/mardix/sailor

Reply


@vanilla 11 hours

Replying to @punnerud 🎙

We have been using it for our internal dev and test environment.

I was very disappointed that it did not have tcp/udp proxy support. Fortunately the plug-in system allowed us to extend this functionality in a day.

Dokku is very nice for this use-case. No need to have a complicated kubernetes setup.

Reply


@greysonp 11 hours

Replying to @punnerud 🎙

Can't recommend Dokku enough. I've been using it for years on a $20 DigitalOcean box. I have a lot of random web projects/tools, most of which I'm the only user, and it's great to have a super simple way to get them online. Enabling HTTPS and assigning a domain are each just a single command.

Reply


@yebyen 12 hours

Replying to @punnerud 🎙

There's also Deis Workflow (Hephy Workflow)

https://web.teamhephy.com

For those worried about a Single Point of Failure, you can't have your cake and eat it too. Docker and Dokku is a single point of failure when you build directly on it, I guess. Kubernetes mitigates that.

We're still here, keeping the tires on. I haven't personally tested K8s 1.24 with Workflow yet, but we are actively seeking maintainers on all of the cloud vendors.

If you find that something is broken and want to see it fixed, talk to me on Slack. I'm aware of at least Azure that has broken their Bucket Storage API since Workflow was originally published by Deis, and it hasn't been quite fixed yet.

Documented support for Google Cloud and AWS are both extant as well, although I've heard one person call into question whether Google Cloud storage will work out of the box, or if it still needs upgrades. We'd like to add DigitalOcean support as well, I already know it basically works, we just need to add documentation and probably also give it a quick spit-shine and polish.

Dokku on the other hand is less heavyweight and does not require as much work for maintenance, since it does not have to be decentralized or protect against any SPOF. It's a wonder that more people do not want to use this. I've heard of at least one more Deis Workflow fork in the wild, possibly in better or worse states of maintenance than Team Hephy, but if you are looking to get off of Heroku then you could certainly do much worse.

We do need volunteers as we do not have time to maintain everything by ourselves, (come talk to us on the Slack if you're interested in joining the fun!)

Reply


@evoxmusic 9 hours

Replying to @punnerud 🎙

Does dokku supports preview environments like Qovery?

Reply


@emehex 13 hours

Replying to @punnerud 🎙

I’ve been running https://scrape.world on dokku + DigitalOcean for two years, zero issues!

Reply


@thomasfedb 7 hours

Replying to @punnerud 🎙

Have been using Dokku in (small scale) production for years and absolutely love it. Was also recently pleasantly surprised to see that Dokku supports ARM... so looking forward to trying it out on my RPi4 next week.

Reply


@block_dagger 13 hours

Replying to @punnerud 🎙

I’ve run high-ish traffic production sites on Dokku for years. If you need just one server, it’s a dream for Rails/PG/Redis setup. Amazing what reliability it provides. Almost completely written in bash!

Reply


@chasd00 10 hours

Replying to @punnerud 🎙

I’ve been dokku for a long time. I think before there were any plugins. Works just fine for me, but I’m not doing anything out of the ordinary. I run all my hobby and side projects with it on linode.

Reply


@VWWHFSfQ 14 hours

Replying to @punnerud 🎙

Did they ever figure out the scaling problem or is it still just "one web dyno and that's it"?

Reply


@AndrewOMartin 14 hours

Replying to @punnerud 🎙

I came to the comments first to answer "what's the catch?". There were no comments at the time so I went to the website. This line near the top seems particularly fair and believable.

> Own your own PAAS. Infrastructure at a fraction of the cost. Powered by Docker, you can install Dokku on any hardware. Use it on inexpensive cloud providers. Use the extra cash to buy a pony or feed kittens. You'll save tens of dollars a year on your dog photo sharing website.

Reply


@Gys 14 hours

Replying to @punnerud 🎙

Yes, I love Dokku and like to use it as an alternative for some of my Heroku apps. However, the thing I miss most is Heroku including a nice dashboard showing several metrics for my Golang apps (memory usage, go-routines, etc) over time. Heroku has that out of the box and that makes it very convenient.

Reply


@pixelmonkey 11 hours

Replying to @punnerud 🎙

Also check out piku, especially if you are hosting Python or Node apps:

https://github.com/piku/webapp-tutorial/blob/master/README.m...

It is a way to get the same sort of developer experience benefit as dokku, but without dockers and containers, using plain UNIXy tools on a single Linux node. The above link explains how it works.

Reply


@nanope 9 hours

Replying to @punnerud 🎙

Why would I use this over say minikube + ingress or just plain Docker + Caddy?

Reply


@squiffsquiff 4 hours

Replying to @punnerud 🎙

They're just begging for it to be called 'Dooku' when it breaks, aren't they?

Reply


About Us

site design / logo © 2022 Box Piper