Say hello to eliasbrange.dev

July 14, 2019

I finally found a reason to buy eliasbrange.dev, to give this blog a proper home. The setup through GitHub Pages was dead simple and SSL works out of the box. Fantastic! For anyone else interested in setting up their own blog, below is the high-level setup of mine.

Blog setup

While setting up this blog I wanted something that was as easy to work with as possible:

  • I did not want install anything locally. Only local dependency needed should be docker/docker-compose.
  • I needed a theme to start from, since my CSS skills are pretty darn bad.
  • I wanted every push to master to be automatically deployed.
  • I wanted a free hosting alternative.

Static engine

I have used Jekyll before so due to that previous experience I decided to use Jekyll again in favour of Hugo. Since Iā€™m currently on a journey learning Go, Hugo could have been a great choice but I wanted something up and running quickly.

Local environment

When I first created my previous Jekyll page over at brulugames.se I did not spend any time creating a local development environment using docker, instead I used the Jekyll CLI locally for development. This time I did not want to install Jekyll and its dependencies locally so I decided to use the official Jekyll image combined with the following docker-compose.yml.

Setting up the local environment is now as simple as doing

$ docker-compose up

and then browsing to localhost:4000. The --watch part of the command makes Jekyll automatically regenerate the blog if a change is made to any file. When modifying _config.yml, which seems to require a restart, a simple docker-compose restart takes care of that. Coupled with stop_grace_period: 0s restarts are nearly instant.

Theme

My CSS skills are almost non-existent so I needed a solid theme to start from. After scouring through lots and lots of theme pages I settled with Reverie, which seemed to fit my requirements.

GitHub Pages

One of the reasons for creating this blog was that I was playing around with GitHub Pages and wanted to try it out. Since it is free and fulfills my continuous deployment needs it is a perfect fit. I also bought the www.eliasbrange.dev domain and GitHub Pages automagically handled a LetsEncrypt SSL certificate for me. How convenient!

www.brulugames.se

While setting up this blog with the improved local development and CD I decided to revamp my old setup on www.brulugames.se aswell. There I used the same local docker-compose.yml to create an identical development environment. For hosting the page I decided to try out Netlify, and wow, it was almost too easy. The only problem I ran into was that the docker image I used had bundler version 2.0.2 and the Netlify image had 2.0.1 so it failed to use my Gemfile.lock. A quick workaround was to remove the Gemfile.lock from the repository and have Netlify regenerate it on each build. Getting a SSL certificate from LetsEncrypt was dead simple there aswell.

So now I have two sites with extremely simple development environments combined with continuous deployment, now I just need to fill them with content.

Over and out!

Have you found a typo or have any other suggestions for edit? Let me know in the comments below or create a PR on GitHub.