Skip to main content
  1. Categories/

Tutorial

2024


Multi tenancy Example for Phoenix

·16 mins

This post describes my efforts and approach to multi tenancy for a couple of Elixir/Phoenix/Ecto B2B applications I’m working on. Hopefully, it will provide a fairly complete example for those looking to implement something similar, and help avoid a bunch of digging that I found myself doing.

2023


2022


Tailscale Pi-hole Setup

·3 mins

I’ve recently started using the overlay network Tailscale to provide connectivity between my various machines, regardless of where I am. It’s extremely easy to configure and “just works”. Tailscale also includes a feature called MagicDNS that provides name resolution for machines on my tailnet (i.e. so that ping server123 magically just works). MagicDNS also allows you to override local DNS settings and force a custom DNS server for name resolution machines on your tailnet. This post documents the setup of Pi-hole (accessible only to machines on my tailnet) to provide some level of DNS privacy and Ad Blocking for machines on my tailnet.

Moving my files in-house

·5 mins

Every six months or so, when the position of the moon is just right, I flip-flop on the privacy/self-hosted vs. just-let-Google-handle-it issue. Today, I’ve flopped toward privacy and self-hosting.

2020


2019


2018


NGINX Semi-private Site

·2 mins

We used to run a development blog for work. We wanted:

  1. To use NGINX to host this content. It was all static pages.
  2. To limit access to people within our network, or to employees while outside the network (phones, laptops, etc.).
  3. We didn’t want to deal with user accounts, active directory, etc.
  4. We wanted super low friction for users.

2015


Using GPG with Smart Cards

·26 mins
Comprehensive guide to storing GPG and SSH keys on a YubiKey NEO smart card for secure, portable cryptographic operations across Linux, Windows, and macOS.