Home Server Infrastructure

Homelab & Self-Hosting

2026

Overview

It started because Proxmox was driving me insane. Buggy, unstable, and fighting me on everything. So I wiped the whole Dell PowerEdge R510 and decided to start fresh. Simple, right? Absolutely not.

First attempt: ZimaOS. Spent hours switching the BIOS from Legacy to UEFI because ZimaOS required it. Got through the boot, started troubleshooting... and discovered my PERC RAID card wasn't supported. Hours of BIOS changes for nothing. Next.

Second attempt: Umbrel OS. Did a full RAID reconfiguration for it, got through the install, and then WiFi refused to work. Dove deep into the BIOS NIC settings — switched Shared LOM to Dedicated, disabled iDRAC LAN so it wouldn't conflict, manually configured the gateway and static IP, changed what felt like a hundred other settings. Still fighting network issues. Next.

Third attempt: Ubuntu Server + CasaOS. This one stuck. Got Ubuntu installed clean, immediately hardened it — disabled password authentication entirely and set up SSH key-only access. Then installed CasaOS on top for the web dashboard and started deploying services through Docker Compose. Wrote a custom compose file to get everything running exactly how I wanted it. Now it runs Jellyfin for media, the *arr stack (Prowlarr + Sonarr) for automation, qBittorrent for downloads, Immich for photo backup, Netdata for monitoring, Scrutiny for hard drive health, Open WebUI + Ollama for local AI, Tailscale for secure remote access, Portainer for container management, Kasm for browser isolation, Forgejo for self-hosted Git, and Coder for fully containerized development environments. All of it running stable on enterprise hardware that cost less than a gaming GPU.

Work Items

Hardware & BIOS Configuration

architecture

The Dell PowerEdge R510 needed extensive BIOS reconfiguration before anything would even boot properly. Converted from Legacy to UEFI, switched NIC modes, disabled conflicting interfaces, and set up static networking. Learned more about server firmware than I ever expected.

  • Legacy to UEFI BIOS conversion for modern OS compatibility
  • Switched Shared LOM to Dedicated NIC mode for reliable networking
  • Disabled iDRAC LAN to prevent network interface conflicts
  • Configured static IP, gateway, and DNS at the firmware level
  • Multiple BIOS revisions across 3 different OS installation attempts

OS Evaluation & Selection

architecture

Tested four different operating systems before finding the right stack. Each failure taught me something — Proxmox about stability expectations, ZimaOS about RAID card compatibility, Umbrel about NIC configuration. Ubuntu Server + CasaOS was the winner.

  • Proxmox: Wiped due to persistent bugs and instability
  • ZimaOS: PERC RAID card not supported despite hours of UEFI setup
  • Umbrel OS: NIC/WiFi issues despite deep BIOS network reconfiguration
  • Ubuntu Server: Clean install with CasaOS overlay for web management
  • Documented compatibility findings for each OS + hardware combo

RAID & Storage Architecture

architecture

Configured the Dell PERC RAID controller for storage redundancy across multiple drives. Had to reconfigure RAID levels multiple times across different OS attempts. The PERC BIOS utility became very familiar territory.

  • Dell PERC RAID controller configuration for multi-drive redundancy
  • Virtual disk creation and management through PERC BIOS utility
  • Multiple RAID reconfigurations during OS evaluation phase
  • Storage provisioning for Docker volumes and persistent data

Security Hardening

security

Locked down the server from day one. Password authentication disabled entirely, SSH key-only access enforced. If a machine is on any network, it needs to be hardened — no exceptions, no "I'll do it later."

  • SSH key-only authentication — password auth completely disabled
  • Tailscale mesh VPN for secure remote access with zero exposed ports
  • No public-facing services — everything behind the VPN
  • Per-service access controls and network isolation via Docker

Media & Automation Stack

feature

Jellyfin for streaming, Prowlarr + Sonarr for indexing and automation, qBittorrent for downloads, Immich for photo backup. The whole media pipeline runs automatically — content gets found, downloaded, organized, and made available to stream.

  • Jellyfin: Self-hosted media server with hardware transcoding
  • Prowlarr: Indexer manager that feeds Sonarr with sources
  • Sonarr: Automated TV show monitoring, downloading, and organization
  • qBittorrent: Download client with WebUI, integrated with the *arr stack
  • Immich: Self-hosted Google Photos alternative for personal photo/video backup

AI & Developer Tools

ai

Running Ollama + Open WebUI for local LLM inference — no API costs, no data leaving the network. Coder provides fully containerized development environments, and Forgejo replaces GitHub for private repos. Kasm for isolated browser sessions.

  • Ollama: Local LLM runtime for running models on-premises
  • Open WebUI: ChatGPT-like interface for interacting with local models
  • Coder: Fully containerized developer environments accessible from any device
  • Forgejo: Self-hosted Git forge (lightweight Gitea fork) for private repositories
  • Kasm: Browser isolation and containerized desktop streaming

Monitoring & Maintenance

feature

Netdata for real-time system metrics, Scrutiny for S.M.A.R.T. hard drive health monitoring, and Portainer for container management. If something breaks at 2 AM, I want to know exactly what happened and see it on a dashboard.

  • Netdata: Real-time CPU, RAM, disk, and network monitoring with alerting
  • Scrutiny: S.M.A.R.T. drive health tracking with historical trends and failure prediction
  • Portainer: Visual Docker container management, logs, and resource monitoring
  • All monitoring accessible remotely via Tailscale

Networking & Remote Access

security

Tailscale creates a secure mesh VPN so I can access every service from anywhere without exposing a single port to the internet. Combined with the dedicated NIC setup in BIOS, networking is both reliable and locked down tight.

  • Tailscale mesh VPN for zero-config secure remote access
  • Dedicated NIC mode for reliable server networking
  • Static IP and gateway configuration for consistent addressing
  • Docker networking for inter-service communication and isolation
  • All services deployed via custom Docker Compose orchestration

Key Highlights

  • 01

    Evaluated and tested 4 different server operating systems (Proxmox, ZimaOS, Umbrel OS, Ubuntu Server) before finding the right fit

  • 02

    Deep BIOS/firmware configuration — UEFI conversion, NIC mode switching, iDRAC LAN management, static IP and gateway setup

  • 03

    RAID controller configuration with Dell PERC card for storage redundancy across multiple drives

  • 04

    Hardened Ubuntu Server with SSH key-only authentication, password auth fully disabled

  • 05

    Deployed 15+ containerized services via custom Docker Compose on CasaOS

  • 06

    Self-hosted AI stack with Ollama + Open WebUI for local LLM inference

  • 07

    Secure remote access via Tailscale mesh VPN — zero exposed ports

  • 08

    Full developer environment with Forgejo (self-hosted Git) and Coder (containerized dev workspaces)

Technologies

Ubuntu ServerDockerCasaOSTailscaleOllamaPortainerJellyfinForgejoCoder