Videos

In-depth discussions about software development, architecture, and responsible approaches to building reliable software.

Subscribe on YouTube

Featured Video

Your Logs Are Gone - Fix It with Loki & Promtail (Ep. 8)

When a pod dies, kubectl logs dies with it. Your logs are gone and so is your ability to debug what went wrong. In this video we fix that with Loki and Promtail, centralized logging for your Kubernetes cluster. Every log from every pod, stored and searchable, even after the pod is long gone.

7:04 23 views
Your Logs Are Gone - Fix It with Loki & Promtail (Ep. 8)

All Videos

Explore our complete library of insights and tutorials.

Your Logs Are Gone - Fix It with Loki & Promtail (Ep. 8)

Your Logs Are Gone - Fix It with Loki & Promtail (Ep. 8)

When a pod dies, kubectl logs dies with it. Your logs are gone and so is your ability to debug what went wrong. In this video we fix that with Loki and Promtail, centralized logging for your Kubernetes cluster. Every log from every pod, stored and searchable, even after the pod is long gone.

7:04 23 views Featured
kuberneteshomelablokipromtailgrafanaloggingobservabilityraspberrypi
Watch Video Read the Article
Rip 4K Blu-rays on Windows for FREE | MakeMKV + LibreDrive Setup Guide

Rip 4K Blu-rays on Windows for FREE | MakeMKV + LibreDrive Setup Guide

Part 3 of my Media Ripping Station series — this time on Windows. No Linux, no Pi cluster, no complicated setup. Just MakeMKV, LibreDrive, and your existing Windows PC.

3:58 157 views Featured
homelabjellyfinmakemkv4kuhdlibredrivewindowsblu-rayhdr
Watch Video Read the Article
Kubernetes Meets AI — Self-Hosted GPU Inference with Ollama (Ep. 7)

Kubernetes Meets AI — Self-Hosted GPU Inference with Ollama (Ep. 7)

Your Kubernetes cluster doesn't need a GPU to use one. In this video I'm exposing my RTX 4090 Windows PC running Ollama as a native Kubernetes service — no GPU passthrough, no complicated device plugins. Just a Kubernetes External Service pointing at existing hardware. Then I'm deploying Open WebUI in the cluster and exposing it at ai.spatacoli.xyz via Traefik and cert-manager with a real TLS cert. This builds on Videos 5 and 6 — if you haven't set up Traefik ingress and cert-manager yet, check those out first (links below).

5:21 130 views
kuberneteshomelabselfhostedollamaopenwebuitalos
Watch Video Read the Article
HTTPS For Free — Kubernetes TLS with cert-manager & Let's Encrypt (Ep. 6)

HTTPS For Free — Kubernetes TLS with cert-manager & Let's Encrypt (Ep. 6)

Last video we got real URLs. This video we make them secure — free TLS certificates for every service in the cluster, auto-renewing, forever. What you'll learn: - What cert-manager is and how it automates TLS - How to install cert-manager via Helm - ClusterIssuer with Let's Encrypt (staging vs production — and why it matters) - DNS-01 challenge with DNSimple for wildcard certificates - How to issue a wildcard cert covering all of *.spatacoli.xyz - Forcing HTTP → HTTPS redirect in Traefik - Exposing Grafana over HTTPS - Gitea SSH routing via Traefik TCP

16:56 59 views
kuberneteshomelabtlscertmanagerletsencrypttraefikraspberrypi
Watch Video Read the Article
Port Forwarding is Dead — Kubernetes Ingress with MetalLB & Traefik (Ep. 5)

Port Forwarding is Dead — Kubernetes Ingress with MetalLB & Traefik (Ep. 5)

Port-forwarding is dead. In this video we give every service in the cluster a real URL — no port numbers, no terminal babysitting. What you'll learn: - What MetalLB is and why bare metal Kubernetes needs it - How to install and configure MetalLB in L2 mode - What an Ingress controller does (and why we use Traefik) - How to write Kubernetes Ingress resources - How to expose Gitea and Grafana with real domain names - Split-horizon DNS with BIND9 for homelab services

19:14 89 views
kuberneteshomelabraspberrypitraefikmetallbingressnetworkingdns
Watch Video Read the Article
Stop Writing YAML By Hand — Kubernetes Monitoring with Helm (Ep. 4)

Stop Writing YAML By Hand — Kubernetes Monitoring with Helm (Ep. 4)

