TL;DR Summary

Self-hosting is addictive and can become a time sink. This guide covers the services worth self-hosting (Plex/Jellyfin, AdGuard Home, Nextcloud, SearXNG, Paperless-NGX), which ones to skip (email, VPNs for most people), and how to build a sustainable homelab that enhances your life without consuming all your free time. Start small, automate backups, and only host what you actually use.

The Self-Hosting Trap

I know homelabbers who spend more time maintaining their infrastructure than using it. Don’t be that person.

Self-hosting should:

  • ✓ Save you money over time
  • ✓ Give you more control
  • ✓ Reduce dependency on third parties
  • ✓ Actually work reliably

It should NOT:

  • ✗ Be a second full-time job
  • ✗ Lose your data because you forgot to check it
  • ✗ Cause more problems than it solves

Services Worth Self-Hosting

1. Media Server: Jellyfin (or Plex)

Why: One Netflix/Hulu/Disney+ subscription = family access to your entire library.

Setup:

docker run -d \
  --name jellyfin \
  -p 8096:8096 \
  -p 8920:8920 \
  -v /path/to/media:/media \
  -v /path/to/config:/config \
  jellyfin/jellyfin:latest

Hardware needs: 4TB+ storage, transcoding needs CPU/GPU power.

My config:

  • Jellyfin on Outpost (192.168.1.145)
  • Accessed via VPN when outside home
  • Family uses it daily

2. DNS Filtering: AdGuard Home

Why: Block ads and trackers network-wide. No per-device configuration needed.

Setup:

docker run -d \
  --name adguard \
  -p 53:53/tcp \
  -p 53:53/udp \
  -p 3000:3000/tcp \
  -v adguard_work:/opt/adguardhome/work \
  -v adguard_conf:/opt/adguardhome/conf \
  adguard/adguardhome

Setup DNS on router:

  • Primary: 192.168.1.145
  • Secondary: Your router (fallback)

Blocklists I use:

  • AdGuard DNS filter
  • EasyList
  • EasyPrivacy
  • Hooray, I’m bored (custom)

3. Search Engine: SearXNG

Why: Private search without Google tracking every query.

Setup:

docker run -d \
  --name searxng \
  -p 8080:8080 \
  -v /path/to/settings:/etc/searxng \
  -e SEARXNG_BASE_URL=https://search.yourdomain.com/ \
  searxng/searxng:latest

Features:

  • Aggregates Google, Bing, DuckDuckGo, etc.
  • No logging, no tracking
  • Open source
  • Multiple search categories

4. Document Management: Paperless-NGX

Why: Digitize and searchable PDFs of everything. Receipts, documents, manuals.

Setup:

docker run -d \
  --name paperless \
  -p 8000:8000 \
  -v /path/to/data:/data \
  -v /path/to/consume:/consume \
  ghcr.io/paperless-ngx/paperless-ngx:latest

Workflow:

  1. Drop PDF in consume folder (or scan with mobile app)
  2. Paperless OCR processes it
  3. Full-text search forever
  4. Tag and organize

5. File Sync: Nextcloud

Why: Dropbox/Google Drive replacement with full control.

Setup:

docker run -d \
  --name nextcloud \
  -p 8080:80 \
  -v nextcloud_data:/var/www/html \
  -v /path/to/files:/data \
  --link mysql:db \
  nextcloud:latest

Alternatives:

  • Syncthing (simpler, no cloud aspect)
  • FileRun (lighter weight)
  • Truenas Scale (if you want full NAS OS)

Services to Skip (Until You Are Ready)

Email

Hard: SPF, DKIM, DMARC, spam filtering, deliverability. One misconfiguration and mail bounces.

Time cost: 10+ hours initial setup, ongoing maintenance.

Verdict: Use Proton Mail or Tuta. It’s not worth it for most people.

VPN

Hard: Keeping secure, port forwarding, bandwidth limits.

Time cost: 5+ hours setup, ongoing security updates.

Verdict: Use Mullvad or Proton VPN. Self-hosted VPN is rarely more private.

Password Manager

Hard: Sync across devices, breach monitoring, recovery options.

Time cost: 3+ hours setup.

Verdict: Use Bitwarden. Self-hosted Bitwarden_rs is good but adds complexity.

The Sustainable Stack

This is what I run 24/7 that just works:

Service Purpose Uptime
AdGuard Home DNS, ad blocking 99.9%
Jellyfin Media server 99.9%
SearXNG Private search 99.9%
Paperless-NGX Documents 99.9%
Nextcloud File sync 99.9%
Home Assistant Smart home 99.9%

All on Docker, automated backups daily.

Backup Strategy

Self-hosted without backups is just data loss waiting to happen.

# My backup script (runs daily via cron)
#!/bin/bash
BACKUP_DIR=/path/to/backups
DATE=$(date +%Y%m%d)

# Docker volumes
docker run --rm -v docker_data:/data -v :/backup alpine tar czf /backup/docker_$DATE.tar.gz /data

# Config files
tar czf /configs_$DATE.tar.gz /home/jefferson/*.yaml /home/jefferson/*.toml

# Upload to异地 storage (B2, Wasabi, etc.)
rclone sync  remote:backups/$DATE --exclude *.tmp

Key Takeaways

  • Self-host what you actually use daily
  • Don’t self-host email unless you have specific needs
  • Automate everything including backups
  • Start with one service, stabilize, then add
  • The goal is to enhance your life, not create a maintenance burden

FAQ

Q: What services are worth self-hosting for beginners?

A: Start with Jellyfin/Plex (media server), AdGuard Home (DNS filtering), and Nextcloud (file sync). These have the best effort-to-reward ratio. Jellyfin replaces multiple paid streaming services. AdGuard improves privacy for every device. Nextcloud replaces cloud storage subscriptions.

Q: What services should beginners avoid self-hosting?

A: Email — your emails get flagged as spam without proper SPF/DKIM/DMARC setup and dedicated IPs. VPNs for most people — self-hosted VPN just shifts where your traffic exits, it does not add privacy. Use a commercial VPN or Tor instead. Complex databases — unless you actually need them, the maintenance overhead is not worth it.

Q: How much does self-hosting cost in electricity?

A: A typical homelab NUC draws 15-30W at idle, 50-80W under load. At $0.10/kWh, that is $1-2/month at idle, $3-5/month under moderate use. Compare this to $10-20/month for equivalent cloud services. The hardware cost is the bigger investment — a used NUC runs $150-300.

Q: How do I back up a self-hosted homelab?

A: At minimum: 3-2-1 backup rule (3 copies, 2 different media types, 1 offsite). Use rsync to a external drive weekly, and something like Restic or Borg to an offsite location (another VPS, Backblaze B2, or S3-compatible storage). For critical data, test restores quarterly.

Q: Can I run a homelab in an apartment without technical skills?

A: Yes, but start small. A single Raspberry Pi or old laptop running Docker Compose is enough to learn. Start with one service (Next →cloud or Jellyfin), learn how it works, then expand. Do not buy a rack server and expect to configure it all at once.