I’ve recently come up on a lot of free time to think…moving across the country from Florida to California will do that for you. I got to thinking and considered a write up of the homelab I had recently built (and promptly tore down because…moving, yes my wife warned me) would be a great idea!

This whole thing started with me stumbling upon the r/homelab subreddit, watching Techno Tim’s channel (shout out to the Changelog for putting me on!) and also frequently perusing what I could self host from the awesome self hosted github repo.

Overtime I collected several devices here and there and recently decided to “get more serious” and bought myself a rack, patch panel, PDU and a MikroTik switch. Apart from just having cool tech I thought I’d put together some requirements I wanted to work towards.

Hits

Requirements

  • Self-host:
    • Bitwarden - Password management.
    • LibrePhotos - Photo gallery.
    • Joplin - Joplin device sync server.
    • Home Assistant - Home automation hub.
    • File Manager - File manager.
    • Pihole - DNS server.
  • Isolate 3rd party managed devices (with some exceptions) connected to my local network (IoT devices smart lights, smart cameras, etc…)
  • Expose services to family and friends

Design (heavily inspired from this reddit r/homelab post)

The design below showcases my homelab before moving out and tearing everything down. In the design there’s a vlan (vlan22) with two rasberry pi’s that are currently not in use. The purpose for the vlan is to host publicly available services (accessible on the internet) on it and apply strict firewall rules surrounding acceptable incoming and outgoing traffic.

More research needs to be done here as I’m hesitant to self host a service running on my local network that’s publicly accessible.

diagram xml file

Click the image or this for a better view!

End Build

homelab complete

What’s Next?

  • Rebuild the homelab…
  • Add and setup a simple NAS
  • Remove Bitwarden as I’ll continue to use 1password for password management.
  • Configure tailnet to initialize connected machines DNS to our Pihole DNS instance.
  • Setup monitoring and metrics with Grafana, prometheus, portainer and possibly other monitoring related services.
  • Consider self hosting other services…like:
  • Purchase and setup UPS?
  • Kubernetize the whole thing?