I cloned the kube-prometheus-stack repo. It has over 20 YAML files. I was not going to write all of that by hand. In this video, we discover Helm - Kubernetes' package manager - and use it to deploy a full monitoring stack (Prometheus + Grafana) to a 6-node Raspberry Pi 4 cluster running Talos Linux. One command replaces 20+ manifests. Then we hit the wall: Talos's security model blocks node-exporter from running, and we debug our way through four separate fixes to get everything green. This is the video where the cluster stops being a black box. What you'll learn: - What Helm is and why it exists (shown, not just explained) - How to deploy kube-prometheus-stack with a single command - Customizing charts with values.yaml - Navigating Talos PSS restrictions - and fixing them step by step - Exploring pre-built Grafana dashboards showing live cluster telemetry - Why every future video in this series references these dashboards

14:46 75 views
kuberneteshomelabraspberrypihelmprometheusgrafanamonitoringtalosselfhosted
Watch Video Read the Article
Host Your Own Git Server — Deploy Gitea on Kubernetes (Ep. 3)

Host Your Own Git Server — Deploy Gitea on Kubernetes (Ep. 3)

In this Kubernetes tutorial, I deploy Gitea (a self-hosted Git server) to my Raspberry Pi cluster using raw Kubernetes manifests. This is part 3 of my Kubernetes series, and we're doing everything manually before introducing Helm in the next video. What you'll learn: • Creating Kubernetes Namespaces for organization • Using PersistentVolumeClaims with NFS storage • Writing and understanding Deployment manifests • Testing pod persistence by deleting and recreating pods • Security contexts and running rootless containers Why deploy Gitea manually first? Before we introduce Helm (a Kubernetes package manager), it's important to understand what Helm is actually doing under the hood. By writing these manifests manually, you'll appreciate the automation Helm provides in Video 4.

12:28 142 views
kuberneteshomelabraspberrypigiteadevopscontainerization
Watch Video Read the Article
Stop Losing Data in Kubernetes — Persistent Storage with NFS (Ep. 2)

Stop Losing Data in Kubernetes — Persistent Storage with NFS (Ep. 2)

Your Kubernetes pods are losing data. Let's fix that. In this video, we connect our 6-node Raspberry Pi Kubernetes cluster to NFS storage, so our applications can finally survive pod deletions. We'll create PersistentVolumes, PersistentVolumeClaims, and prove our data persists across restarts. What You'll Learn: • Why Kubernetes storage is ephemeral by default • How PersistentVolumes (PV) and PersistentVolumeClaims (PVC) work • Setting up NFS storage with proper permissions • Deploying nginx with persistent storage • Proving data survives pod deletions

10:03 125 views
kuberneteshomelabPersistentVolumesPersistentVolumeClaimsNFSnginx
Watch Video Read the Article
Build Your Own Kubernetes Cluster — Raspberry Pi Setup (Ep. 1)

Build Your Own Kubernetes Cluster — Raspberry Pi Setup (Ep. 1)

Learn Kubernetes by building a real 6-node cluster on Raspberry Pi! In this series, we’ll go from basic deployments to advanced monitoring, logging, and CI/CD - all running on hardware you can touch. Episode 1 covers cluster setup with Talos Linux, network configuration, and deploying your first workload. WHAT YOU’LL LEARN: In this video: ∙ Preparing your Raspberry Pi 4 nodes for Kubernetes ∙ Installing and configuring Talos Linux ∙ Setting up your control plane and worker nodes ∙ Network configuration and cluster connectivity ∙ Deploying your first application to verify everything works

10:37 666 views
kuberneteshomelabRaspberry Pitaloslinux
Watch Video Read the Article
Media Ripping Station: 4K UHD Upgrade | LibreDrive Tutorial

Media Ripping Station: 4K UHD Upgrade | LibreDrive Tutorial

Part 2 of my Media Ripping Station series - completing the setup with 4K UHD Blu-ray support. After your feedback on Part 1, I'm showing the LibreDrive firmware flash you requested AND the honest truth about what works (and what doesn't) with Disney 4K content. New here? This tutorial is complete and standalone - Part 1 covered DVD/Blu-ray basics, this focuses on 4K UHD. What You'll Learn: • How to flash LibreDrive firmware (step-by-step process everyone requested) • Why 4K UHD requires different hardware and software • MakeMKV configuration for UHD with AACS key setup • ARM (Automatic Ripping Machine) settings for 4K quality preservation • Live 4K ripping demo - success AND failure • The Disney Problem: Why Star Wars discs fail mid-rip • What I tried to fix it (and what actually works) • Storage management strategies for massive file sizes • Quality comparison: 1080p Blu-ray vs 4K UHD in Jellyfin

