Raspberry Pi 4 home media server — full Jellyfin + Samba setup

Asked 4 days ago Modified 3 days ago Viewed 7 times
Raspberry Pi 4 home media server — full Jellyfin + Samba setup

Goal: a low-power, always-on home server that streams your local movies/shows to every device in the house and exposes a network share for the family laptops.

Bill of materials

  • Raspberry Pi 4 (4GB is plenty; 8GB if you want headroom for more services)
  • Official Raspberry Pi 27W USB-C power supply
  • 32GB+ A2-rated microSD card (Samsung Evo Plus works great)
  • 1TB or 2TB external USB 3.0 hard drive (self-powered preferred)
  • Aluminium passive case (Argon ONE or similar) for silent cooling
  • Ethernet cable — Wi-Fi works but wired is dramatically better for 1080p streaming

Step 1 — Flash Raspberry Pi OS Lite (64-bit) using Raspberry Pi Imager. In the gear menu, preset the hostname, enable SSH, and configure Wi-Fi/locale. This avoids needing a monitor.
Step 2 — Boot the Pi, SSH in, run `sudo apt update && sudo apt full-upgrade -y`, then `sudo apt install -y curl gnupg`.

Step 3 — Install Jellyfin with the official one-liner

curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash

Open http://<pi-ip>:8096 in your browser to finish the web setup.
Step 4 — Mount your USB drive permanently. Find it with `lsblk`, format it ext4 if needed, then add an /etc/fstab entry like:

/dev/sda1  /mnt/media  ext4  defaults,nofail,noatime  0  2

Step 5 — Install Samba: `sudo apt install -y samba`. Edit /etc/samba/smb.conf, add a [media] share pointing at /mnt/media, then `sudo smbpasswd -a pi` and restart Samba.

Performance tips

  • Transcoding 4K on a Pi 4 is rough — keep your files in formats the client can direct-play (H.264 in MP4/MKV is safest).
  • Move the Jellyfin metadata directory to the USB drive to extend the lifetime of your SD card.
  • Add Tailscale if you want secure remote access without opening ports on your router.

Power consumption hovers around 4-6W, so you can run this 24/7 for less than a few dollars a month.