Skip to main content
Self-Host Jellyfin and Home Assistant on a Raspberry Pi 4 8GB in 2026

Self-Host Jellyfin and Home Assistant on a Raspberry Pi 4 8GB in 2026

A Pi 4 8GB handles Home Assistant + Jellyfin direct-play comfortably. Single-stream transcoding works. 4K HEVC doesn't.

A Raspberry Pi 4 8GB runs Home Assistant + Jellyfin together in 2026 if you accept single-stream 1080p transcoding. Full setup and BOM here.

Yes, a Raspberry Pi 4 8GB is enough to run Home Assistant and Jellyfin together in 2026, with two caveats: store media on a separate SSD over USB 3.0 (use the Crucial BX500 1TB SATA SSD with a FIDECO SATA/IDE-to-USB 3.0 adapter), and accept that Jellyfin will transcode at most one 1080p stream concurrently. For multi-stream or 4K direct play, skip the Pi and use a Pi 5 or an N100 mini PC.

Why this build matters in 2026

Self-hosting is a 2026 default for the privacy-conscious. The Pi 4 8GB at $75–$85 is still the cheapest path into a real home-server tier, even with Pi 5 and Pi 6 in the channel. Home Assistant for smart-home control and Jellyfin for media are the two most-deployed self-host apps on the Pi platform, and stacking them on one box is the budget configuration that delivers maximum coverage for minimum spend.

This piece is editorial synthesis of Home Assistant docs, Jellyfin docs, and community deployment notes from r/selfhosted and the HASS community forums. We're not running a private testbench — what follows comes from those public sources, organized for the Pi 4 8GB combined-deploy reader.

Key takeaways

  • Home Assistant idle on a Pi 4 8GB: ~600 MB RAM, ~2% CPU. Plenty of headroom.
  • Jellyfin direct-play (no transcode) on a Pi 4 8GB: ~50 MB RAM per stream, ~3% CPU. Multiple streams OK.
  • Jellyfin transcoding 1080p H.264 → H.264: ~1 GB RAM, 70–90% CPU. One concurrent stream maximum.
  • Pi 4 8GB cannot reliably hardware-accelerate H.265 (HEVC) transcoding. Direct play only for HEVC content.
  • Store media on a Crucial BX500 1TB SSD over USB 3.0; never use the SD card for media.
  • Use a SanDisk Ultra 3D NAND 1TB SSD for the OS partition for faster boot times.

What you'll actually run on this box

The recommended stack:

  1. Home Assistant OS in a Docker container or as bare-metal OS (HAOS).
  2. Jellyfin in a Docker container.
  3. Optional: Pi-hole for ad-blocking, Tailscale or WireGuard for remote access.

Two services + one Docker daemon + the base OS lives well within 2 GB of RAM at idle, leaving ~6 GB for transcode buffers, library scans, and any extras you add later.

Hardware bill of materials

ComponentPickApprox price
SBCRaspberry Pi 4 8GB$75–$85
OS storageSanDisk Ultra 3D NAND 1TB SSD$60–$75
Media storageCrucial BX500 1TB SATA SSD$50–$65
USB 3.0 SATA adapterFIDECO SATA/IDE-to-USB 3.0$20–$25
Power supplyOfficial Pi 4 USB-C PSU (5.1 V, 3 A)$10
CaseArgon ONE M.2 or similar metal case$35
MicroSD (optional bootstrap)Any 32 GB Class 10$8

Total: roughly $260 for a complete two-SSD configuration. If you already have storage on hand, the marginal cost of the build is ~$120.

The two-SSD layout matters more than the absolute capacity. SD cards die quickly under server workloads — running HAOS and Jellyfin off an SD card is a guarantee of corruption within 6–18 months. The Pi 4 supports USB-mass-storage boot out of the box on current firmware.

