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:
- Home Assistant OS in a Docker container or as bare-metal OS (HAOS).
- Jellyfin in a Docker container.
- 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
| Component | Pick | Approx price |
|---|---|---|
| SBC | Raspberry Pi 4 8GB | $75–$85 |
| OS storage | SanDisk Ultra 3D NAND 1TB SSD | $60–$75 |
| Media storage | Crucial BX500 1TB SATA SSD | $50–$65 |
| USB 3.0 SATA adapter | FIDECO SATA/IDE-to-USB 3.0 | $20–$25 |
| Power supply | Official Pi 4 USB-C PSU (5.1 V, 3 A) | $10 |
| Case | Argon 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
- Flash the SD card with Raspberry Pi OS Lite (64-bit) using the official Imager.
- Boot, update firmware, then enable USB boot if not already enabled.
- Image the SanDisk SSD with the same Pi OS Lite. Reboot from the SSD.
- Mount the second SSD (Crucial BX500) at
/srv/mediavia/etc/fstab. - Install Docker and Docker Compose. Use the official
get.docker.comscript. - Pull the Home Assistant container with
ghcr.io/home-assistant/home-assistant:stable. - Pull the Jellyfin container with
jellyfin/jellyfin:latest. - Compose them together in a single
docker-compose.ymlwithrestart: unless-stopped. - Point Jellyfin at
/srv/media, point Home Assistant at port 8123. - Set up Tailscale for off-LAN access without exposing ports to the internet.
Memory budget on a Pi 4 8GB
| Workload | RAM used | Notes |
|---|---|---|
| OS (Pi OS Lite 64-bit) | ~250 MB | base |
| Docker daemon | ~100 MB | base |
| Home Assistant container (idle) | ~600 MB | grows with integrations |
| Jellyfin container (idle) | ~250 MB | base |
| Jellyfin transcoding 1080p stream | +1,000 MB | peak |
| Library scan (Jellyfin) | +400 MB | transient |
| Total under peak load | ~2.6 GB | leaves ~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:
- OS writes are constant (logs, HA state, container layers). You don't want media-library reads contending for the same disk.
- If the media disk fills, the OS partition stays intact. Easier recovery.
- 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
- Running off an SD card for production. Will corrupt within months. Use USB SSD boot.
- Trying to transcode 4K HEVC on the Pi 4. It won't work. Direct play or step up to Pi 5 / N100.
- Mixing media and OS on one disk. Possible, but harder to back up and easier to lose to a single-disk failure.
- Exposing port 8123 (HA) or 8096 (Jellyfin) to the internet. Use Tailscale or WireGuard instead. Never NAT those ports.
- 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
- Self-Host Jellyfin on a Raspberry Pi 4 8GB in 2026
- Home Assistant on a Raspberry Pi 4 8GB
- Build a RetroPie Console on a Raspberry Pi 4 8GB in 2026
- Best Raspberry Pi Accessories for Home-Lab Builds in 2026
- Self-Host Immich on a Raspberry Pi 4 8GB
Citations and sources
- Home Assistant docs — installation, integrations, supported architectures
- Jellyfin documentation — transcoding requirements and codec support
- Raspberry Pi 4 documentation — USB-mass-storage boot, USB 3.0 PHY layout, hardware codec support
This piece is editorial synthesis based on publicly available information. No independent first-party benchmarking is reported.
