Build Your Own
← Back to Overview
Media Server — your library, your rules.
Your movies, music, and photos on a filesystem that never silently corrupts a frame. ZFS compression means your 4TB library fits in 2.5TB of disk. Snapshots mean you can undo that accidental delete. And it's yours — no subscription, no cloud, no limits.
The recipe
# Start with a kldload desktop or server install, then:
# Create a compressed media dataset
kdir -o compression=zstd -o recordsize=1M /srv/media
# Option A: Jellyfin (free, open source)
kpkg install jellyfin
systemctl enable --now jellyfin
# Browse to http://your-ip:8096
# Option B: Plex (free tier, proprietary)
# Download .deb/.rpm from plex.tv and install with kpkg
# Organize your media
kdir /srv/media/movies
kdir /srv/media/tv
kdir /srv/media/music
kdir /srv/media/photos
# Snapshot your library (undo accidental deletes)
ksnap /srv/media
# Access deleted files via the hidden .zfs directory
ls /srv/media/.zfs/snapshot/
What you'll learn
Record size tuning
Why media files want 1MB record sizes. Why databases want 8K. How ZFS lets you tune per-dataset. The performance difference is massive.
Compression tradeoffs
LZ4 for speed, ZSTD for ratio. Why already-compressed media (MP4, FLAC) doesn't compress further. Why text, logs, and metadata compress 3–5x. Choose per dataset.