Run Ghost in Docker behind Nginx

To me installing and upgrading Ghost is way too hard. Using Docker it’s a little more manageable. Launching a Docker container with Ghost is easy - first you have to install Docker (I’m using Ubuntu).

Nginx cheatsheet

I good while back I wrote some stuff about Nginx on an internal wiki. At that time the company was converting from using Apache to Nginx and not everyone was up to speed. I dubbed the wiki entry the Nginx Cheatsheet. I recently unearthed this fine piece of writing and I’m re-posting it here so more people might benefit from the effort.

Using to issue Let's Encrypt certificates

Some time ago I wrote about how to use Let’s Encrypt certificates to get an A+ on the SSL Labs test. Back then the only way to obtain and manage certificates was CertBot. I always thought that solution made it a hassle to manage multiple certificates. My friend Jorijn brought to my attention, a new way to issue and manage Let’s Encrypt certificates. It was time for me to revisit the topic.


Some people know that I don’t really care what platform I’m on, as long as I have access to some sort of shell and a decent package manager. Because of that it’s constantly in the back of my mind that I should be able to move platforms at any given time. I don’t like lock-in, but sometimes there is no other option. One example of lock-in that I experience is my use of 1password, which lacks a native Linux client. If I were to switch to Linux tomorrow I would have to run 1password in Wine, or use it on the web, neither of which are ideal.

Installing the AWS Cloudwatch Logs Agent on Ubuntu 16.04

Not only can AWS Cloudwatch alert you of problems with your resources, it can also store your log files and make them accesible in the AWS web interface. To make AWS Cloudwatch Logs work you’ll need to install a small agent on your EC2 instances. Currently AWS has support for CentOS, RHEL, Amazon Linux and Ubuntu 12.04 and 14.04, among some other distributions.

The newest LTS version of Ubuntu, 16.04, isn’t on the list of supported versions yet. As Ubuntu switched to Systemd for their default init system you’ll run into some trouble getting the Cloudwatch Logs Agent service started.

Export and import AWS Cloudsearch data

AWS CloudSearch is a highly scalable and reliable solution to implement search in your application or website. You can feed your search data into the service and never have to worry about performance or in any way scaling it to fit your needs. AWS CloudSearch supports about 34 languages and features such as highlighting, autocomplete and geospatial search.

An A+ SSL setup using Nginx and Letsencrypt

Back in 2014 I wrote about getting an A+ on SSL Labs using StartSSL. Much has changed since then, for starters we can now use the awesome Letsencrypt to get our certificates.

Letsencrypt is completely free, just like StartSSL, but it will only give out certificates that are valid for 90 days. Luckily you can renew your certificate just as easily as creating one.

Generate CloudFormation templates using Python

Troposphere is a Python library which makes it easier to write and maintain CloudFormation templates. From the README:

The troposphere library allows for easier creation of the AWS CloudFormation JSON by writing Python code to describe the AWS resources. Troposphere also includes some basic support for OpenStack resources via heat.

To facilitate catching CloudFormation or JSON errors early the library has property and type checking built into the classes.

How to solve Apt-get waiting for headers

Sometimes you play around with some third-party repositories on your Debian-based Linux box, only to find out apt-get hangs while waiting for headers. Really annoying.

Resize the root volume of an Azure VM

Every Azure virtual machine comes with a certain amount of storage for it’s root volume, plus a few hundred GigaBytes of instance storage which will get deleted if you reboot the VM. For storing data you can either create a new disk and attach it to your VM, or you can resize the root volume with a little trick I learned.