The past days I've been trying to find a cloud provider to deploy an app to. So, until docker becomes a bit easier and flynn up and running, I'll stick with one of the known ones, i.e. heroku.

I've been trying to get a simple list of heroku deployment steps for a while and after watching a nice video I think I've got it.

So, without more ado, here they are.

Preliminary steps

Assuming that you want to start from scratch, here is what you need to install (dependencies):

  • Install git. You can get it via your packager in linux or from their official website
  • Create an account on Heroku if you don't have one
  • Install the heroku toolbelt
  • You may want to create the database on heroku too at this point...

Deploy the app

  • Heroku is using GIT to move things around. Therefore, you need to git-ify your app

    cd your_app_dir
    git init
    git add .
    git commit -m "initial commit"
    
  • Create the app on heroku:

    heroku create --stack cedar app_name
    

This will create a heroku remote git link

  • Deploy your app:

    git push heroku master
    

The documentation says that the push is smart enough to get submodules!

Once you have pushed, depending on your app type, a post-commit hook will be enabled, so various commands will be executed e.g. db sync, getting dependencies (gems or pip for example), bringing the app "up and running".

That's it. If you want to automate the process, you can write your own script (or fab file for python based apps).