Skip to main content
Self-Host Immich Photo Backup on a Raspberry Pi 4 8GB in 2026

Self-Host Immich Photo Backup on a Raspberry Pi 4 8GB in 2026

Pi 4 8GB + NVMe-over-USB delivers a sub-10W Google Photos replacement

Self-host Immich on a Raspberry Pi 4 8GB with NVMe over USB and a Samsung 870 EVO backup — a $200, 6-8W Google Photos replacement for household libraries.

Yes — a Raspberry Pi 4 Model B 8 GB self-hosts Immich capably for a single-household photo library, as long as you replace the SD card with a real SSD and accept that machine-learning jobs (face recognition, smart search) run slower than on x86. Pair the Pi with a WD Blue SN550 1 TB NVMe in a USB 3.0 enclosure for the photo library and a Samsung 870 EVO 250 GB SATA SSD for archive backups, and you have a $200 Google Photos replacement that pulls 6-8 W idle.

This is the install most readers should do. Below is the why, the how, and the honest envelope.

Key takeaways

  • A Pi 4 8GB is the minimum recommended board for Immich. The 4 GB model works but swaps under ML load and gets sluggish.
  • Per the official Immich docs, the Postgres database + Redis + ML containers want headroom; 8 GB of RAM is the comfort zone.
  • Run the photo library off an SSD, not a microSD card. NVMe-over-USB on the WD Blue SN550 is the right pick; SATA on the Samsung 870 EVO works for archive/cold storage.
  • Initial library import + ML scan is slow on the Pi — budget 12-36 hours for a 50,000-photo backlog. Ongoing incremental scans are fast.
  • A Pi-hosted Immich draws 6-8 W idle and 12-15 W under load — about $8-12/year in electricity.
  • Keep an off-device backup (rclone to B2/S3, or a second SSD that you rotate). One Pi is not a backup strategy.

What you'll need

ComponentPick / specNotes
Single-board computerRaspberry Pi 4 Model B 8 GBPer Raspberry Pi's 4 Model B product page, 4× Cortex-A72 @ 1.8 GHz, 8 GB LPDDR4.
Primary photo library SSDWD Blue SN550 1 TB NVMe in a UASP USB 3.0 enclosureNVMe-over-USB; the Pi's USB 3.0 ports cap around 380-400 MB/s, plenty for photo workloads.
Backup / cold storage SSDSamsung 870 EVO 250 GB SATA SSD in a USB 3.0 enclosureSlower but cheaper per GB; good rotating-backup target.
Power supplyOfficial Pi 4 USB-C 5 V / 3 AUndervoltage is the #1 Pi reliability problem; do not skimp.
CoolingPassive aluminum case OR Argon ONE m.2The Pi 4 throttles above 80 °C; passive cooling is enough for Immich.
NetworkWired GbEWi-Fi works for browsing but upload throughput suffers.
MicroSD32 GB Class 10 / A1OS boot only; data lives on SSD.

Total parts cost lands around $170-220 if you already own the SDcard. The Pi 4 8GB is the dominant cost; everything else is reusable.

Can the Pi 4 8GB handle Immich's machine-learning features?

Yes, but with patience.

Per the Immich documentation, the project includes face detection, face clustering, smart search via CLIP-like embedding, and object detection. All three run inside the immich-machine-learning container. On a Pi 4, the inference path is ARM CPU-only — there is no CUDA, no NPU acceleration via the standard distribution, no GPU offload. That means a face-detection job that takes 80-120 ms on a desktop with a discrete GPU takes 2-3 seconds on the Pi 4. Multiply by every photo in your library and the initial scan is measured in hours to days.

What the Pi delivers comfortably:

  • Upload + storage. Drag-and-drop a folder; the web client and mobile app upload at full USB 3.0 SSD write throughput (~280 MB/s sustained, capped by your network if it is below that).
  • Browsing. Thumbnail generation is fast enough that a 50,000-photo library is responsive once the thumbnail backlog is processed.
  • Search by date / album / location. Pure SQL queries; the Pi runs them in milliseconds.
  • Sharing links. Generated instantly.

What is slow:

  • Initial face recognition scan. 50,000 photos at ~2-3 s/photo lands at 30-40 hours. Run it overnight for a week.
  • Smart search via embedding. First scan is the slow part; queries after the embeddings exist are fast.
  • Object detection. Similar to face recognition; slow upfront, manageable thereafter.

If your library is < 10,000 photos, the initial ML pass completes in a day and you never notice the slowness again. If your library is 100,000+, plan for a long-running background scan or skip the ML features.

Pi 4 8 GB performance envelope on Immich

Reported community measurements for Immich on a Pi 4 8 GB with NVMe-over-USB:

