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...
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
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...
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-...), 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.
did you check it out? do you think it could fill in the gaps you mentioned?
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).
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.
Dokku and Flynn are
Flynn:
"...something like Heroku that we could host ourselves..."
Dokku:
"Docker powered mini-Heroku."
~ https://github.com/progrium/dokku
------------
where heroku is a platform-as-a-service for hosting your rails/node/whatever websites/webapps
There's a big gap between the initial weekend-project implentation and all the many, many details that are required to build a full-featured one that "just works".
"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".
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 [2]: https://github.com/statianzo/dokku-supervisord [3]: https://www.cloud66.com/
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.
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.
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.
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.
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.
I also made a zero config dokku-cli[1] to get it more herokuish.
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.
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.
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!
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.
https://github.com/dokku-alt/dokku-alt
Dokku-alt is a fork of dokku.
I spent about a week writing up the documentation: 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.
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.
It's been mostly untouched since December, but it is 100% Go and runs on top of CoreOS.
Are you looking for experience in a professional or personal setting? Large or small scale deployments?
Both are pretty lackluster and honestly not worth the effort.