20:29 11631 views Featured
homelabjellyfin4kruhdripppingmediaservermakemkvblurayrippingnasselfhostedhomeserverdatahoarderlibredriveautomation
Watch Video Read the Article
Pi 4 vs Pi 5 NAS Battle: 60x Faster? Shocking Benchmark Results

Pi 4 vs Pi 5 NAS Battle: 60x Faster? Shocking Benchmark Results

I tested my new Pi 5 NAS against my Pi 4 NAS with comprehensive benchmarks. The results? Absolutely shocking. The Pi 5 is 13x faster for sequential writes and 60x faster under mixed workload. Let me show you the data. **The Results:** • Sequential writes: 13.3x faster on Pi 5 (3.6 MB/s → 47.9 MB/s) • Mixed workload: 60x faster on Pi 5 (21 IOPS → 1,168 IOPS) • Random 4K operations: 4-5x faster • Consistency: Pi 5 delivers perfect repeatability vs Pi 4's variability **Fair Testing:** • Same 4x 2TB SSDs tested in both systems • Same RAID 10 configuration • Same gigabit network • Multiple test runs for accuracy • Industry-standard tools (fio, iperf3)

7:50 552 views
RPi4RPi5ComparisonNAS
Watch Video
I Built a Raspberry Pi 5 NAS with PCIe Storage - RAID 10 Complete Guide

I Built a Raspberry Pi 5 NAS with PCIe Storage - RAID 10 Complete Guide

Build a high-performance Raspberry Pi 5 NAS with native PCIe storage! This complete guide walks you through hardware assembly, RAID 10 configuration, and NFS setup from start to finish. The Pi 5's PCIe Gen 3.0 support is a game-changer for NAS builds - and next week I'll prove it with shocking benchmark results comparing this to my Pi 4 NAS. Spoiler: 13x faster sequential writes! 🔧 WHAT YOU'LL LEARN: - Complete Pi 5 NAS hardware assembly - RAID 10 configuration for speed + redundancy - NFS export setup for network access - Performance testing and verification - Tips for optimal cooling and stability 💾 THE BUILD: - Raspberry Pi 5 (8GB) - PCIe Gen 3.0 capable - 4x 2TB SSDs in RAID 10 array - Active cooling for sustained performance - Network storage ready to deploy 📦 EQUIPMENT (Affiliate Links): - Raspberry Pi 5 (8GB): https://amzn.to/45Gvz9J - 4x 2TB SSDs: https://amzn.to/4jKMxcT - RADXA Penta HAT for Raspberry Pi 5: https://amzn.to/3YBwhkN *Disclosure: Some links above are affiliate links. If you purchase through them, I may earn a small commission at no additional cost to you. This helps support the channel - thank you!* ⚡ COMING NEXT WEEK: The Pi 4 vs Pi 5 NAS Performance Battle - I ran comprehensive benchmarks and the results are absolutely shocking. Sequential writes? 13x faster. Mixed workload? 60x faster. Don't miss it! #raspberrypi #pi5 #nas #homelab #selfhosted #diy #raid

7:26 262 views
raspberrypipi5nashomelabselfhosteddiyraid
Watch Video
Building an Automatic Blu-ray Ripping Station | Complete Setup Guide

Building an Automatic Blu-ray Ripping Station | Complete Setup Guide

Transform your physical media collection into a digital library with this automated Blu-ray ripping station. In this video, I walk through the complete setup—from hardware selection to your first successful rip—using open-source software that makes the entire process hands-free. What You'll Learn: • How to build a dedicated ripping machine using affordable hardware • Setting up ARM (Automatic Ripping Machine) for hands-free operation • Configuring network storage with NFS to your NAS • Live demonstration of ripping a Blu-ray from start to finish • Quality preservation: keeping cinema-quality video at home • Brief overview of 4K UHD ripping considerations The Setup: This system automatically detects discs, rips them to lossless MKV files, stores them on my NAS, and notifies me when complete. Insert disc, walk away, get a notification when it's done. All the quality of your physical media, accessible from anywhere via Jellyfin. 🔗 Key Resources: • ARM (Automatic Ripping Machine): https://github.com/automatic-ripping-machine/automatic-ripping-machine • MakeMKV: https://www.makemkv.com/ • Jellyfin Media Server: https://jellyfin.org/ 📹 Related Video: • Argon EON Pi 4 NAS Setup: https://youtu.be/qrTHhKODzgM 💻 Equipment Used: • Lenovo ThinkCentre M70q Gen 3: https://amzn.to/3MZFbpL • LG BU40N External Blu-ray Drive: https://amzn.to/4piCVXV • Argon EON Pi 4 NAS *Disclosure: Some of the links above are affiliate links, which means I may earn a small commission if you make a purchase through them at no additional cost to you. This helps support the channel. Thank you!* Legal Note: This setup is for creating personal backup copies of media you own. Please respect copyright laws in your jurisdiction. --- ## Hashtags #homelab #plex #jellyfin #mediaserver #blurayripping #nas #selfhosted #homeserver #datahoarder

