Post

Half This Sub Runs Pihole And Jellyfin On 600W Of Enterprise Gear And Calls It A Homelab

Half This Sub Runs Pihole And Jellyfin On 600W Of Enterprise Gear And Calls It A Homelab

#Half This Sub Runs Pihole And Jellyfin On 600W Of Enterprise Gear And Calls It A Homelab

INTRODUCTION

The homelab community has long celebrated the thrill of spinning up a 40‑unit rack, populating it with dual‑socket PowerEdge servers, and filling a disk shelf with terabytes of storage. Yet the reality for many of us is a different story: a single‑board computer humming in a closet, a modest mini‑PC pulling a fraction of the power, and a handful of containers delivering the services we actually need. The disparity between the glossy Instagram‑ready photos of over‑engineered labs and the practical, low‑cost solutions that keep services running is the punchline of countless discussions.

This article dissects the phenomenon of “half this sub runs Pi-hole and Jellyfin on 600 W of enterprise gear and calls it a homelab.” It explains why the trend persists, what the underlying technologies are, and how you can achieve the same functional outcomes with a fraction of the power, cost, and complexity. By the end of this guide you will understand the trade‑offs of using high‑end hardware for lightweight workloads, know the exact prerequisites for deploying Pi‑hole and Jellyfin in a containerized environment, and have a step‑by‑step blueprint for configuring, optimizing, and troubleshooting these services on modest hardware.

Key topics covered include:

  • The history and core features of Pi‑hole (network‑wide ad blocking) and Jellyfin (media server)
  • The evolution of homelab hardware from rack‑mount servers to ARM‑based mini‑PCs - Power consumption realities of 600 W enterprise gear versus sub‑50 W alternatives
  • Detailed installation and configuration steps using Docker with $CONTAINER_ID, $CONTAINER_NAMES, $CONTAINER_IMAGE, $CONTAINER_PORTS, and related variables - Security hardening, performance tuning, and backup strategies
  • Common troubleshooting scenarios and debugging techniques

Whether you are a seasoned DevOps engineer, a self‑hosted enthusiast, or a sysadmin looking to reclaim wasted power, this guide provides the technical depth and practical examples you need to move beyond the “showroom” lab and build a truly efficient, purpose‑driven homelab.

UNDERSTANDING THE TOPIC

What Is Pi‑hole?

Pi‑hole is an open‑source DNS sinkhole that blocks advertisements, tracking domains, and malicious hosts at the network level. It operates as a recursive DNS server for local LAN clients, intercepting DNS queries and returning a “null” response for any domain on a blocklist. Because it sits in front of all DNS traffic, it requires no client‑side configuration and works transparently across devices.

Key technical attributes:

  • Runs as a lightweight daemon (typically FTL – Floated DNS) written in C++
  • Consumes minimal CPU and memory; a single‑core ARM processor can handle thousands of queries per second
  • Configuration is stored in /etc/pihole/pihole.conf and managed via a web UI on port 80 (or custom HTTPS)
  • Supports upstream DNS providers (Cloudflare, Google, Quad9) and custom blocklists

What Is Jellyfin?

Jellyfin is a free, open‑source media server that provides a self‑hosted alternative to commercial streaming platforms. It indexes local media libraries, transcodes on‑the‑fly, and streams to a wide range of clients (web browsers, mobile apps, smart TVs). Unlike its commercial counterparts, Jellyfin does not require a subscription and can be fully containerized.

Key technical attributes: - Written in C#/.NET Core, offering cross‑platform compatibility

  • Uses a modular plugin architecture for transcoding, subtitles, and authentication
  • Exposes a web UI on port 8096, media streaming on ports 8092–8094, and optional HTTPS on 8920
  • Can run behind reverse proxies (e.g., Nginx, Traefik) for TLS termination

Why the 600 W Enterprise Gear Myth?

The myth stems from a cultural fascination with “big‑iron” aesthetics. Many early homelabbers acquired refurbished rack servers because they were cheap on the secondary market, and the visual impact of a 40‑unit rack filled with blinking LEDs was appealing for social media. However, these machines often idle at 150–200 W each, drawing significant power even when only a few lightweight containers are active.

Consequences of this approach:

  • Idle Power Waste: A 600 W rack can consume more electricity in a month than a modern Intel NUC or Raspberry Pi 4 running the same workloads.
  • Heat and Cooling: High‑density servers generate substantial heat, requiring additional fans or HVAC, which further inflates operational costs.
  • Complexity: Managing BIOS settings, RAID controllers, and remote management interfaces adds layers of configuration that are unnecessary for simple DNS or media services.

The shift toward low‑power alternatives is driven by practical concerns: cost per watt, noise, space, and the desire to keep the homelab sustainable. ### Comparison With Alternatives

Feature600 W Enterprise RackMini‑PC / ARM BoardTypical Power Draw
CPU Cores (idle)8–16 cores1–4 cores5–15 W
RAM (idle)64 GB2–8 GB2–5 W
Storage (idle)8 TB HDD array256 GB SSD3–8 W
Total Idle Power~180 W~12 W
NoiseLoud fansFanless or low‑speed
Physical FootprintRack‑mount (4U)Desktop or wall‑mount
Maintenance ComplexityBIOS, iDRAC, firmwareSimple OS install

The data above illustrates that the same services can be delivered on hardware that consumes less than 10 % of the power while occupying a fraction of the space.

PREREQUISITES

Before deploying Pi‑hole and Jellyfin in containers, ensure the following prerequisites are met:

  1. Operating System – A Linux distribution with recent kernel (≥ 5.10) and up‑to‑date package manager. Recommended: Ubuntu 22.04 LTS, Debian 12, or Fedora 40.
  2. Docker Engine – Version 24.x or later. Install via the official Docker repository; verify with docker version.
  3. Docker Compose – Version 2.20 or later for multi‑service orchestration. 4. Network Configuration – Port forwarding on the host firewall (e.g., ufw or firewalld) for the ports listed in the configuration section.
  4. User Permissions – A non‑root user with sudo privileges to manage Docker. Add the user to the docker group: sudo usermod -aG docker $USER.
  5. Storage – Sufficient disk space for media libraries (minimum 1 TB recommended for a modest collection). Use xfs or ext4 with noatime for performance. 7. TLS Certificates – If exposing services to the internet, obtain certificates via Let’s Encrypt or a self‑signed option for internal use.

Checklist - [ ] Docker Engine installed and running (systemctl status docker)

  • docker compose version returns 2.x - [ ] Host firewall allows inbound traffic on required ports (see later)
  • Storage mount points defined in /etc/fstab with appropriate permissions
  • Time synchronization enabled (systemctl enable --now chronyd)

INSTALLATION & SETUP

1. Deploying Pi‑hole via Docker

The official Pi‑hole Docker image (pihole/pihole) provides a straightforward deployment. Below is a Docker Compose file that defines the container, network, and volume mappings:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: "3.8"

services:
  pihole:
    image: pihole/pihole:latest
    container_name: $CONTAINER_NAMES
    environment:
      TZ: America/New_York
      WEBPASSWORD: "StrongPassword123!"
      DNSMASQ_LISTENING: "all"
      VIRTUAL_HOST: pihole.local
      LETSENCRYPT: "true"
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "80:80/tcp"
    volumes:
      - "./pihole/etc-pihole:/etc/pihole"
      - "./pihole/etc-dnsmasq.d:/etc/dnsmasq.d"
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
    security_opt:
      - apparmor:profile=pihole-security

Explanation of key sections

  • container_name: Uses $CONTAINER_NAMES placeholder to allow dynamic naming.
This post is licensed under CC BY 4.0 by the author.