bbb/_posts/2020-12-08-getting-ready.md
2020-12-08 10:42:36 +00:00

50 lines
2.3 KiB
Markdown

---
layout: post
title: Getting Ready
---
After contemplating about different options for DNS, hosting, and the bloggging technology for more than a week, I have settled on the following configurations to start blogging! (for now! )
### DNS
[Bionic Beanie](https://theportalwiki.com/wiki/Bionic_Beanie) is a head wear from [Portal 2](https://en.wikipedia.org/wiki/Portal_2) co-op. Portal series is one of my favourite PC games and Bionic Beanic Blog scores 10/10 on alliteration consonance (in my opinion :P)
Bought it right away from [Go Daddy](https://in.godaddy.com/). The package included DNS hosting as well.
### Blog
I wanted to use a static site generator as opposed to any CMS. In my experience, CMSes typically get bloated with more plugins and addons and tend to get slower. [Jekyll](https://jekyllrb.com/) is what I settled with - mainly because I recognise the name Jekyll from my childhood with [**The Strange Case of Dr Jekyll and Mr Hyde**](https://en.wikipedia.org/wiki/Strange_Case_of_Dr_Jekyll_and_Mr_Hyde). Also, Jekyll is highly configurable and blazing fast!!
To start things off, this site is powered by [Lanyon](https://github.com/poole/lanyon#readme) which is an extension of [Poole](https://getpoole.com/) - the Jekyll butler (name derived from the afore mentioned book).
### Hosting
Bought the cheapest VPS from [Vultr](https://www.vultr.com/) for $5 a month - 1GB RAM and a single core shared server. This is good enough for hosting my static files.
### The Setup
The server will run behind an [nginx](https://www.nginx.com/) instance serving static files from `_site` folder that are built as part of jekyll build process. This way, to publish new changes, I just have to clone and build the files. The blog itself will be in a private git repository.
[LetsEncrypt](https://letsencrypt.org/) helped issuing free ssl cert for my domain.
The below nginx conf concludes the setup of the blog.
```
server {
location / {
root /var/www/html/site; # synlink to _site
}
listen 443 ssl;
ssl_certificate <path to chain.pem>;
ssl_certificate_key <path to private-key.pem>;
}
```
I can make new changes on the repo and push them in.
And publish new changes with `JEKYLL_ENV="production" bundle exec jekyll build` from inside the VPS.
It should be possible to do this with a git hook, but I'm not too worried about it right now.
**Let's Go**