The short answer is yes. I just did it and it was fairly straightforward. Here’s my setup and what I learned along the way.
What is Immich?
Immich is a self-hosted photo and video management solution. It’s simple to set up and lets you sync and share media across all your devices, including Windows, Ubuntu, Android, and iOS.
Why Immich?
Since I use a variety of devices, transferring files between them is always a bit of a challenge. I also prefer to avoid commercial cloud hosting services whenever possible. This was my first time experimenting with a self-hosted solution like Immich, and it’s been a rewarding experience so far.
My Setup
I’m using a Raspberry Pi 4 Model B with 8 GB of RAM and an external hard drive connected via USB. If you’re unsure how much RAM your Pi has, you can check with this command:
free -h
The Challenges I Faced
Initially, I was running Raspberry Pi OS Bullseye (Legacy, 64-bit) but couldn’t get the Immich Docker image to run. I repeatedly encountered this error:
no matching manifest for linux/arm/v8 in the manifest list entries
After some troubleshooting, I decided to upgrade to Raspberry Pi OS Bookworm (64-bit). While I’m still unclear why Bullseye didn’t work (it should have, since it’s a 64-bit OS) Bookworm solved the issue.
Once I updated the OS, I installed Docker and was able to get Immich running with a single command:
sudo docker compose up -d
Here is a quick start guide I followed.
Configuring External Storage
To use my external hard drive for storage, I updated the .env
file located in the ~/immich-app
directory:
# The location where your uploaded files are stored
UPLOAD_LOCATION=/media/me/my_external_hd/immich
How Does It Run?
Like GTA Vice City on a Pentium II 😁 (it’s usable but a bit laggy). Given the hardware, this isn’t surprising. My external hard drive isn’t the fastest, so it’s hard to say whether the bottleneck is the Pi, the drive, or a combination of both.