WorkloadThroughput / time
Upload throughput (LAN GbE)110 MB/s sustained
Upload throughput (USB 3.0 SSD ceiling)~280 MB/s sustained
Thumbnail generation~1.2-1.6 sec/photo (ARM CPU, single-thread)
Face detection~2-3 sec/photo (ARM CPU)
CLIP embedding~3-5 sec/photo (ARM CPU)
Daily idle RAM (no jobs running)~1.6 GB used
Daily peak RAM (full ML scan)~5.4 GB used
Database size for 50k photos~1.2 GB
Web UI page load~250-350 ms
Mobile app sync (incremental)~2-3 sec per 10 photos

The shape of the table: I/O and UI are fast, ML is slow. That is the Pi 4's value proposition for Immich. If your priority is "back up phone photos automatically and browse them on every device," the Pi delivers. If your priority is "find every photo of my dog using natural language search," you are signing up for a slow initial pass.

Storage choice matters

The single most consequential decision is "do not run Immich off the microSD card." A microSD card has ~80-100 MB/s sustained read, ~30-60 MB/s sustained write, and a write endurance measured in tens of TB total writes. The Postgres database and Redis cache do constant small writes; an SD card running Immich will wear out in 6-18 months and corrupt halfway through.

The right storage choices:

NVMe over USB 3.0 (recommended primary). A 1 TB WD Blue SN550 in a USB 3.0 UASP enclosure delivers ~380-400 MB/s sustained (Pi 4 USB 3.0 ceiling), 600 TB write endurance, and a 5-year warranty. This is the right buy. Performance:

DriveSustained read on Pi 4 USB 3.0Sustained writeEndurance
WD Blue SN550 1 TB (NVMe over USB)~395 MB/s~285 MB/s600 TBW
Samsung 870 EVO 250 GB (SATA over USB)~380 MB/s~270 MB/s150 TBW
Generic Class 10 microSD 64 GB~85 MB/s~45 MB/s~20 TBW

SATA SSD over USB 3.0 (acceptable, lower endurance). The Samsung 870 EVO 250 GB in a USB 3.0 enclosure delivers comparable throughput at lower endurance. Fine for archive / cold-tier; less ideal for the primary because endurance is lower.

The smartest configuration: NVMe for hot (the active database + recently-uploaded photos), SATA SSD for cold-archive / backup target. Immich's storage path is configurable to put older months on a slower drive.

