I wanted to cover off how I currently host this blog for free using a number of services being offered by different companies.
what do you need this days?
This website has a few moving parts:
- Blog software
- SSL Certificates
- SSL Forwarding
The following post describes how I managed to get all of the above setup for free.
I’m currently using jekyll to for my blogging software. This allows me to create a bunch of files and using some Ruby markup the files into a HTML blog. This means that when I need to add a new post all I have to do is add a single text file with human readable text in it and then using some markup convert it into HTML pages for your viewing.
The jekyll docs has some really good information on how to get started. I had a look at octopress but preferred to stick with native jekyll. If your a little on the unsure side of things I’d suggest using octopress.
Github which I already used to host code also allows for Github Pages. This is a web hosting service that takes a special branch from your repository ‘gh-pages’ and allows you to host a some documentation for your project. You can also setup personal sites naming them in a certain way (username.github.io) and github will checkout the master and automatically setup a subdomain with the contents of ‘master’ being the webroot. This method also allows you to setup a ‘CNAME’ file in that branch file that can use used to host custom domains/hostnames. Take a look at this documentation for more information. Unfortunately Github Pages doesn’t allow for SSL termination.
StartSSL offers free SSL certificate signing. The website is a little clunky and is prone to outages but if you persist you can get a SSL signed certificate from them.
Now that you have a SSL certificate you can simply go and signup for a free account over at CloudFlare. Upload your signed certificate and turn on ‘Flexible SSL’. This means the traffic between cloudflare and github is unencrypted but means that the user (and google!) will be viewing the site via a SSL certificate. This will help you in ranking and enables a caching service so if github should have an issue you have some redundancy. Win, Win!