Matt Segal Dev

DevOps blog posts

A breakdown of how NGINX is configured with Django

You are trying to deploy your Django web app to the internet. You have never done this before, so you follow a guide like this one. The guide gives you many instructions, which includes installing and configuring an "NGINX reverse proxy". At some point you mutter to yourself:

What-the-hell is …

How to automate your Postgres database backups

If you've got a web app running in production, then you'll want to take regular database backups, or else you risk losing all your data. Taking these backups manually is fine, but it's easy to forget to do it. It's better to remove the chance of human error and automate …

An introduction to cloud file storage

Sometimes when you're running a web app you will find that you have a lot of files on your server. All these files will start to feel like a burden. You might worry about losing them all if the server fails, or you might be concerned about running out of …

How to backup and restore a Postgres database

You've deployed your Django web app to to the internet. Grats! Now you have a fun new problem: your app's database is full of precious "live" data, and if you lose that data, it's gone forever. If your database gets blown away or corrupted, then you will need backups to …

Cloudflare makes DNS slightly less painful

When you're setting up a new website, there's a bunch of little tasks that you have to do that suck. They're important, but they don't give you the joy of creating something new, they're just... plumbing.

In particular I'm thinking of:

  • setting up your domain name with DNS records
  • encrypting …

DNS for beginners: how to give your site a domain name

You are learning how to build a website and you want to give it a domain name like mycoolwebsite.com. It doesn't seem like a real website without a domain name, does it? How is anybody going to find your website without one? Setting up your domain is an important …

9 commands for debugging Django in Docker containers

You want to get started "Dockerizing" your Django environment and you do a tutorial which shows you how to set it all up with docker-compose. You follow the listed commands and everything is working. Cool!

A few days later there's an error in your code and you want to debug …

Introduction to configuration management

This is a talk I gave at the Melbourne Junior dev meetup:

Have you ever found a bug in prod, which wasn't caught earlier because of a missing folder, library, or file permission? It sucks! This talk goes over some practices and tools that you can use to keep your …