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
Host a Tor Onion Service
2024
DIY Tunnel
Private Git Server with Tailscale
Microserver Build
Self-hosted Git Server
Marketplace Scam
Ghost/Cloudflare Setup
Multi tenancy Example for Phoenix
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.
Welcome to My Blog
2023
Publishing Documents to Snowflake
2022
Tunneling and Self-hosted Seafile
This post details a couple of methods for hosting Seafile at home using tunnels to protect your home IP: Cloudflare Tunnels or a VPS with Tailscale.
Tailscale Pi-hole Setup
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.
Analytics via. Ackee
Moving my files in-house
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
FastAPI, React and Docker
Monica on Docker
2020
Golang, WebSockets & React
As part of my COVID friendly game project, werdz.ca, I’ve been working with GoLang, Create-React-App, WebSockets and NGINX (for production). Some of it has been “an adventure”.
This post is a set of quick notes about the problems I’ve encountered and how I worked by them.
2019
Wireguard Access Server
Blog with Hugo, Gitlab CD, and Caddy
Ubuntu 18.04 - Encrypted Disks with USB Boot
I’m setting up a new Ubuntu 18.04 server and wanted the drives to be encrypted. Since the machine is headless in my basement, however, entering a password on boot is annoying.
2018
NGINX Semi-private Site
We used to run a development blog for work. We wanted:
- To use NGINX to host this content. It was all static pages.
- To limit access to people within our network, or to employees while outside the network (phones, laptops, etc.).
- We didn’t want to deal with user accounts, active directory, etc.
- We wanted super low friction for users.
GPG/SSH with the YubiKey 5
2017
QubesOS Presentation
I’m a huge fan of QubesOS. Here are some slides from an internal company presentation trying to inflict QubesOS on my coworkers.