<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://parroz4.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://parroz4.github.io/" rel="alternate" type="text/html" /><updated>2026-01-30T07:54:43+00:00</updated><id>https://parroz4.github.io/feed.xml</id><title type="html">parroz4</title><subtitle>I am a computer enthusiast and always keep up to date with new technologies. I am also passionate about cars and sports in general, and I am always looking for something new to learn related to computers.</subtitle><author><name>Francesco Parrotta</name><email>4github.envision799@aleeas.com</email></author><entry><title type="html">Building My Raspberry Pi 5 Homelab: 24 Services on a Single Board</title><link href="https://parroz4.github.io/homelab/building-my-raspberry-pi-5-homelab/" rel="alternate" type="text/html" title="Building My Raspberry Pi 5 Homelab: 24 Services on a Single Board" /><published>2026-01-29T00:00:00+00:00</published><updated>2026-01-29T00:00:00+00:00</updated><id>https://parroz4.github.io/homelab/building-my-raspberry-pi-5-homelab</id><content type="html" xml:base="https://parroz4.github.io/homelab/building-my-raspberry-pi-5-homelab/"><![CDATA[<p>I recently finished building out my homelab on a Raspberry Pi 5 (8 GB). It now runs 24 Docker containers covering media management, monitoring, networking, automation, and more. Here is how it came together and what I learned along the way.</p>

<h2 id="why-a-raspberry-pi">Why a Raspberry Pi?</h2>

<p>The 8 GB model hits a sweet spot: enough RAM for serious workloads, low power consumption (under 10W), completely silent, and cheap enough that failures are not catastrophic. The constraints of a single-board computer also force good architectural decisions – you cannot brute-force your way past limited resources, so every service has to earn its place.</p>

<h2 id="the-stack">The Stack</h2>

<p>All 24 services run as Docker containers managed through Docker Compose. Here is the breakdown by category:</p>

<p><strong>Media and Storage (6 services):</strong> Immich for photos, Jellyfin for media streaming, Paperless-ngx for documents, Filebrowser, Syncthing, and Sync-in for file management and synchronization.</p>

<p><strong>Monitoring (8 services):</strong> This is where I went deepest. Beszel tracks system metrics with minimal overhead. Uptime Kuma monitors service availability. LoggiFly watches container logs in real-time and sends Telegram alerts. Diun and WUD track Docker image updates. NetAlertX discovers new network devices. Speedtest Tracker keeps historical ISP performance data. ChangeDetection watches external websites for changes.</p>

<p><strong>Networking (2 services):</strong> Pi-hole for DNS-based ad-blocking across the whole network, and Cloudflared to create a secure tunnel to Cloudflare – no ports exposed on my router.</p>

<p><strong>Management (3 services):</strong> Portainer for container management, Homepage as a dashboard, and Backrest for backup orchestration using Restic.</p>

<p><strong>Automation (2 services):</strong> Home Assistant for smart home control and N8N for workflow automation.</p>

<p><strong>Utilities (3 services):</strong> Warracker for warranty tracking, iSponsorBlockTV for blocking sponsors on smart TVs, and Kaneo for project management.</p>

<h2 id="key-decisions">Key Decisions</h2>

<p>The most impactful decision was choosing <strong>Cloudflare Tunnel</strong> over a traditional reverse proxy like nginx or Traefik. With a tunnel, zero ports are open on my router. Cloudflare handles SSL, WAF, DDoS protection, and geo-restriction for free. The trade-off is a dependency on a third-party service, but for a home setup the security benefits are substantial.</p>

<p>I also split storage across two tiers: the <strong>SD card handles the OS</strong> while a <strong>1 TB external SSD</strong> stores all data (databases, media, configs). SD cards have limited write cycles, so keeping heavy I/O on the SSD extends the life of the boot drive and improves performance.</p>

<p>For monitoring, I deliberately chose <strong>multiple specialized tools</strong> instead of a single all-in-one solution. Each tool does one thing well, and together they cover system metrics, service uptime, log analysis, and container updates. Every alert goes to <strong>Telegram</strong>, which is free, reliable, and delivers instant push notifications.</p>

<h2 id="lessons-learned">Lessons Learned</h2>

<p><strong>RAM is the real bottleneck.</strong> On an 8 GB Pi, you have to be selective about what runs. I learned to check each service’s memory footprint before deploying and to set resource limits in Compose files.</p>

<p><strong>Monitor your monitoring.</strong> LoggiFly catches issues in other services before they escalate. Having alerts on alerts sounds redundant, but it has saved me more than once.</p>

<p><strong>Secrets management from day one.</strong> I made the mistake of committing secrets to git early on. Now all secrets live in <code class="language-plaintext highlighter-rouge">.env</code> files that are gitignored, and a sanitization script runs before every commit to catch any leaks. Git history was cleaned with <code class="language-plaintext highlighter-rouge">git-filter-repo</code>.</p>

<p><strong>Start simple, add complexity.</strong> Each of the 24 services was added one at a time. I got each one working reliably before moving on. This incremental approach made debugging much easier than deploying everything at once.</p>

<h2 id="what-is-next">What is Next</h2>

<p>I am planning to explore <strong>k3s</strong> (lightweight Kubernetes) to learn container orchestration beyond Compose. I also want to add <strong>Prometheus + Grafana</strong> for deeper metrics visualization, automated testing for compose files, and <strong>Terraform</strong> for managing Cloudflare configuration as code.</p>

<hr />

<p>For the full service list, architecture details, and configuration, check out the <a href="/projects/homelab/">project page</a> or the <a href="https://github.com/parroz4/homelab-pi5">GitHub repository</a>.</p>]]></content><author><name>Francesco Parrotta</name><email>4github.envision799@aleeas.com</email></author><category term="homelab" /><category term="raspberry-pi" /><category term="docker" /><category term="self-hosted" /><category term="homelab" /><summary type="html"><![CDATA[How I turned a Raspberry Pi 5 into a production-grade home server running 24 containerized services with Docker Compose and Cloudflare Zero Trust.]]></summary></entry></feed>