Drek.ca

Setting Up Ghost on OpenShift using Ubuntu

January 04, 2014

OpenShiftLogo

Using Kubuntu 13.10 x64, revised for Ubuntu 14.04.
Insert your own values for **CAPITALS**.


###Initial Setup###
  • Sign up with OpenShift.com
  • 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 user.email "**EMAIL@ADDRESS.com**"
    git config --global user.name "**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 https://github.com/openshift-quickstart/openshift-ghost-quickstart.git

###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
    

###Themes###
###Configuring Ghost###
  • [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.

http://www.derekroberts.ca/build/


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.


Written by Derek Roberts.

Agile DevOps, OpenShift, Music and More.