Setting up a data (science) portfolio blog

Setting up a data (science) portfolio blog

Whether finding employment or starting out as a freelancer, "putting yourself out there" by building a blog / portfolio website is generally a good idea. But, as "data people" and not "web-design people," we generally don't want to get too stuck into the nitty-gritty of managing a website (nor spend any significant coin).

This is my guide to getting a blog (built with the Ghost platform) up and running in minimal time. With an accompanying Shiny Server, to showcase your R appliations / rmd reports.

The ongoing costs are $5/month (after you’ve used up the first two, free months -from a referral link, such as this -wink wink).

Let's get started

Part 1:

  1. Go buy a cheap domain. Something like will be ~AU$2 from (don’t buy the extra “protection” that they try to up-sell to you. Also, make sure your only buying 1 year (not 2). Turn off auto-renewals, if you can be bothered.
  2. In the DNS settings (in godaddy or your alternative domain supplier), change the nameservers in the DNS settings to point to digital ocean (,, They say it may take up ~1 hour for these changes to propagate.

  3. Create a digital ocean account (use someone’s referral link, to two months worth of freebie credits)
  4. Download and install Putty
  5. Add an SSH key to Digital Ocean (we could just use a plain old password… but IT security people will laugh at us)
  6. Create a new droplet based off the Ghost 1-click install image, in the Digital Ocean Marketplace.
  7. In to Digital Ocean, go to "Networking" and add
  8. In the domain view, add an A record: @ and have this point to your newly created droplet. While we're here, do the same for another A record with www.

  9. SSH into your droplet with Putty, get the ghost install started, type in your naked domain (ie not when requested. Let the installer do it’s thing. Success? If not, probably your DNS hasn't propagated yet (try again in an hour).
  10. Inspect your domain in your browser (you see a template blog there, right?)
  11. Login at and do the admin set up. Add a blog title and create a user login, for yourself. Skip adding additional site contributors.
  12. Delete the staff member called, Ghost (perhaps after you've read their helpful instructional posts).
  13. You're good to start blogging. Have at it. Send me a link :-)

Part 2

The whole point of setting up this blog, was that it would be nice and easy and minimal trouble...

But, at this point I noticed that there were a few additional things that were pretty important to get sorted. Unfortunately, I ran into loads of trouble figuring them out. We need to:

  • Make the www version of our url redirect to our naked domain
  • Setup MailGun, so our access passwords can be reset (and member subscriptions can work)
  • Add commenting functionality
  • Sort out some kind of backup process, in case of server failure
  • Add our shiny server + a subdomain for it

I'll add these sections on in the coming days.