Ask HN: Did you use Dokku or Flynn in 2014? Was it worth it? - hayksaakian
======
progrium
So, I wrote Dokku, helped design Docker, was co-architect of Flynn, and am now
in R&D partnership with Deis. I also made Localtunnel, RequestBin, Hacker
Dojo, etc etc if anybody is keeping track. I guess I'm not who this question
was intended for, but I figured I'd share some context.

I can't speak as much to Flynn right now, but here is a fairly recent blog
post about the current status of Dokku:
[http://progrium.com/blog/2014/10/28/deis-breathes-new-
life-i...](http://progrium.com/blog/2014/10/28/deis-breathes-new-life-into-
dokku/)

tl;dr, after a long lull between 2013 and 2014, its activity has picked up and
is slowly working towards a 1.0 including a major refactoring to address a lot
of issues and bring it up to modern standards. In fact, here is our
refactoring doc in progress:
[https://github.com/progrium/dokku/wiki/Refactoring](https://github.com/progrium/dokku/wiki/Refactoring)

I feel the flaws of these projects quite deeply, especially Dokku. But I'm
surprised to still run into so many people (just not as many here) that really
love Dokku. Without them I would not be motivated to come back to it and make
it what it should be.

Keep in mind Dokku was the first killer app for Docker and a lot of my design
influence on Docker was to be able to easily make something like Dokku and
eventually systems like Flynn, Deis, etc. But also so many other things...

------
king_magic
I used Dokku on DigitalOcean. Was it worth it? Honestly? No.

Would it have been worth it if there was any sort of clear roadmap for the
future of Dokku, or anything coming out of Flynn other than "a first beta"
(which I think I've seen at the top of flynn.io for literally months now)?
Perhaps.

I eventually got fed up with the lack of direction, ditched Dokku, and went
with a pure Docker-solution (which I documented here:
[https://medium.com/@robringham/how-interviewpad-uses-
docker-...](https://medium.com/@robringham/how-interviewpad-uses-docker-for-
easy-deployments-on-digitalocean-f85e52f3c9da)), and I don't feel like I lost
much, and I don't regret moving away from Dokku. I feel like I have much more
control now (at the cost of the Docker learning curve, which honestly wasn't
that bad).

From my post on Medium:

"It [Dokku] worked great for a basic setup, but ultimately was simply not
mature enough — minor customizations were straightforward, but anything past
that (particularly around security) involved rolling up your sleeves and being
willing to wade through Dokku’s source code (and that of Dokku’s plugins).
Lack of direction in the project was another concern — Dokku is on hiatus,
with Flynn, Dokku’s spiritual successor, in apparent eternal beta/preview
mode."

To make up for losing Dokku's nice Heroku-like Git deployment, I rolled my own
script-based Docker image swapping system for deployments, which has worked
great.

~~~
hayksaakian
several other comments mentioned [https://github.com/dokku-alt/dokku-
alt](https://github.com/dokku-alt/dokku-alt)

did you check it out? do you think it could fill in the gaps you mentioned?

~~~
king_magic
Interesting. I haven't heard of it, but it certainly looks interesting.

Having ditched Dokku and gone my own way, the one concern I'd have in going
back to something like Dokku is that it always felt like there was too much
"magic" going on beneath the hood, which made me nervous - particularly with
respect to security.

RE: security - one thing I had a hard time of figuring out with Dokku was how
the underlying Docker system played with firewalls (something I still struggle
with, but at least I don't have a layer of scripty Dokku magic between me and
Docker now).

~~~
josegonzalez
Dokku didn't - and still does not - do anything re: firewalls. Thats up to the
server administrator to handle. For instance, you might choose to have this on
a VPC in AWS, in which case you wouldn't need much of a firewall. Or if you're
using this on Digital Ocean where there aren't Security Groups, it would be up
to you to setup ipfw or iptables.

As far as magic, I'm not sure what you are getting at. The entire source is
there for you to look at, and is actually quite readable. I don't write bash
all day, but it was quite easy for me to jump in as a maintainer of dokku.

------
hayksaakian
Background information for readers:

Dokku and Flynn are

Flynn:

"...something like Heroku that we could host ourselves..."

~ [https://flynn.io/about](https://flynn.io/about)

Dokku:

"Docker powered mini-Heroku."

~ [https://github.com/progrium/dokku](https://github.com/progrium/dokku)

\------------

where heroku is a platform-as-a-service for hosting your rails/node/whatever
websites/webapps

~~~
sciurus
Flynn has a much, much larger scope than Dokku or arguably even Heroku. To
complete your quote:

"We knew we wanted something like Heroku that we could host ourselves, but we
also knew that a Heroku clone wasn’t enough. We needed something suited to
today’s needs. It wasn’t just about deploying stateless web apps, it was
scaling them, provisioning and managing databases, and ideally the ability to
run anything that could run on Linux all inside a single platform."

Another product mentioned in this thread is Deis, "a lightweight PaaS with a
Heroku-inspired workflow".

~ [http://deis.io/overview/](http://deis.io/overview/)

------
statenjason
We started using dokku just before 0.2.0 released for hosting our apps. One
place it initially lacked was process management. If you wanted anything
outside of your 'web' process in your Procfile, you were out of luck. I wrote
a couple plugins[1][2] to handle that.

It worked alright for single sever deployments. When attempting to scale to a
multi-server setup, dokku wasn't the right choice. I went down the rabbit hole
of docker orchestration on top of CoreOS, but eventually backed out to go with
Cloud66[3].

[1]: [https://github.com/statianzo/dokku-
shoreman](https://github.com/statianzo/dokku-shoreman) [2]:
[https://github.com/statianzo/dokku-
supervisord](https://github.com/statianzo/dokku-supervisord) [3]:
[https://www.cloud66.com/](https://www.cloud66.com/)

------
colinwilson
I've just started using Deis at work recently. Dokku looks like it was a small
project sponsored by the company behind Deis. I haven't looked much at dokku-
alt.

The thing that I really like about Deis is it supports deployments off of
docker images in a private repo on top of git push deploys.

One of the things we do is host a REST service backed by data we generate. We
can have jenkins automatically build and publish a docker container to our
internal repo, then it's two REST calls to Deis to update the docker container
that is running. We generate the data in Hadoop through a longish oozie
workflow weekly and we can make two REST calls to repoint the REST service to
some new database tables.

I also like that each layer or part of Deis can be swapped out. Want to run
haproxy for the load balancing layer instead of nginx? Someone probably has a
container that can be dropped in instead. Want swap a more advanced scheduler
for etcd, you can swap in Mesos, YARN, or even Flynn's scheduler.

------
cenhyperion
I volunteer as the backend rails dev at
[http://balloonchallenge.org/](http://balloonchallenge.org/) and ended up
doing our ops, using Dokku to handle our main site's pushes. I'm terrible at
devops and Dokku has been bulletproof so far. It's been flexible enough that
when I needed to do things like edit some nginx config, it wasn't an issue.

I've hit some issues with docker and server restarts, but that's mostly due to
my own incompetence with docker.

Overall it's a great tool that I recommend to a lot of friends. Paying the
ridiculous Heroku prices just to be able to do a code push via git is silly,
and Dokku largely solves that need among others.

------
mr_luc
Using dokku for a few BigCo projects since late 2012.

I want to do what another commenter (renegar) mentions, and simply use
Docker/machine/compose, now that that is a viable option. For my next green-
field project, I probably will.

Dokku doesn't try to realize _all_ of the benefits of containerization by a
long shot, but it's the most frictionless way to get started with
containerization for small projects. The stack is a pretty common one (ubuntu,
nginx, git push to deploy) and everything residing either in bash script or a
docker image means it's almost as easy to extend as an ordinary, non-
containerized server would be.

------
renegar
Heavy Docker user. Played with but have not used them, because
Docker+machine+fig (now compose) already gives me everything I need
(isolation, repeatable build, atomic deploy) without another infra layer to
worry about.

Then again, I'm a one-man 360 shop and a control freak, and I'm not afraid to
slap together a webhook-eating build+deploy process on a whim. So, my use case
is probably not representative of Docker users in general.

~~~
smt88
Do you deploy in clusters? That's my main gap with Docker, and I haven't
decided how to cover it. Deis[1] is the frontrunner at the moment, but a DIY
solution is more appealing to me. I like to understand all the parts of my
stack that I can.

1\. [http://deis.io](http://deis.io)

~~~
eropple
I do deploy in clusters, and Mesos is pretty much the default for me. It's
much, much smarter in terms of work allocation than Deis or the like, it's not
tied strictly to Docker, and, having been in its codebase, I trust its
engineering much more than the alternatives. It's cautiously-designed
software, and it is the better for it.

I would emphatically advise against rolling your own unless it's for projects
you don't otherwise care about. Security and scalability are not trifles, and
everybody else has already stepped on the rakes.

------
SebastianSzturo
We are using dokku for our internal applications and it works really great.
The development stagnated a bit for the last months, but since the deis guys
picked up the project it seams that they are starting to work on new features.

I also made a zero config dokku-cli[1] to get it more herokuish.

[1]: [https://github.com/SebastianSzturo/dokku-
cli](https://github.com/SebastianSzturo/dokku-cli)

------
frio
Yes.

Flynn wasn't complete enough to use.

Dokku was too much of a moving target.

Deis requires substantially more resource than I'm willing to stand up for a
minimal project.

My ideal solution would be a Dokku-like on a hardened CoreOS. I'm hoping some
of these projects turn an eye to security in 2015 -- hardened toolchains,
kernels, etc.

------
nonuby
The ideas behind 12 factor principles are pretty solid, however Im no longer
sold on them as being the one and only way, in other words, sometimes your
company setup might be better supported with alternative opinions (e.g.
context rich logging, smart frontend routing - e.g. exploiting haproxy/nginx
directives rather than dumb proxy forwarding). I guess this was contributing
reason I didnt take openruko forward (although some others did). It is great
there are supported/maintained heroku like implementations such as dokku/flynn
but it might not be ideal or compatible with your style of devops. I guess my
advice would be to take inspirations from these systems but ultimately you
have weigh up if its a good fit.

------
segphault
I build a bunch of small web apps with a pretty diverse range of stacks. I
like Dokku because it lets me deploy the apps in a uniform way regardless of
what I use to build each one.

It's convenient, but Docker is likely overkill for the kinds of apps that I'm
building. I don't have a compelling need to isolate them, I'm mainly taking
advantage of the fact that Dokku automates the process of putting together the
runtime environment and fetching the dependencies.

Dokku is reliable enough for what I'm doing, but I would frankly be reluctant
to use it in production for anything that I really cared about.

------
navyrain
Have been using dokku on DigitalOcean since the 0.2.0, for personal projects.
After bumping up against the poor quality of database plugins, I found "dokku-
alt", which comes with pre-packaged well-functioning plugins for common use-
cases, and seems to be good enough for my needs.

When evaluating the ecosystem, I got the impression Flynn has stalled out, and
Deis looks to be too large for my modest requirements.

What I'd really like is ElasticBeanstalk or Heroku, but the per-app pricing
quickly breaks the bank. My kingdom for a graceful way to host many tiny, low-
traffic apps for cheap!

------
captn3m0
I used Dokku, and tried real hard to get it to work, but it just didn't work
out. Getting started was easy, but once you start configuring things, and keep
adding plugins for everything that you are doing, it keeps getting crazier.

In my case, I gave up when I couldn't get dokku to start a (critical)
container on its own after a reboot. Ultimately, I think dokku is a good thing
(in general) but to get it to succeed, it needs to get decoupled with docker a
bit, so that people like me can use it easily without having to deal with
docker.

------
kaffee
Dokku-alt has been tremendously useful for testing and small projects.

[https://github.com/dokku-alt/dokku-alt](https://github.com/dokku-alt/dokku-
alt)

Dokku-alt is a fork of dokku.

~~~
twunde
So looking through the link, the value add appears to be in the plugins. For
your use case what is the main benefit of using dokku-alt?

~~~
xena
Dokku-alt lets me use a Dockerfile to build applications.

~~~
josegonzalez
Dokku also has this feature as of the 0.3.15 release[1].

[1]
[https://github.com/progrium/dokku/releases/tag/v0.3.15](https://github.com/progrium/dokku/releases/tag/v0.3.15)

------
robguthrie
Yep. We (Loomio) have been using Dokku as an alternative to Heroku hosting -
our main site is still on heroku, but we know that many people are using Dokku
for Loomio hosting.

I spent about a week writing up the documentation:
[http://github.com/loomio/loomio/wiki](http://github.com/loomio/loomio/wiki)

Since doing that we've seen a big increase in the number of poeple
contributing code and helping out on Github. It's certainly been worth it from
that point of view.

------
morgante
We gave both Dokku and Flynn a try earlier in 2014. Dokku ended up just being
too simple for our needs—we're deploying to a cluster, not a single machine.
Flynn still felt too immature and definitely isn't optimized for microservice
architectures.

Instead, we hired progrium (the creator of Dokku) to help us build out a Fleet
& CoreOS based deployment infrastructure. With a couple custom bash scripts,
all run through CircleCI, it's worked pretty well so far.

------
jdoconnor
I used Dokku (and Dokku-alt) on Digital Ocean with the goal of making
deploying easier. I ended up getting rid of it (and Docker) because for a
small scale system, Docker wasn't worth the overhead (vs capistrano and ruby,
or heroku's git push). On the other hand, at my last job -- where scale was
much larger, we implemented a Docker orchestration system to handle our SOA
using Consul as a registration system.

------
sehrope
I played around with it quite a bit in early 2014 and even wrote a plugin for
it. It gave me a better understanding of Docker and abstracting things into
containers. The internals are all bash scripts so it's pretty easy to follow
how it works and modify it.

[1]: [https://github.com/sehrope/dokku-logging-
supervisord](https://github.com/sehrope/dokku-logging-supervisord)

------
xena
I use Dokku-alt but have previously done most of the groundwork for
implementing my own such system:
[https://christine.website/projects/flitter](https://christine.website/projects/flitter)

It's been mostly untouched since December, but it is 100% Go and runs on top
of CoreOS.

------
qubitz
I started out with Dokku and ran into a number of issues. After moving to
dokku-alt I've found it to be very useful for running small services.

------
gbraad
Excellent tools for setting up new services without mch effort; I found it
ideal for microservices and even hackfests.

------
technologia
I've tried to use Dokku in the past but opted for flynn and deis.io

------
thecatspaw
you may want to expand on this question. what is the background of this?

Are you looking for experience in a professional or personal setting? Large or
small scale deployments?

------
urda
No, and no.

Both are pretty lackluster and honestly not worth the effort.

------
alanvitor
And what about Tsuru? ([https://tsuru.io](https://tsuru.io))

------
kaeruct
I have no idea what either of those things are

~~~
Artemis2
[https://google.com](https://google.com) will help you

------
ForHackernews
I've never heard of either of these projects. Context? What are they?

~~~
smt88
If you haven't heard of them, you haven't used them, so why comment? If you
want to know what they are, you could just as easily Google them as post.