21:33 3476 views Featured
homelabjellyfinmediaserverblurayrippingnasselfhostedhomeserverdatahoarder
Watch Video Read the Article
RAID 5 Setup Explained: Common Mistakes & Questions Answered

RAID 5 Setup Explained: Common Mistakes & Questions Answered

Got stuck setting up RAID 5 on your Raspberry Pi NAS? You're not alone. This video answers the most common question I get: "Do I need to create filesystems on each drive before building the RAID array?" Spoiler: NO - and here's why. 🔧 What You'll Learn: • The correct mental model for RAID 5 setup • Why individual drives DON'T get filesystems or mount points • Step-by-step RAID array creation with mdadm • How to verify your setup is correct • Common pitfalls and how to fix them • Troubleshooting tips for "device busy" errors 💾 My Setup: • EON Pi NAS Case* (https://amzn.to/4qp0QWJ) • 4x2TB drives* (https://amzn.to/3MOA8bw) - Although you should do this with SSD* (https://amzn.to/4p1DEfX) • Raspberry Pi 4* (https://amzn.to/3Y5zGbp) • RAID 5 configuration (5.5TB usable) • Raspberry Pi OS Lite (64-bit) 🔗 Affiliate Disclosure: Links marked with * are Amazon affiliate links. I earn a small commission from qualifying purchases at no extra cost to you. 📚 Useful Resources: • mdadm documentation: https://raid.wiki.kernel.org/index.php/RAID_setup • Previous Pi NAS video: https://www.youtube.com/watch?v=KW2UIRvyyQ4&pp=2AYC • EON Pi NAS Case*: https://amzn.to/4qp0QWJ • Raspberry Pi 4* https://amzn.to/3Y5zGbp • 2TB Hard Drives*: https://amzn.to/3MOA8bw 🙏 Special thanks to the viewer for asking this question - it clearly hit a common pain point! 🎬 NEXT IN THIS SERIES: I'm building an Automatic Media Ripping Station using this RAID storage. Subscribe so you don't miss it! 📝 Key Commands Reference: # Create RAID array sudo mdadm --create /dev/md0 --level=5 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 # Create filesystem on RAID device (NOT individual drives!) sudo mkfs.ext4 -L "PiNAS-RAID5" /dev/md0 # Save configuration sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf Full command list in the pinned comment! 👇 💬 Got questions? Drop them in the comments - I read every one! #RaspberryPi #NAS #RAID5 #Homelab #SelfHosted #DataStorage #LinuxTutorial #PiNAS #EON

20:29 153 views
RaspberryPiNASRAID5HomelabSelfHostedDataStorageLinuxTutorialPiNASEON
Watch Video
Go's net/http Router: I Was Dead Wrong (And Here's Why)

Go's net/http Router: I Was Dead Wrong (And Here's Why)

Okay, I have to admit it... I was wrong! 😅 I recently learned a lot about the Go standard library's net/http router, and I want to share what I discovered. I previously thought it was limited, but it's actually incredibly capable! In this video, I'm retracting my previous statements and walking you through how to: Grab variables directly from URLs Build powerful middleware chains Organize your routes with sub-routing I'm now a believer in the power of net/http and think it's a great option for building web applications in Go. Check it out and let me know what you think! #golang #webdev #godev #nethttp #gorillamux #learning

3:53 187 views
Go RetractionGo Standard LibraryGo net/httpProgramming MistakesDeveloper HonestyGo RouterGo TutorialTechnical CorrectionLearning in Public
Watch Video
Go Web Development: The Future of Backend?

Go Web Development: The Future of Backend?

