DigitalOcean is a really nice cloud hosting company that offers excellent performance at affordable rates
Docker is an abstraction on top of LXC Containers. Docker introduces a workflow that makes operating containers straightforward and lots of fun.
Dokku is a tiny program that allows you to easily deploy your applications. It was built by progrium (from localtunnel) on top of docker, Buildstep, gitreceive, pluginhook, nginx, Heroku BuildPacks,& sshcommand
DIY
Register with Digital Ocean and add your SSH key
Create a new droplet using the latest Ubuntu making sure you select your ssh key. Go for a 1GB+ droplet
As soon as your server is ready you can connect via SSH
If you get prompted for a password you forgot to add your SSH key to the server. You can still login in using a password (it’s in your email). Connect to your server using the root password and add your key to ~/.ssh/authorized_keys
Installing dokku is easy
Dokku works best with a domain so applications can respond to foo.dinosaurspaceships.org instead of dinosaurspaceships.org:29842
Add these A records to your domain making sure they point to your server. You can even do this in the DigitalOcean Control Panel if you configured your domain to use their name servers
You can now connect to your server using your domain name
Dokku uses the /home/dokku/VHOST file to store your domain name so make sure dinosaurspaceships.org is in there
To give yourself (and others) permission to deploy use the sshcommand program
Deploy your first application: Tiny; a node.js based url shortener
Tiny responds to two kinds of HTTP requests
We can deploy tiny by git pushing from our machine to the server
On the server you can use docker to check if the process is running
Shorten your first URL. What better pick than dinosaurspaceships.org?
Resolving the shortened version
Voilá!
Docker provides you easy access to logs
Environment variables are commonly used to store secrets such as api keys or passwords. Dokku support this functionality out of the box
This is all for now