After my father passed, I was tasked with pulling his digital life from old laptops and hard drives for the family to view and share. A digital packrat, I ended up wading through income taxes from 1988, course syllabi from when he taught at Belleville Area College or Southern Illinois University, and loads and loads of scanned percussion parts for musicals he'd play every summer at The Muny in Forest Park.
The most valuable thing on my dad's old iMac and MacBook Air wasn't the snapshot in time of a college professor by day / professional musician by night, but the photos and videos he took of both my and my sister's kids growing up from a perspective we didn't see.
I had attempted to pull all of his photos and video into a OneDrive account and share that login with my family, but that felt very cold and distant. What I was looking for was a service that I could use to house his photos in a Google Photos-like interface for sharing. And I wanted it to run on my Unraid server because I had a giant storage pool at my disposal.
I found what I was looking for in Immich.

Immich Installation
There are myriad ways to install Immich on Unraid. SpaceInvaderOne - someone who puts out spectacular how-to videos - has a nice tutorial with a configured Docker container that I tried. Unfortunately, it didn't work as easily out-of-the-box as I would have hoped. So I tried something different: I read the Immich / Unraid section of the documentation (gasp!) and followed the directions. It was much easier than I thought!
Here's what I did:
- Install the Compose.Manager plugin from the Community Applications store.
- On the Docker Tab of my Unraid admin section, I clicked on the "Add New Stack" button. In the pop-up, I named it "Immich" and clicked save.
- Click on the gear icon for Immich and select "Edit Stack".
- From there, I clicked "Compose File" and copy-pasted the Immich docker-compose.yml file into the text box and clicked save.
- I then selected "Env File" and copied the contents of the example.env file into the text box.
- PLEASE NOTE: You'll need to specify the upload directory where your photos and videos are stored. For me, I had created a photos share and allocated space at
/user/mnt/photos
. This was copied into the .env file at Line 4. - PLEASE NOTE: DB Data Location should be changed to use an Unraid share (preferably a cache pool, like
/mnt/user/appdata/postgresql/data
. You will need to create the postgresql folder, by runningmkdir /mnt/user/{share_location}/postgresql/data
. If left at default it will try to use Unraid's/boot/config/plugins/compose.manager/projects/[stack_name]/postgres
folder which it doesn't have permissions to, resulting in this container continuously restarting. - Other edits were pretty self explanatory (i.e., TZ set to
Americas/Chicago
).
- PLEASE NOTE: You'll need to specify the upload directory where your photos and videos are stored. For me, I had created a photos share and allocated space at
- Click the "Save Changes" button, then the "Compose Up" button and you're there.
- You can now access Immich in your web browser at the
ip:port
listing next to theimmich_server
Docker container, which should be running. You are now able to continue set-up!
Connecting Cloudflare Tunnel
I wanted Immich to be discoverable by domain, not by ip:port
, so I registered bolen.cc through Cloudflare's domain registrar and set out to map the domain to my Unraid box.
Again, this was easier than I thought it would be. Here's what I did:
- Install the Unraid Cloudflared Tunnel container from the Community Applications store.
- Log-in to your Cloudflare account and select "Zero Trust" from the left-hand navigation. Then, select "Networks" and "Tunnels".
- Click the blue "+ Create a Tunnel" button.
- Select "Cloudflared" - it is, after all, recommended.
- Name your tunnel. I used
Unraid 7.x
so I knew where it was pointing to. Click "Save tunnel". - On the Choose your environment screen, click the blue Docker button. You'll want to copy the really long Docker run command to a clipboard because the part you'll need to enter into the Cloudflared Tunnel container in Unraid is the bit after
--token
. It should be a really darn long alphanumeric string. Paste that in your Cloudflared Tunnel configuration and click save. You're done in Unraid for now. - Click the blue "Next" button in Cloudflare. This is where you can have some fun with your domain name. The Public Hostname is how your visitors will access your site securely. I picked
photos
as my subdomain and used the dropdown for my hostname/domain name. For service, I selectedHTTP
and then pasted myip:port
into the URL, and clicked the blue "Save tunnel" button. - Your Immich installation is now reachable via Cloudflare tunnel using the (optional) subdomain and domain name you selected.
Conclusion
Was it worth the headache of trial and error to get my dad's photos backed up? In the long run, absolutely. Will anyone but me actually visit the service I put together? Absolutely not.
But, I learned a lot, love the Immich application, and had a good time dorkin' around trying to get it to work.