Step-by-step install outline

  1. Flash Raspberry Pi OS 64-bit Lite to a 32 GB microSD card using Raspberry Pi Imager. The 64-bit Lite image is the right base; do not pick the GUI variant.
  2. Pre-configure Wi-Fi, SSH, and user account in the Imager's advanced settings before flashing.
  3. Boot the Pi, connect via SSH, run sudo apt update && sudo apt upgrade.
  4. Install Docker via the official Docker convenience script (curl -fsSL https://get.docker.com | sh) and add your user to the docker group.
  5. Mount the NVMe SSD at /mnt/immich with an entry in /etc/fstab.
  6. Create /mnt/immich/docker-compose.yml from the Immich docs' Docker template and edit UPLOAD_LOCATION to point at the SSD mount.
  7. Set a strong DB_PASSWORD in .env. Do not skip this step.
  8. docker compose up -d and wait 60-90 seconds for the stack to come up.
  9. Open http://<pi-ip>:2283, create the admin user, and log in.
  10. Install the Immich mobile app, configure server URL, sign in, and turn on backup of camera roll.

First-import gotchas:

  • OOM on the ML container if immich-machine-learning runs concurrently with a large camera roll backup. Schedule heavy ML jobs overnight when uploads are quiet.
  • Postgres "could not write to file" errors if your SSD enclosure briefly disconnects. Use a UASP-mode enclosure with stable power.
  • Reverse-proxy timeouts if you front Immich with nginx and use the default 60-second timeout; Immich uploads of large originals can take longer. Raise to 600 s.

Power and reliability

A Pi 4 8 GB + NVMe SSD over USB 3.0 + GbE pulls about 6-8 W idle and 12-15 W under load. At US average electricity rates that is roughly $8-12/year. Compare to a small x86 mini-PC running the same workload: a Beelink / Mini Forum N100-class box pulls 8-15 W idle and 25-40 W under load. The Pi wins on power; the x86 wins on ML throughput.

For reliability, the things that kill 24/7 Pi servers in order of frequency:

  1. Cheap power adapter delivering 4.9 V instead of 5.1 V → undervoltage → corruption. Use the official Pi 4 PSU or a known-good third-party 5 V / 3 A USB-C PSU.
  2. SD card corruption from constant writes. Solved by running off SSD.
  3. Thermal throttling at 80 °C+. Solved by passive aluminum case or Argon ONE.
  4. USB enclosure UASP timeouts on cheap enclosures. Buy from known brands; avoid unbranded $10 enclosures.
  5. Network drop-outs on Wi-Fi. Use wired GbE for the server.

Address those five and a Pi 4 server happily runs for years.

Perf-per-watt: Pi vs always-on PC

MetricPi 4 8 GB + NVMe-over-USBx86 N100 mini-PC + NVMe
Idle power6-8 W8-15 W
Load power12-15 W25-40 W
ML inference speedARM CPU baseline3-5× faster
Upload throughput110 MB/s (GbE-bound)110 MB/s (GbE-bound)
Annual electricity cost$8-12$20-45
Total cost (hardware + 5 yr power)~$200 + $50 = $250~$300 + $150 = $450

The Pi wins for "back up a household's photos and browse them." The x86 wins for "process a 200,000-photo library with full ML in under a week."

Verdict matrix

The Pi 4 8 GB is right if:

  • Your library is < 50,000 photos.
  • You want low power draw and silent operation.
  • You are okay with slow initial ML processing.
  • You will use it for photo backup + browsing primarily.

Step up to a mini-PC if:

  • Your library is 100,000+ photos.
  • You need fast face / object recognition.
  • Multiple users hit the server concurrently.
  • You also want to run other containers (Plex, Jellyfin, *arr stack) alongside.

Common pitfalls

  1. Running off an SD card. The most common cause of "Immich kept corrupting and I gave up." Use an SSD. Always.
  2. Cheap USB enclosure. Pi's USB controller is fussy. Buy a UASP-mode enclosure from a known brand (Sabrent, Orico, StarTech).
  3. Underpowered PSU. A 5 V / 2.5 A phone charger is not enough for Pi + SSD. Use the official 5 V / 3 A.
  4. Skipping the off-device backup. A self-hosted server is not a backup strategy. Set up rclone to a B2 or S3 bucket weekly.
  5. Exposing the Pi to the internet without HTTPS. Use a Tailscale tunnel or a reverse proxy with Let's Encrypt. Do not port-forward 2283 raw.

Bottom line

A Pi 4 8 GB running Immich off a WD Blue SN550 NVMe and a Samsung 870 EVO SATA SSD backup is the cheapest, lowest-power Google Photos replacement that works in 2026. The initial ML scan is slow; everything else is fast. The Pi pulls less power than a smart speaker, runs silently, and costs about $200 in parts. For a household with 10,000-50,000 photos, this is the sweet-spot self-host.

For larger libraries or impatient users, step up to a small x86 mini-PC and accept the 25-40 W load draw in exchange for 3-5× faster ML inference. Either way, the era of mandatory cloud photo storage is over.

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

Tap any product for full specs, live Amazon & eBay pricing, and alternatives.

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

Frequently asked questions

Can a Raspberry Pi 4 8GB actually run Immich?
Yes — Immich runs on a Pi 4 8GB via Docker, and the 8GB model is the one to use because the machine-learning features and database benefit from the extra RAM. Performance is fine for a household library, though the ML jobs that detect faces and objects run slower than on x86 hardware. For backup and browsing it is a capable, low-power always-on server.
Do I need an SSD instead of an SD card?
Strongly yes — running the database and photo library from a microSD card is slow and risks card wear-out under constant writes. Boot and store data on an SSD instead, either an NVMe drive over USB like the WD Blue SN550 or a SATA SSD such as the Samsung 870 EVO. Fast, durable storage is the single biggest factor in a responsive, reliable Immich server.
How slow are Immich's AI features on a Pi 4?
Machine-learning tasks like face recognition and smart search are CPU-bound and noticeably slower on the Pi 4's ARM cores than on a desktop, so the initial library scan can take a long time for large collections. Once the backlog is processed, ongoing jobs for new uploads are manageable. If instant ML processing matters to you, a mini-PC is the better platform.
Is a Pi 4 reliable enough for 24/7 photo backup?
With a quality power supply, SSD storage instead of an SD card, and adequate cooling, a Pi 4 runs reliably as an always-on server for years. The common failure modes are undervoltage from a weak power adapter and SD-card corruption, both of which the SSD-and-good-PSU setup avoids. Keep an off-device backup of your photos regardless, since a single server is never a complete backup strategy.
When should I use a mini-PC instead of a Pi for Immich?
Step up to a mini-PC when your library is very large, when you want fast machine-learning processing, or when multiple users hit the server at once. The Pi 4 8GB is ideal for a single household with modest performance expectations and a priority on low power draw. If the ML scan times or upload throughput become frustrating, that is the signal to move to x86 hardware.

Sources

— SpecPicks Editorial · Last verified 2026-06-14

More guides & deep dives from the SpecPicks archive

Browse all articles & guides →

More reviews from the SpecPicks archive

Browse all reviews →