Learn how to build web applications with Go (Golang)! This tutorial covers the basics of handling requests, concurrency with goroutines, and working with JSON. Perfect for beginners looking to add Go to their web development toolkit. **Resources:** * **Code Repository:** https://github.com/Spatacoli/youtube * **Go Documentation:** https://go.dev/doc/ * **Gorilla Mux:** https://github.com/gorilla/mux Don't forget to subscribe for more Go tutorials! 👍 #golang #webdevelopment #go #webdev #tutorial #programming #goroutines #concurrency #json #api #gorillamux #backend #coding #learngo #godev

8:27 1283 views
Go ConcurrencyGoroutinesGolang AdvancedREST API DevelopmentJSON APIGorilla MuxBackend DevelopmentGo TutorialAdvanced Web DevelopmentConcurrent Programming
Watch Video
Go Programming Unleashed: Start Your Web Development Journey

Go Programming Unleashed: Start Your Web Development Journey

Ready to build web applications with Go? This video is a deep dive into the `net/http` standard library, taking you from a simple "Hello, World" example to a more robust foundation for building real-world web apps. We'll cover: * **Request & Response Handling:** Learn how to receive and process HTTP requests, and send back appropriate responses. * **HTTP Methods:** Understanding GET, POST, and other HTTP methods. * **Middleware:** Discover how to use middleware to add reusable functionality like logging, authentication, and authorization to your application. * **Custom Handlers:** Learn how to create your own handlers to encapsulate application-specific logic and keep your code organized. * **The difference between Handlers and Middleware:** Understand the roles of each and how they work together. This tutorial is perfect for beginners and intermediate Go developers looking to expand their web development skills. We'll build a solid foundation that you can use to create more complex applications. Don't forget to subscribe and hit the notification bell for more Go tutorials! Find me on: * Bluesky * Threads * GitHub * My Website: https://spatacoli.com #golang #go #webdev #webdevelopment #tutorial #programming #nethttp #middleware #handlers #goWebDev #webapplications #godeveloper #learngo #webprogramming

9:41 127 views
Go Web DevelopmentGolang Web ServerHTTP ServerGo TutorialBackend DevelopmentREST API
Watch Video
Learn Go Like a Pro: Step-by-Step for Beginners

Learn Go Like a Pro: Step-by-Step for Beginners

🚀 **Learn Go Like a Pro: Step-by-Step for Beginners** Are you ready to dive into the world of programming with Go? Whether you're new to coding or looking to expand your skills, this comprehensive tutorial is perfect for beginners! **What You'll Learn:** - 🌟 The basics of Go syntax and structure - 🔍 How to work with variables, data types, and control structures - 📚 Understanding functions, packages, and modules in Go **Why Choose Go?** - High performance and efficiency - Simple, clean syntax that's easy to learn - Strong community support and growing demand in the tech industry - Cute mascot 👩‍💻 **Join us on this exciting journey!** Whether you're aiming for a career in software development or just curious about programming, this video will equip you with the foundational skills needed to start coding confidently in Go. ✨ Don't forget to like, subscribe, and hit the notification bell so you don't miss any of my upcoming tutorials!

19:36 359 views
GoGolangProgrammingSoftware Development
Watch Video
Unpacking Outline: The New Face of Self-Hosted Documentation?

Unpacking Outline: The New Face of Self-Hosted Documentation?

Welcome to our dive into self-hosted documentation tools, where we shed light on 'Outline', an innovative platform for your documentation needs. In this video, we compare Outline to popular tools like 'Notion', 'Obsidian', and 'Confluence'. Join us on this journey, as we navigate through the world of self-hosted documentation. Discover the power of 'Outline' and see how it stacks up against 'Notion', 'Obsidian', and 'Confluence'. Stay tuned, learn, and make the best choice for your documentation needs. Don't forget to like, share, and subscribe for more such insightful content! Outline can be found here: https://www.getoutline.com/ Christian Lempa's Video on Authentik can be found here: https://www.youtube.com/watch?v=N5unsATNpJk

4:21 600 views
Watch Video
Installing Traefik as a Reverse Proxy for Nextcloud

Installing Traefik as a Reverse Proxy for Nextcloud

In the previous video (https://www.youtube.com/watch?v=Twv0SpdRniA) we installed Nextcloud, but I left the Traefik installation as a mystery. This video solves that mystery by describing how to setup Traefik. Please let me know down below if you have any questions and I'll try to answer them. details of setting it up can be found on my GitHub page: https://github.com/Spatacoli/boilerplates/tree/main/docker-compose/traefik Thank you for watching.

24:50 14661 views
Watch Video