Skip to content
Go back

My Raspberry Pi 5 Homelab: Powering Privacy, Automation and More!

Published:  at  05:00 PM

If you read my previous guide on Self-Hosting Pi-hole on RaspberryPi, you’ve already seen how a small computer can make a big impact on your digital life. But what if I told you that same Raspberry Pi could be the heart of an even more cool self-hosting setup? I’ve been using the Raspberry Pi 5 as a compact homelab server. Here’s a breakdown of what I’m running on it and why it works for my needs.

I’ve always preferred managing my own services when possible. The Raspberry Pi 5 makes that easier than ever, thanks to its improved performance and low power footprint.

Table of Contents

Open Table of Contents

The Brains of the Operation: My Raspberry Pi 5 Setup

The star of this show is the Raspberry Pi 5 (8GB RAM). This latest iteration is a significant step-up in performance, making it more than capable of handling multiple services simultaneously. Here’s what my setup looks like:

Raspbery Pi 5

SONOFF Dongle

While not a replacement for a full server, this setup handles most self-hosting needs efficiently and with minimal power consumption.

Walking the Talk: This Blog Runs on the Pi!

The blog you’re reading is hosted on the same Raspberry Pi 5 that runs the rest of my self-hosted stack. With proper configuration it handles web traffic reliably with other services.

Why Self-Host? The Perks and Philosophy

Before we jump into the “what,” let’s briefly touch on the “why”:

My Self-Hosted Service Arsenal

I’m a huge fan of Docker for managing my services. It allows for easy deployment, updates and isolation of applications. Here’s what’s currently running on my Pi 5:

Watchtower: Automated Docker Container Updates

Watchtower log

Dozzle: Real-time Container Log Viewer

Dozzle

Lubelogger: Vehicle Maintenance & Fuel Tracking

Lubelogger

Home Assistant: The Smart Home Conductor

Home Assistant

Beszel: Lightweight Server & Docker Monitoring

Beszel

Uptime Kuma: Service Availability Guardian

Uptime Kuma

Gitea: My Personal Git Powerhouse

Gitea

Umami: Privacy-Focused Web Analytics

Umami

Pi-hole: The Ad-Blocking Sentry (Still Going Strong!)

Under the Hood: Docker, docker ps -a and a Glimpse at Configs

All these services are managed using Docker and more specifically, Docker Compose. This allows me to define all services, their configurations, volumes and networks in yaml files making deployment and updates very straightforward.

Here’s a snapshot of what docker ps -a (which lists all containers, running or stopped) might look like on my system:

# Output of 'docker ps -a' on my Raspberry Pi 5
CONTAINER ID   IMAGE                               COMMAND                  CREATED          STATUS 
c4b0fc098e2b   amir20/dozzle:latest                             "/dozzle"                20 hours ago   Up 20 hours 
9510ac13c6dc   lscr.io/linuxserver/homeassistant:latest         "/init"                  2 days ago     Up 44 hours
5559b3419b17   gitea/gitea:latest                               "/usr/bin/entrypoint…"   6 days ago     Up 44 hours
6477892c6271   ghcr.io/umami-software/umami:postgresql-latest   "docker-entrypoint.s…"   7 days ago     Up 44 hours
77d9b6c2bf9a   nginx:alpine                                     "/docker-entrypoint.…"   9 days ago     Up 44 hours
984f5e93365e   ghcr.io/hargata/lubelogger:latest                "./CarCareTracker"       2 weeks ago    Up 44 hours
75b4a5ddc78a   henrygd/beszel:latest                            "/beszel serve --htt…"   3 weeks ago    Up 44 hours
ec2a8c1eaddb   caddy:latest                                     "caddy run --config …"   4 weeks ago    Up 44 hours
8e588b17fe52   containrrr/watchtower                            "/watchtower"            2 months ago   Up 44 hours
692eb0dea095   louislam/uptime-kuma:1                           "/usr/bin/dumb-init …"   3 months ago   Up 44 hours

(This is an example, your actual IDs, image names and ports might vary. Customize as needed.)

While I won’t paste all my Docker Compose files here, a typical service definition looks something like this:

# Example snippet from a docker-compose.yml
version: '2.1'
services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    ports:
      - 127.0.0.1:4001:3001
    volumes:
      - uptime-kuma:/app/data
    restart: unless-stopped
    networks:
      - infrastructure

networks:
  infrastructure:
    external: true

volumes:
  uptime-kuma:

To manage access to these services with custom domain names and automatic HTTPS/SSL, I run Caddy as a reverse proxy. Its simplicity and powerful features make it a great fit, but a full Caddy setup is a deep dive for another article!

The Zigbee Connection: Smart Home Integration

As mentioned, USB Zigbee dongle is a key part of my setup. Connected to the Raspberry Pi 5 it acts as a coordinator for my Zigbee mesh network. Home Assistant communicates with this dongle (often via an add-on or integration like ZHA or Zigbee2MQTT) to discover and control Zigbee devices such as:

This direct local control is far more reliable and private than relying on cloud-connected hubs from various manufacturers. The Pi 5 handles the Zigbee traffic and Home Assistant’s processing without issue.

Challenges & Considerations

Self-hosting isn’t without its learning curve and responsibilities:

Is This Self-Hosting Life for You?

If you enjoy building and customizing your own setups, value privacy and control and are willing to invest some time in learning, then absolutely! The Raspberry Pi 5, especially with an NVMe drive, is a fantastic platform to start or expand your self-hosting adventures. The services I’ve highlighted are just the tip of the iceberg.

The feeling of building something useful and truly yours is incredibly satisfying. Plus, the skills you gain are transferable and highly valuable.

Final Thoughts & Your Turn

My Raspberry Pi 5 homelab has transformed how I interact with technology at home. From blocking ads network-wide to automating my lights and managing my personal code, this little powerhouse does it all. It’s a clear example of how self-hosting is now both practical and approachable.



Previous Post
From Homelab to Production: Launching an E-commerce Shop with Open Source Tech
Next Post
Self-Hosting Pi-hole on RaspberryPi: Your Network's Ad-Blocking Guardian