7 Raspberry Pi HomeLab Projects You Will Actually Use in 2025


In the early 2010s people bought Raspberry Pi cards to teach kids Python or to build retro game consoles. Fast-forward to this day and this nice mini computer can host the same services that once required a rack of chunky servers. Rising cloud costs, growing privacy concerns and the thrill of true ownership have sparked a homelab revolution, and the Raspberry Pi 5 now sits at the center of many homegrown data centers.

People use Raspberry Pi boards for Plex, Retro Gaming, Magic Mirrors, and many other things that I’m too lazy to work on. I like Raspberry Pi boards because they are tiny, cheap, easy to find something interesting, and upgradable. Yes, you can use cheaper (and maybe more capable N100 Mini PCs). Why not both? I’m not running the best homelab server one can achieve. I’m just tinkering with my shiny toys hehe.

You can also choose and old laptop for these tasks. A lot of people do that. Why choose a Pi over another an old laptop? Three reasons stand out:

  1. Ecosystem depth – Almost every open-source tool ships an official ARM image and hundreds of step-by-step tutorials target the Pi first. It is your thing of course. People run DOOM on their Kitchen Robots. You can run all these on your old Android device.
  2. Power efficiency – A Pi 5 with an SSD idles at roughly 4–5 W while performing tasks that would push a refurbished tower PC into double-digit wattage. And they are quite even with an active cooler.
  3. Community support – This is way I like Raspberry Pi. Community keeps building. I just copy them.

This guide lists seven projects that deliver daily value rather just tinkering around, not that it is problem. Each service was selected because it solves a real pain point mine like taming Docker containers, running local and cloud AI models, blocking invasive ads, monitoring uptime or exposing services to the wider internet without fiddling with routers. Every project fits neatly inside Docker so you can mix and match without dependency conflicts. I plan to create a detailed guide for each, but you can always check other online guides, no hard feelings.

I don’t say this is the best setup. But, it is mine and I love them.

I’m using Raspberry Pi 5 16GB which I have plugged a 256GB SSD through a PCIe HAT and an active cooler. Well, go big or go home…

Table of contents

  1. Portainer – graphical Docker control
  2. Ollama + Open WebUI – private large language model server
  3. Pi-hole – network-wide ad and tracker blocking
  4. Tailscale – zero-config remote access
  5. Glances – live dashboard for system health
  6. Uptime Kuma – sleek uptime monitor
  7. Cloudflared Tunnel – secure public URLs
  8. Bonus roadmap

1. Portainer

Portainer is a lightweight web console that visualises containers, images, volumes and networks, letting you deploy full stacks from your browser.

  • Needs about 200 MB RAM.
  • Removes the need to SSH in for every Docker tweak.
  • Three free Business Edition licences cover most hobby labs.

Portainer itself runs as a container and talks to Docker through the host’s Unix socket. The UI fires Docker API calls, so actions take effect instantly.

Install

curl -sSL https://get.docker.com | sh

docker volume create portainer_data
docker run -d --name portainer \
  -p 9000:9000 -p 9443:9443 \
  --restart unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

Open https://<Pi-IP>:9443, create an admin user and you are set.

raspberry-pi-portainer-containers

2. Ollama + Open WebUI

Ollama streams quantised open-source language models locally. Open WebUI adds a polished ChatGPT-style front-end and a REST API.

  • A Pi 5 with 16 GB RAM can serve 3–4B parameter models with zero cloud cost.
  • All prompts stay on your own hardware, perfect for privacy.

Ollama loads the model and generates tokens. Open WebUI talks to Ollama’s API and serves a multi-user web client.

mkdir ollama && cd ollama
nano docker-compose.yml    
services:
  ollama:
    image: ollama/ollama:latest
    ports: ["11434:11434"]
    volumes: ["ollama:/root/.ollama"]

  webui:
    image: ghcr.io/open-webui/open-webui:latest
    ports: ["3000:8080"]
    depends_on: [ollama]

volumes:
  ollama:
docker compose up -d

Visit http://<Pi-IP>:3000 and load a model such as TinyLlama.

As you can see, I’m hoarding all the models you can imagine.

raspberry-pi-openwebui-models

3. Pi-hole

You can check my better, detailed guide for installing Pi-hole on Raspbery Pi Zero 2W.

Pi-hole is a DNS sinkhole that blocks ads and trackers for every device on your network.

  • Uses less than 100 MB RAM—ideal for an older Zero 2 W.
  • A dedicated Pi keeps filtering while your main server reboots.

When a device requests a known ad domain, Pi-hole replies with 0.0.0.0, so the ad never loads. Legitimate queries forward to the resolver you choose.

curl -sSL https://install.pi-hole.net | bash

Point your router’s DNS to the Pi-hole IP or let Pi-hole handle DHCP.

raspberry-pi-pihole-dashboard

4. Tailscale

Tailscale builds a peer-to-peer WireGuard mesh so your devices talk as though they are on one LAN.

  • Works behind CG-NAT without port forwarding. I cannot use port forwarding due to my ISP. So Tailscale is a must for me.
  • Turn the Pi into an exit node and enjoy Pi-hole filtering on mobile data.

Clients authenticate via OAuth, exchange keys with coordination servers and then encrypt traffic end-to-end with WireGuard.

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --advertise-tags=raspi

5. Glances

Glances is a Python-based system monitor that streams CPU, RAM, disk, network and Docker stats to a browser.

  • One page shows temps and throttling—vital for fanless boards.
  • Optional REST API feeds Home Assistant dashboards.

Glances reads /proc metrics and Docker stats, aggregates them and serves an HTML page on port 61208.

docker run -d --restart unless-stopped \
  --name glances -p 61208:61208 --pid host \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  nicolargo/glances:latest-full glances -w

Open http://<Pi-IP>:61208 in any browser.

raspberry-pi-glances-screen

6. Uptime Kuma

Uptime Kuma is an open-source monitor that tracks HTTP, ping, DNS and more, with alerts via Telegram, Slack or email.

  • Lightweight Go backend fits easily in 250 MB RAM.
  • One board can watch your ISP, smart-home hubs and public sites.

Kuma polls targets on a schedule, saves results in SQLite and renders clean charts through a Vue interface.

docker run -d --restart unless-stopped \
  -p 3001:3001 -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:latest

Visit http://<Pi-IP>:3001, add monitors and configure notifications.

7. Cloudflared Tunnel

Cloudflared creates a tunnel from your Pi to Cloudflare’s edge so any local service becomes reachable at a secure public URL.

  • Perfect if your ISP blocks inbound ports or uses CG-NAT.
  • Free HTTPS, CDN and WAF without extra setup.

Cloudflared maintains a persistent WebSocket to the nearest Cloudflare point of presence. External requests hit the edge and proxy through the tunnel to your local port.

Create a tunnel and DNS record in the Cloudflare dashboard, then run:

docker run -d --restart unless-stopped \
  --name cloudflared \
  cloudflare/cloudflared:latest tunnel run <TUNNEL_NAME>

8. Bonus roadmap

I plan to install a couple of other things to my main Raspberry Pi.

  • FreshRSS – minimalist self-hosted RSS reader.
  • Linkding – bookmark manager with full-text search.
  • Mailu – lightweight personal mail server that supports ARM.

Let me know if it works for you!

Cheers,

berkem