DNS zone versioning

I've been using PowerDNS with a SQL backend as a hidden master DNS server for a few years now.

I've been wanting to write a quick shell script to version my DNS zones for a while, and since I've finally taken the time to do so today, I figured I'd share it here.

The script uses PowerDNS API to list the configured zones. It then exports them to a file in an AXFR-like format, commits and finally pushes them on a git repository

Read more  ↩︎

Installing Ghost

I haven't published an article on here for over a year and a half... While this was mostly due to a lack of motivation, another reason was that I didn't enjoy the blogging system I was using.

As lightweight as Pelican is, I found it cumbersome to use on a regular basis. Every time I wanted to publish or update an article, I had to :

  • edit local markdown files ;
  • regenerate the website files ;
  • start a webserver locally to proofread the article ;
  • commit and push the files to my git repo ;
  • pull the files on the webserver.

I hadn't had a look at the CMS landscape for a while, and I started searching for one with a web editor that supports markdown. I also wanted to avoid anything that runs on PHP if possible.

I quickly discovered Ghost, and decided to give it a shot. I was convinced by it within a few hours and I decided to migrate this blog.

So, to celebrate my move to Ghost, I figured I'd write an article on how I've installed it on my server.

All commands in this article have to be run as the root user on a Debian server.

Read more  ↩︎

WebDAV with nginx

This website has been hosted on an Online.net dedicated server since its creation. I've been one of their customers for the past 3 years now, and I still don't have anything bad to say about them.

They recently upgraded their personnal range, and I took the opportunity to upgrade from a single server running all of my services to 2 servers running LXC containers that are hosting my services.

It took me 2 days to migrate everything, but it was worth it. If I decide to switch servers again, I'll have to migrate the containers instead of the services themselves. Considering they are stored on a separate BTRFS volume, it shouldn't take me more than a few hours at most.

During the migration, I realized that I needed to make files that were hosted on one server accessible to the other. I could have gone with CIFS or NFS, but I wanted to have encryption built-in instead of having to rely on a VPN for that. Since I figured it was a good opportunity to learn something new, I ended up going with WebDAV.

In this tutorial, I'll explain how I've configured a read-only WebDAV share using nginx and Let'sEncrypt SSL certificates between two Debian Jessie containers.

Read more  ↩︎

MySQL backup script

I wrote a MySQL database backup script a while back. I known they are more than enough of them already floating around the internet, but hey, I figured I'd share it here anyway.

Read more  ↩︎

My tmux configuration

tmux is a terminal mutiplexer. It lets you have multiples shells running in a single terminal emulator window and it keeps those shells running in the background should you need to close your terminal emulator.

I've played around with the configuration quite a bit to find settings that suit my needs. Here's what it ended up looking like :

tmux_fullsize

This screenshot was done on Mac OS X, using the Terminal app and this Solarized theme.

I figured I'd share my tmux configuration here !

Read more  ↩︎