darron
http://www.octohost.io/data-stores.html
I added some "magic" Dockerfile comments - this is the one to add in order to not expose anything via HTTP:
NO_HTTP_PROXY
I am not a huge fan of volumes where data is stored on the box - but you can do it the same way I've described on the page.
I think of octohost boxes as app servers - if you have data on it, you should likely have it stored elsewhere. I've used Heroku to store additional data sometimes:
http://blog.froese.org/2014/03/17/using-octohost-with-heroku...
We've also used remote MySQL servers:
https://github.com/octohost/mysql-plugin
There's lots of ways to do it.
Packer is a tool that helps to build the image that octohost runs on. It installs all of the software needed and prepares the VM it runs on.
Vagrant is a tool that allows you to run different virtual machines on your local development box. It has nothing to do with production at the moment - it's just for running it locally.
The octovagrant box is pretty open - but that's because it's for running things locally. When it's installed on AWS/DO/Rackspace/Linode/etc. it's firewalled from remote people - but still is pretty open internally. I wouldn't let untrusted people push to it at the moment.
Yes - you need all of the cookbooks, but Packer will take care of that for you - you don't have to really worry about that.
If you're just using the AWS AMI that we've already built - then you can really ignore Packer and Chef - just launch the AMI and you're done.
Docker allows you to run processes inside of a container. So you can launch a set of processes from your source code and have it run on its own.
Once it's setup, you merely add a remote git target, push your code to the server and it builds and launches the code that you have pushed. It works like Heroku for simple websites.
That help at all?
Fig didn't exist when I started this and I wanted to mirror the git push that Heroku used.
Logging is handled by Docker - and can be sent to services like Papertrail if you use something like logspout:
http://blog.froese.org/2014/05/15/docker-logspout-and-nginx/
I started this project with Ansible because I wanted to learn how to use it.
As I went along, I wanted to learn more about TDDing Chef cookbooks with Test Kitchen so I switched back to Chef.
http://www.octohost.io/aws-install.html
I should link to it from the homepage - that will be added shortly.
http://www.octohost.io/screencast.html
Then I have detailed what happens more thoroughly here:
http://www.octohost.io/theory-of-operation.html
That help?
One major difference (like already mentioned) is that I wanted to use Dockerfiles rather than Procfiles. I wanted to have full control over how it built and ran - and I didn't want to go through slugbuilder / buildstep at the time.
It may actually be easier on end users to use Heroku buildpacks and abstract some of the magic - but for our uses Dockerfiles were the best fit.
Now, the Tutum team came out with something that even simplifies it even more - and it might be worth looking at:
http://blog.tutum.co/2014/04/10/creating-a-docker-image-from...
I have had that on my backlog for several months and just haven't had time.
Deis is a much more mature choice and is based on CoreOS which is awesome.
I'd likely change that today if I was starting now - but that was in November 2013 when Docker was much more beta.
I'd honestly love a system that deploys the image for you to the cloud of your choice - with setup for ssh keys and things to make it simple.
Just not in the cards timewise at the moment.
We have a static template that you can see here: https://github.com/octohost/html
You can also use all sorts of other languages/frameworks - a full list is here: http://www.octohost.io/languages
Deploys use git.