thetinygoat

How I Run My Home lab (2025)

Introduction

Last year I bought a raspberry pi 5 to use as a Pihole server, it has been serving me well but recently i’ve started to experiment with turning the pi into a full fledged home lab. While i am not a self hosting aficionado, i do enjoy setting things up for myself. More than cost savings, it’s the learning that excites me. This is the current state of my home lab setup in 2025.

The Hardware

As I mentioned earlier I use a RPi 5 as my server, it draws negligible power and there is no sound, which is perfect for a home server that runs 24/7. Below are the full build details.

This is pretty much it for the hardware, the setup is pretty minimal and it meets all my current needs. The Pi 5 is a very capable machine and i am nowhere near maxing out its capacity. I am a bit worried about the lack of redundancy around my storage, but with proper backups I think i am covered (more on that below).

The Software

The software setup is pretty simple I run Raspberry OS Lite which is just Debian, i don’t need a desktop environment as i just SSH into it from my laptop.

My external hard drive is formatted as ext4 and I have set it up to be auto mounted on boot in /etc/fstab.

The OS resides on the SD card which is plenty fast, and i store all other non OS data on my external drive.

The Network

Since my router only has a couple of ethernet ports I use the TP-Link LS108G as my network switch.

Network Topology

This is the complicated part, if I am on my LAN it is fine, but i also want access to my server and services remotely as well. This is where Tailscale comes in, its a VPN that is extremely easy to setup and uses Wireguard under the hood. I have configured it on all my devices and I can easily SSH into my home lab from any where.

There are some services which i want to be exposed publicly (for example analytics), for that I use Cloudflare Tunnels, I already own a domain via Cloudflare so its very easy to setup. Just start your service and map it to a subdomain or a path in the Cloudflare dashboard, and since all the requests are proxied through Cloudflare, I get DDOS protection for free.

Services I Run

I am experimenting with running a lot of different stuff, and this list will change very often, but this is the list of services I run as of now.

  1. Pi-hole - A DNS level ad-blocker. I have experimented with AdGuard Home but I have ran into multiple issues with latency, Pi-hole on the other hand has been super stable. I have set up my Tailscale network to use my Pi-hole as the DNS server, as a result I can get ad-blocking even on my Mobile Network, which is pretty handy. Tailscale has a pretty good blog post about it. Pihole
  2. Umami Analytics - A simple and lightweight analytics tool. I use it to track page views on my blog
  3. Prometheus & Grafana - I use these to monitor my server and other services. These are probably overkill for my setup but I wanted to explore and learn more about them.
  4. Audiobookshelf - For my podcasts and audiobooks. I can create a RSS feed and subscribe to it from my podcast app which works great for me. I can turn any audio into a podcast or an audio book.
  5. Caddy - Caddy is my web server of choice, it is simple to setup and gives me automatic TLS (though I don’t use it that much as most of my stuff is behind a VPN)
  6. Samba - I have configured my server to be used as a Samba share, both macOS and iOS support network shares so i can easily upload stuff from my phone or laptop.
  7. Paperless-ngx- This is something i am currently experimenting with.

Backups

For backups I use Restic and Cloudflare R2, it has zero egress fees and pretty good DX, I could use S3 but I am in the cloudflare ecosystem and the zero egress fees is pretty good to have.

I haven’t yet figured out the best way to backup all my data (docker volumes etc), but I am experimenting with it. Hit me up on twitter if you know a good way to backup and restore docker volumes.

Next Steps

I think I have a pretty good base, but I feel that things are all over the place right now, and there are no proper automations and the lack of observability bothers me, so that is where I will be devoting my time to. Making the deployments, backups and other stuff more automated and implementing better monitoring and alerting.

I also want to experiment with Proxmox and k3s and i am looking forward to that.

I am constantly looking for more tools to self host that can make my life easier, hit me up!

#home-lab #self-hosting