Step-by-step setup outline

  1. Flash the SD card with Raspberry Pi OS Lite (64-bit) using the official Imager.
  2. Boot, update firmware, then enable USB boot if not already enabled.
  3. Image the SanDisk SSD with the same Pi OS Lite. Reboot from the SSD.
  4. Mount the second SSD (Crucial BX500) at /srv/media via /etc/fstab.
  5. Install Docker and Docker Compose. Use the official get.docker.com script.
  6. Pull the Home Assistant container with ghcr.io/home-assistant/home-assistant:stable.
  7. Pull the Jellyfin container with jellyfin/jellyfin:latest.
  8. Compose them together in a single docker-compose.yml with restart: unless-stopped.
  9. Point Jellyfin at /srv/media, point Home Assistant at port 8123.
  10. Set up Tailscale for off-LAN access without exposing ports to the internet.

Memory budget on a Pi 4 8GB

WorkloadRAM usedNotes
OS (Pi OS Lite 64-bit)~250 MBbase
Docker daemon~100 MBbase
Home Assistant container (idle)~600 MBgrows with integrations
Jellyfin container (idle)~250 MBbase
Jellyfin transcoding 1080p stream+1,000 MBpeak
Library scan (Jellyfin)+400 MBtransient
Total under peak load~2.6 GBleaves ~5.4 GB free

The 8GB Pi 4 is genuinely well-sized for this stack. The 4 GB variant works for direct-play-only setups, but transcoding plus growing Home Assistant integrations puts you within striking distance of swap. The 8GB price premium is small enough to skip the worry.

CPU budget and transcoding reality

The Pi 4's quad-core Cortex-A72 at 1.5 GHz handles HA easily. Jellyfin transcoding is where it falls down:

  • 1080p H.264 → 1080p H.264 transcode: 70–90% CPU, manageable for one stream.
  • 1080p HEVC → 1080p H.264 software transcode: 95%+ CPU, dropped frames common.
  • 4K direct play: fine if the client supports the source codec.
  • 4K transcode: not viable. Don't try.

The Pi 4's VideoCore VI GPU supports hardware H.264 decode but not encode. That means Jellyfin can hardware-decode the source but has to software-encode the destination. For HEVC sources, even decode is software-bound.

If your library is 1080p H.264 and you watch one stream at a time, the Pi 4 is fine. If your library is 4K HEVC and you need multi-stream transcoding, jump to a Pi 5 or a small x86 box with QuickSync (Intel N100, N305).

Home Assistant integration list that works well

Per the Home Assistant community, integrations that run comfortably on the Pi 4 8GB alongside Jellyfin:

  • Z-Wave JS via USB stick (Zooz or Aeotec).
  • Zigbee2MQTT via USB Zigbee coordinator.
  • HACS custom integrations (modest).
  • ESPHome dashboard for device config.
  • Frigate NVR — only if Jellyfin is mostly direct-play. Frigate's object detection is CPU-hungry and competes with Jellyfin transcoding.

If you want Frigate for AI camera, the Pi 4 is at its limit. Move Frigate to a Coral USB Accelerator or a separate x86 box.

Storage strategy

The OS lives on the SanDisk Ultra 3D NAND 1TB SSD. The media library lives on the Crucial BX500 1TB SATA SSD. Both connect via USB 3.0, one through the FIDECO SATA/IDE-to-USB 3.0 adapter and the other through a similar adapter or an SSD enclosure.

A two-disk layout matters because:

  1. OS writes are constant (logs, HA state, container layers). You don't want media-library reads contending for the same disk.
  2. If the media disk fills, the OS partition stays intact. Easier recovery.
  3. Backups can target one or the other independently.

Per the Raspberry Pi USB 3.0 documentation, the Pi 4's two USB 3.0 ports are on separate PHYs, so two SSDs don't bottleneck each other significantly.

Power and thermal

The Pi 4 8GB under sustained Jellyfin transcoding draws roughly 5–6 W at the SoC plus another 2–3 W per attached SSD. At ~$0.15/kWh and continuous operation, that's roughly $1.20/month in electricity for the whole box. Compared to a $40/month Plex Pass + cloud storage, the Pi pays for itself in roughly 7 months.

