An up-to-date inventory of the tools and technologies I use in my home lab and recommend to others.

Home Network and Operating Systems

  1. Unifi - Solid networking gear for my router, network switches, and access points.
  2. Debian and Raspberry Pi OS - My favorite Linux “server” distributions.
  3. Fedora - My current Linux “desktop” distribution which is well-supported on my hardware of choice.
  4. Wireguard - A simple, secure, and fast VPN tunnel I use to access my home network.
    • supported natively by recent Unifi and OpenWRT versions
    • can create VPN tunnels between home and remote networks
    • Android application for mobile

Core Hosting and Management Infrastructure

  1. Ansible - All of my personal machine and self-hosted infrastructure is managed via Ansible. I’ve found it is not that much harder to use Ansible for the initial installation and set up of a service. Then I also get an easy mechanism to update and re-install it when migrating hardware.
    • two sets of playbooks - one for my laptops/desktops and one for my servers
  2. Cloudflare - My domain registrar, external DNS provider, etc.
  3. GitHub - Public and private Git repositories for everything I do.
  4. ddclient - Keeps my home network’s dynamic IP address updated in external DNS so I can connect to it remotely.
  5. Dnsmasq - Inspired by Pi-Hole, an internal DNS server for managing local network DHCP, DNS, and network wide ad-blocking.
  6. Podman and Podman Compose - Recently replaced my use of Docker across my self-hosted services. It was an easy migration and I haven’t missed Docker.
    • will look at replacing compose with Quadlets once Debian upgrades to Podman 4.4 or above
  7. Traefik - Since the majority of my self-hosted software runs in containers, this provides the key routing and proxy logic including:
    • automated and centralized TLS certificate management via Let’s Encrypt
    • subdomain routing to specific containers
    • configuration via static files and/or container labels
  8. PocketID - A simple single-sign-on solution to provide authentication to self-hosted apps via passkeys.
    • integrates with Traefik for proxy authentication
  9. Mosquitto MQTT - An open source MQTT broker used by Home Assistant, Frigate, IOT devices, etc. to provide asynchronous pub-sub messaging.
  10. Prometheus and Grafana - If you run software you also should be sure to have monitoring and alerting set up to let you know when there is a problem and provide historical data for troubleshooting.
    • local hardware and application monitoring and alerting
    • remote website monitoring (such as monitoring for this site)
    • TLS certificate expiration alerts

Self Hosted Apps and Services

  1. Home Assistant - The home automation software I’ve been running for almost a decade. A great project which I believe will continue to be a big success.
    • large ecosystem of plugins that provides integration with internal lights and switches, heating and cooling, water heater, landscape lighting, flood detection, motion sensors, solar monitoring, security cameras, espresso machine, etc.
    • automations written in Python with Pyscript
  2. Vaultwarden - Password management for myself and my family in a nice and simple self-hosted solution.
  3. Frigate - A network video recorder that leverages AI object detection for smarter security camera alerting.
    • publishes camera events via MQTT
  4. Syncthing - Because I work across many devices, file sync has always been a key tool I use every day. Syncthing is stable, secure, and everything I need in a file sync solution.
    • configured as a “star” sync layout - one central “server” that is always running with each client connecting directly to it
  5. Obsidian - A simple app that keeps my notes in an open format (Markdown). Organized in a standard directory structure which is then synchronized across devices with Syncthing.
  6. Jellyfin - A newer and open media software used to record over-the-air TV.
  7. Homer - A simple static dashboard that runs at the root domain with links to all self-hosted apps.

Smart Home Hardware

  1. Kasa Switches and Plugs - Smart switches and plugs which are controlled by Home Assistant.
  2. FXLuminaire - Outside low voltage landscape lighting controlled by Home Assistant.
  3. Shelly Relays - Smart relays which can be powered by line voltage (no USB transformer needed) for projects like automating my in-floor heating.
  4. ESP32s and ESP8266s - Embedded SOCs used for custom home automation projects such as automating my old garage door opener, Mitsubishi ducted heat pump, etc.

Other Tools

  1. Framework Laptops - A great vision for easily customizable, upgradeable, and repairable hardware at a reasonable price. Basically all the things that I dislike about Apple hardware.
  2. IntelliJ IDEA Community Edition - My favorite Java IDE that also is flexible enough for most other editor tasks.
    • I’ve been a long time user of the Community Edition and don’t find it lacking anything important (so long as you don’t write much Javascript)
  3. OpenWRT - I repurposed an old Asus Wifi router for a remote location and flashed it with OpenWRT. It has been a great way to extend the life of an old device.
    • Ansible to manage the config
    • Wireguard tunnel to connect remote location with home network
  4. HDHomeRun - Network TV tuner to use with Jellyfin for over the air TV recording.

Retired (The Archive)

Tools I previously used but have moved on from.

  1. Dropbox, Google Drive, Owncloud, NextCloud, etc. - I’ve used or run each of these and for various reasons have left them behind and now use Syncthing instead.
  2. Eclipse - When I started building Java apps this was the defacto standard. Around ~2010 it seemed like 90% of Java engineers I knew used it. By 2012 it seemed like 90% of Java engineers had moved to IntelliJ. It just didn’t seem to evolve with the times.
  3. Docker and Docker Compose - I started using Docker in 2013 and was a big fan for quite a while. Feels like they are now in the en****tification phase of their lifecycle and I’d rather support fully open-source versions of containerization like Podman.
  4. Evernote, Google Keep - Can’t think of many times I’ve heard someone speak fondly of Evernote recently. They were one of the reasons I wanted to move to a simple and open standard format for all of my notes. Haven’t heard too many complaints with Keep, but I prefer having my notes local on my devices and sync via Syncthing.
  5. Windows Media Center, Plex - Both of these were great, but Microsoft decided to give up on one and Plex has really ruined the other.
  6. Belkin Wemo Smart Switches, Plugs, and Bulbs - These were my first attempt at automating lighting around my house. They were never reliable and a pain to manage - I’d recommend avoiding Belkin smart home products.