Skip to main content

Writings

Here are a collection of things I’ve written over the years. While occasionally useful to others, the primary purpose of writing these is for me to document/remember how I set things up.

2025


Easy shares with rclone

·4 mins
When you need to mount a folder from a remote machine (like a NAS), NFS and SMB aren’t always ideal. rclone over SFTP is a vastly better option.

Host a Tor Onion Service

·9 mins
Ever wanted to host a website that can’t easily be traced back to you? Tor supports onion services — websites only accessible from within the Tor network.

2024


Microserver Build

·14 mins
This post walks through some interesting parts of my home-lab server build using a repurposed Dell OptiPlex micro-pc using the XCP-ng virtualization platform.

Marketplace Scam

·13 mins
We tried to sell a baritone sax case on Facebook Marketplace and got caught up in a remarkably well-crafted phishing scam.

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.

2021


My Traefik Setup

·3 mins
Configuring Traefik as a reverse proxy for Docker containers with automatic Let’s Encrypt certificates and security headers.

Monica on Docker

·3 mins
Self-hosting Monica CRM with Docker and NGINX to track personal relationships and stay in touch with friends.

2020


Tor Relay

·4 mins
Setting up a non-exit Tor relay on Ubuntu to contribute idle bandwidth to the Tor network.

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.

2017


2016


Kub Kar Timer

·3 mins
Building an Arduino-based timer for Boy Scouts Kub Kar races with conductive chain triggers and an LCD display.

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.

2014