Setting Up Ghost on OpenShift using Ubuntu


DEPRECATED - Red Hat has retired OpenShift v2###

The silver plan, paid by use, has been replaced with a $50/month pro tier. Now I'm using Heroku, whose paid plans start at $7 US/month.

Using Kubuntu 13.10 x64, revised for Ubuntu 14.04.
Insert your own values for `**CAPITALS**`.
###Initial Setup###
  • Sign up with

  • Setup Ruby and Git by cmd, for Ubuntu/Kubuntu 14.04.

sudo apt-get install ruby-full git-core
  • Setup Ruby and Git by cmd, for Ubuntu/Kubuntu 13.10 and earlier.
sudo apt-get install ruby-full rubygems git-core
  • Verify Ruby and Git have installed properly.
ruby -e 'puts "Welcome to Ruby"'
git --version
  • Set some git defaults.
git config --global "****"
git config --global "**YOUR_NAME**"
git config --global push.default simple
  • Use RubyGems to install RHC
sudo gem install rhc
  • Setup RHC using the defaults and your judgement.
rhc setup
  • Remember to update RHC from time to time
gem update rhc
  • Create the Ghost application. Pick a meaningful name.
rhc app create **APP_NAME** nodejs-0.10 --env NODE_ENV=production --from-code

###Troubleshooting the Setup###
  • The first time this is done the authenticity of your site likely can't be established, so just type 'yes' when prompted. If setup get stuck after this, press Ctrl+C and clone the git repository manually.
rhc git-clone **APP_NAME**
  • If you don't make it that far or want to start fresh, delete the application and free up that app name.
rhc app-delete **APP_NAME** --confirm

###Working with Git and RHC###
  • Navigate into the new directory. Edit the files there manually.
cd **APP_NAME**
  • To see info about your app type the following.
rhc show-app **APP_NAME**
  • Update and push out changes like this.
git add --all .
git commit -m 'My changes'
git push
  • Then restart the app to put those changes into effect.
rhc app restart
  • Don't forget to take regular snapshots!
rhc save-snapshot

###Configuring Ghost###
  • Login to your new blog from the following link.

    • Create an administrator account on the first login. If something goes wrong restart the app and try again.
    • The rest is fairly straightfordward, so you can take it from here.

  • [OPTIONAL] Provide a Gmail account for sending password resets.
    • Edit config.js, but be warned this is not secure!
    • After this is done update git and restart the app.
        url: 'http://**YOUR_SITE_ADDRESS**,
        mail: {
                transport: 'SMTP',
                options: {
                        service: 'Gmail',
                        auth: {
                                user: '**GMAIL@GMAIL.COM',
                                pass: '**PASSWORD**'

###Custom Domain Setup###

Configuring GhostWall Theme###

For details on this this site is configured, please see the link below. Be warned that the theme used costs around $24 US.

That's it!

  • [BONUS] To make running multiple commands simpler I recommend adding aliases to .bashrc, hidden in your home directory.

    Creating Aliases with .bashrc

Many thanks to Andrew Hobden (aka. Hoverbear) for providing just enough taunting/direction to help.