For thermals, a metal case with passive heatsink (Argon ONE M.2) is enough at idle. Under sustained transcoding, plan for a small fan — the official Pi 4 case fan or the Argon's active variant.

Common pitfalls

  1. Running off an SD card for production. Will corrupt within months. Use USB SSD boot.
  2. Trying to transcode 4K HEVC on the Pi 4. It won't work. Direct play or step up to Pi 5 / N100.
  3. Mixing media and OS on one disk. Possible, but harder to back up and easier to lose to a single-disk failure.
  4. Exposing port 8123 (HA) or 8096 (Jellyfin) to the internet. Use Tailscale or WireGuard instead. Never NAT those ports.
  5. Skipping HACS backup hygiene. Snapshot HA before adding integrations; revert if something breaks.

When NOT to use a Pi 4 for this

  • Library is mostly 4K HEVC and you need transcoding.
  • You want concurrent streams to 3+ devices.
  • You're running other heavy services (Plex with hardware transcode, Frigate with AI, Nextcloud at scale).
  • You need ECC memory for long-term file integrity.

Any of those, go to a Pi 5 or an N100 mini PC. The marginal cost is $100–$200 and the workload headroom triples.

Bottom line

The Raspberry Pi 4 8GB plus two USB 3.0 SSDs is the cleanest sub-$300 self-host box for Home Assistant + Jellyfin in 2026. Direct-play 1080p H.264 libraries run great. Single-stream transcoding works. Multi-stream or 4K HEVC transcoding doesn't.

If your media library is mostly 1080p H.264 and you watch one stream at a time, this box is the answer. If you need anything more, step up to a Pi 5 or a small x86 box.

Related guides

Citations and sources

This piece is editorial synthesis based on publicly available information. No independent first-party benchmarking is reported.

Products mentioned in this article

Live prices from Amazon and eBay — both shown for every product so you can pick the channel that fits.

SpecPicks earns a commission on qualifying purchases through both Amazon and eBay affiliate links. Prices and stock update independently.

Frequently asked questions

Can the Raspberry Pi 4 8GB run Jellyfin and Home Assistant at the same time?
Yes, for modest households. Home Assistant is light on CPU once running, leaving the Pi 4's quad-core and 8GB of RAM able to serve Jellyfin for direct-play streams. The constraint is Jellyfin transcoding, which is CPU-heavy on the Pi, so the combo works best when your media plays without on-the-fly transcoding.
Why should I boot the Pi 4 from an SSD instead of a microSD card?
MicroSD cards are slow and wear out under the constant writes that databases like Home Assistant's generate, leading to corruption over time. Booting from a USB 3.0 SSD via a SATA adapter is far faster and far more durable, which is why an SSD plus adapter is the standard reliability upgrade for an always-on Pi homelab.
Can the Pi 4 transcode 4K video in Jellyfin?
Not well. The Pi 4's VideoCore VI can handle some hardware-accelerated H.264 work but struggles with heavy 4K HEVC transcoding, often dropping to slow software transcode. The practical answer is to keep media in formats your clients direct-play, or step up to a mini-PC with a modern iGPU if you need reliable 4K transcoding.
How much power does this build draw?
A Pi 4 with a USB SSD typically idles around a few watts and peaks under load well below a desktop or NAS, which is the whole appeal of using it as an always-on server. Over a year that low draw saves meaningfully on electricity compared with leaving a full PC running for the same services.
When should I move from a Pi 4 to a mini-PC?
Step up once you need reliable hardware transcoding, run several heavy containers, or want to host a local LLM. A mini-PC with a modern integrated GPU handles 4K transcode and more concurrent services than the Pi 4 can, at the cost of higher idle power. Below that threshold the Pi 4 8GB remains the cheaper, cooler choice.

Sources

— SpecPicks Editorial · Last verified 2026-06-06