What I'm Thinking
Why I use NixOS
24 March 2019
This post highlights my reasoning behind switching to NixOS.
... Read More
Announcing the new Golang infrastructure: buildGoModule
17 March 2019
I recently introduced a new
function in Nixpkgs named buildGoModule
. The new function allows you to
package Go application (or modules) with ease, provided the modules have added
support for Go modules upstream.
Manage a static website with Hugo and Nix
26 February 2019
Over the past couple of years, I’ve been using Hugo on and off for my blog, as well as for some static websites I maintain. On many occasions, I have started to hack on my site, only to realsize that my theme – as submoduled into the repository – is no longer compatible with the most recent version of Hugo that I have installed on my system.
This blog post describes how to migrate from an environment controlled by the host operating system to a reproducible environment regardless of the host.
... Read More
Setup a website on AWS with CoreOS and Docker
21 August 2016
Overview
It’s been quite some time since I shared my knowledge and the daily challenges that I overcome. I always wanted to get back into writing as it has always been therapeutic for me.
Today, I’m going to talk about how this blog is being hosted. We will start from the top down by looking first at the application level, then we will take a look at the hosting, the deployment, the server and finally the cloud provisioning.
Micro-Containerized cluster
The most ideal stack today would be:
- Etcd2 cluster with at least 5 nodes.
- Kubernetes cluster with at least 3 master nodes and 2 minion nodes.
- Let’s encrypt generated SSL certificates for all websites.
- Route53 for managing the DNS zones.
- All managed using Terraform.
That’s exactly what I did for work, but it’s way overkill and financially unacceptable for a blog.
The stack I designed for this blog:
- One t2.micro instance running NginX containers with support for SSL certificates from Let’s encrypt.
- Route53 for managing the DNS zones.
- All managed using Terraform.