
One of the best pieces of self-hosted software ever to exist.
Edit: This is Immich! for the folks who don’t know.
What is it and what does it do?
From the logo, it looks like immich
Immich! Photo management: https://immich.app/
Immich
Google photo self hosted alternative
deleted by creator
Immich: Image Backup* solution — like Google Photos or Ente Photos but self-hosted.
*Backup in the sense of uploading your photos to a server you own. You should backup the database as well as your library with 3-2-1 method.
Ente is also open source and can be self-hosted.
If it works then great. I find it pretty lacking compared to Immich.
I guess they fill different niches. I use Ente for the e2ee, that’s pretty important to me. Immich definitely seems more like a drop in Google Photos alternative, I just use software on my computer to do that instead.
E2EE is definitely important for uploads on someone else’s server. On my server? Ehhh, not so much. The entire drive is already encrypted. Another layer of encryption would just slow it down. Just my opinion.
I would think e2ee would be important if youre uploading files when away from your local network. If that isn’t enabled, then it’s far less important. At that point, it would only matter if there was a compromised client harvesting your wifi packets.
If this is happening via a VPN you almost definitely already have transit encryption
e2ee would be important if youre uploading files when away from your local network
Even without e2ee or a VPN, just plain old HTTPS should be enough to secure that part, or am I missing something?
Their auth is better than the tool itself (last time I evaluated options which was maybe a year ago)
Oh they update a lot. The clients have gotten really snappy, which is nice because browsing photos felt a bit cumbersome before. There’s now automatic albums and facial recognition, if you opt in to that. Was going to say that there’s no editing tool but there is. It’s quite basic though, three tabs, crop, transform (rotate, flip, resize), and colours (brightness, contrast, saturation, and blur for some reason lmao).
There’s also a bunch of sharing features. You could share images or albums directly, or even create embeds for if you have a portfolio website. I pretty much only use it as a backup service though.
What 2 different media types are you using for the “2” part?
Spinning and flash.


The world needs those two gifs combined so we can more easily (and awesomely!) answer this question in the future.
FLASH! AAAAAAAA
Why does it need to be two types? Can’t I have 2 spinning?
You put them in a safe. Safe falls down, spinning is gone.
You put them in a safe and forget about them for some time. Flash is gone, spinning still has data.
Good point!
You can do two spinning but then you should at least use drives from different manufacturers to reduce the risk of them failing at (roughly) the same time.
-
Short: It is a second Hardrive using borg that backs up the primary Hardrive.
-
Long: My Backup strategy:-
Databases and other imp files:
For databases the backup happens every night that gets saved on the server itself. Then when my laptop connects either to the home network or to the Internet, the backup zip files on my server syncs to my laptop via syncthing. Then my laptop’s data is backed up to OneDrive (encrypted) — this includes the immich database backups. I usually keep 7 days worth of backup files just incase some get corrupted and I can just go back to the previous day.
Library
Since my Immich Library is big, daily borg backups are not possible for 200 gigs. So I have scheduled them every Sunday morning when I rarely use the server. The hardrive is exclusively used only for Immich. That hardrive is then backed up to another hardrive using borg and also to my OneDrive using rclone. (All encrypted). So 3 copies of the data, 2 on 2 different hardives (1 is primary) and 1 offsite.
I do nightly borg backups of much more than 200gb. The idea of incremental backups is you’re only doing the changes, and photos don’t tend to change.
What challenge did you come across with a 200GB backup?
I wasn’t bothered by it until you said nightly lol. So basically it takes a heck lot of time for the backup to finish - like almost 6 hrs even with 200MB of changes or even there are no changes. It could be because of integrity check or pruning old ones. I don’t know the exact issue honestly. It could also be because of slow hardrives. It could be my repo size as well.
I used my local LLM to make the script and tested it with a test container to see if it was working which it was so I just went ahead with it. If you can help here are the last backup logs and my backup script.
[START] Sunday 26 October 2025 06:00:01 AM IST: Starting Borg backup... Creating archive at "[REDACTED_REPO_PATH]::immich-2025-10-26_06-00-01" ------------------------------------------------------------------------------ Repository: [REDACTED_REPO_PATH] Archive name: immich-2025-10-26_06-00-01 Archive fingerprint: [REDACTED_FINGERPRINT_1] Time (start): Sun, 2025-10-26 06:00:03 Time (end): Sun, 2025-10-26 11:40:22 Duration: 5 hours 40 minutes 19.06 seconds Number of files: 34775 Utilization of max. archive size: 0% ------------------------------------------------------------------------------ Original size Compressed size Deduplicated size This archive: 207.73 GB 205.39 GB 210.94 MB All archives: 2.60 TB 2.57 TB 206.75 GB Unique chunks Total chunks Chunk index: 113167 1402143 ------------------------------------------------------------------------------ [PRUNE] Sunday 26 October 2025 11:40:23 AM IST: Pruning old backups... Keeping archive (rule: daily #1): immich-2025-10-26_06-00-01 Sun, 2025-10-26 06:00:03 [REDACTED_FINGERPRINT_1] Keeping archive (rule: daily #2): immich-2025-10-19_06-00-02 Sun, 2025-10-19 06:00:03 [REDACTED_FINGERPRINT_2] Keeping archive (rule: daily #3): immich-2025-10-12_06-00-01 Sun, 2025-10-12 06:00:02 [REDACTED_FINGERPRINT_3] Keeping archive (rule: daily #4): immich-2025-10-05_06-00-02 Sun, 2025-10-05 06:00:03 [REDACTED_FINGERPRINT_4] Keeping archive (rule: daily #5): immich-2025-09-28_06-00-02 Sun, 2025-09-28 06:00:03 [REDACTED_FINGERPRINT_5] Keeping archive (rule: daily #6): immich-2025-09-21_06-00-01 Sun, 2025-09-21 06:00:03 [REDACTED_FINGERPRINT_6] Keeping archive (rule: daily #7): immich-2025-09-14_06-00-02 Sun, 2025-09-14 06:00:04 [REDACTED_FINGERPRINT_7] Keeping archive (rule: weekly #1): immich-2025-09-07_06-00-02 Sun, 2025-09-07 06:00:03 [REDACTED_FINGERPRINT_8] Keeping archive (rule: weekly #2): immich-2025-08-31_06-00-02 Sun, 2025-08-31 06:00:03 [REDACTED_FINGERPRINT_9] Keeping archive (rule: weekly #3): immich-2025-08-17_06-00-01 Sun, 2025-08-17 06:00:03 [REDACTED_FINGERPRINT_10] Keeping archive (rule: weekly #4): immich-2025-08-10_06-00-01 Sun, 2025-08-10 06:00:02 [REDACTED_FINGERPRINT_11] Pruning archive (1/1): immich-2025-08-03_06-00-01 Sun, 2025-08-03 06:00:03 [REDACTED_FINGERPRINT_12] Keeping archive (rule: monthly #1): immich-2025-07-28_10-54-59 Mon, 2025-07-28 10:54:59 [REDACTED_FINGERPRINT_13] [CHECK] Sunday 26 October 2025 11:40:25 AM IST: Verifying backup integrity... Failed to securely erase old repository config file (hardlinks not supported). Old repokey data, if any, might persist on physical storage. Failed to securely erase old repository config file (hardlinks not supported). Old repokey data, if any, might persist on physical storage. [DONE] Sunday 26 October 2025 12:09:38 PM IST: Backup completed.#!/bin/bash export BORG_REPO="/home/user/immich_backup/borg" export BORG_PASSPHRASE="[REDACTED_BORG_PASSPHRASE]" SOURCE="/home/user/containers/immich/library" LOG="/home/user/borg-backup.log" ARCHIVE="immich-$(date +%Y-%m-%d_%H-%M-%S)" echo "[START] $(date): Starting Borg backup..." >> "$LOG" # Skip if source is empty or unmounted if [ -z "$(ls -A "$SOURCE")" ]; then echo "[SKIP] $(date): Source directory is empty or unmounted. Skipping." >> "$LOG" exit 1 fi borg create --verbose --stats \ "$BORG_REPO"::"$ARCHIVE" \ "$SOURCE" >> "$LOG" 2>&1 echo "[PRUNE] $(date): Pruning old backups..." >> "$LOG" borg prune -v --list "$BORG_REPO" \ --keep-daily=7 --keep-weekly=4 --keep-monthly=6 >> "$LOG" 2>&1 # Optional: Run a full repo integrity check echo "[CHECK] $(date): Verifying backup integrity..." >> "$LOG" borg check "$BORG_REPO" >> "$LOG" 2>&1 echo "[DONE] $(date): Backup completed." >> "$LOG"
-
I second this?
Seriously everyone pushes Immich so hard I’m a little suspicious of it now :D
Shhhh! No one can no we are all being played by the immich overlords.
The fediverse is small and the Immich dev is one of our own, not surprising that it’s super popular
Yeah :) Maybe give lychee a try :) it’s minimalist and does one thing, but it does it well !!!
83k Github stars in under 4 years is definitely indicative of an excellent project
Github stars are indicative of nothing
Thousands of them are indicative
You can just buy them, same way you can buy likes on any other platform. Don’t use them as any kind of metric.
You can but if you buy 80k people are gonna investigate and will easily find out you did. Stars are public. I have a folder on my computer with a dataset of 90% of all stars on github
Correct: it’s like trying to equate “correct” with “popular”, and keeping in mind how the last US elections have turned out.
But it’s good to be in a big network of other users with the same product, nonetheless.
They are indicative of something. That something is just not always “this project is good”.
It’s just that good
It’s crazy good for something FREE. Like infinitely better than any major crop google apple etc because you KEEP your photos. Anything you upload to the cloud is being mined by them.
The only thing I tell people is that you need a cloud backup.
I have an automated nightly worker that zips all my photos encrypts them with a 32 character password and then uploads it to a bulk storage facility.
I do something similar using restic to encrypt, deduplicate, and backup my photos to backblaze every now and then. Out of curiosity, any particular reason you choose zip over something like restic?
I use restic too, just said zip since more people might understand it easier
Ah, got you!
Yeah. I just put the media location on my nas, and that is being mirrored to hetzner.
and then uploads it to a bulk storage facility.
Any suggestions and estimate pricing?
I use backblaze, $6/TB/mo. i set it up with restic backups to get my storage usage so low, that I’ve used it for 4 months and haven’t paid yet.
I use backblaze it’s like $3 a month or something
Wasabi is a very affordable destination for backups. And it has the advantage of not being one of the big three.
I found it a couple of months ago without hearing about it before. I was in an ideal place for a Google Photos replacement.
There’s a couple of rough edges but it is, indeed, best-of-class.
As a newbie in selfhosting, Immich is what I use almost every day. And it is so good. A literal Google Photos but it’s my own. Snappy web app and android app. Has epic face recognition, contextual search and now even text recognition. All that on an efficient and not so powerful N100 cpu. I can totally see why community loves it.
I’m still disappointed that tags are absent from the mobile app.
One thing I don’t get, if someone could explain it to me, is what’s the point of immich over e.g. Nextcloud? Immich is just for photo and video, right? Why not just have a cloud file drive instead? To me, I feel like it’s a waste to have both, since I use Nextcloud to both sync my PC and as a secondary backup, in which case I’d have two copies of my photos on my home server if I wanted to use Immich as well. Am I missing something or is it for people with different workflows?
Because it has a lot of photo specific features:
- face recognition: enables you to (mostly) automatic tagging of who’s in the photo
- map of images, e.g. look at all the images you have taken in Italy
- (local) AI to search images by keywords, e.g. “sunset at the beach”
- memories: what happened on this day in the previous years
These are just the ones on top of my head, but you’ll probably get the idea. If you just want to back up you photos then nextcloud is more than enough, but you’d probably enjoy the immich features once you used them.
Regarding the two copies: you can use immich on an external library, so you don’t have to have to copies.
It’s like asking why should I use paperless when I can just keep my documents as PDFs in my nextcloud.
The AI search is just crazy, especially when you adjust the model quality.
The issue for me is that Nextcloud has these features as well with App add-ons. I have yet to try Immich because what’s more important for me is the actual backup\upload of my photos than actually browsing them. Maybe someday, but my self hosting initiatives typically involve me chasing a shiny red ball of a deployment, and Immich just isn’t shiny enough for me yet.
Sure, if you just want upload / backup it’s not worth it. If your currently happy with nextcloud then there is no reason to try immich.
But I highly recommend to sometimes view old photos to keep the memories alive.
I haven’t looked into the nextlcoud add-ons, but didn’t have a great experience with the ones I tried so far. In general I’m not really happy with nextlcoud even for file sync / share, but I haven’t found any replacement, every thing else is much worse.
Nextcloud is like Google drive, immich is like Google photos.
You’d typically prefer to look at your photo albums in Google photos instead of Google drive.
im like maybe one of few people who barely take photos. its great because i dont need to worry about the costs of cloud storage
I mostly set it up for a few major albums like my wedding album. Other than that it’s like 90% dog pictures lmao
If it weren’t Docker-dependant, I’d imagine this would be a good FreedomBox app.
Sounds more like a Freedombox problem for not supporting one of the best ways to run sevrer software ¯\_(ツ)_/¯
Thanks for the reminder, done as well :)
Buying my copy soon!
I really want to use (and support) this, but my case would be the server running on a windows pc with great hardware for all the ML/AI stuff and SSD database storage, but all my media on a NAS. (I’m a flight sim addict, Linux isn’t an option or I’d do it in a heartbeat) Last time I tried, I got the server running in docker pretty easily, but could not for the life of me get my media connected. Any chance that process has improved?
I’m running it on in docker and I’ve connected it to my NAS mounted as a network drive. I set it up a few months ago, do it’s better since then.
Don’t even worry about the hardware, I’ve got move set up on a raspberry Pi 5. It’ll take a while to do all the classification on your existing library, but new photos get classified fast enough. You’re unlikely to need to do a smart search immediately after you’ve taken the pic.
For clarity, I’m not on Windows (obv, raspberry Pi), and I’m not using docker directly; I’m running HAOS on my pi, and I’m using the immich add-on. I know it uses docker, but I can’t tell you the exact command to run.
That’s amazing. I have a Pi 4 currently running home assistant and pihole. Sounds like my pi family might be growing soon. Had no idea the 5 could run those features. Appreciate you
FWIW you’re probably looking for https://docs.immich.app/guides/remote-machine-learning namely removing the demanding tasks from the NAS.
I know it’s not really adding anything to the conversation but I can’t not say thank you that’s dope.
Gratitude always adds to anything! Take care
Ooh, that’s really cool
Same bro, just became a supporter myself. Worth every dollar!
I’ll include mine to show that it’s not unusual to support them! it’s my favorite and most used self hosted project

Immich sounds great.
Does it have E2EE? I rent a VPS and would prefer personal files that I have on it to be protected.
It is fundamentally built around the files being decrypted in RAM, for all the search features. You can use an encrypted partition for storing the photos and DB, to avoid having plaintext files on disk.
Hmm. While I applaud Immich for existing at all, it kind of feels developed with not me as a user in mind. I have Terabytes of pictures I have taken over the couple of decades of my adult life. They are all neatly organized in folders on my NAS. There is no easy way to just tell Immich “oy, that folder structure? Turn it into albums” I am never going to manually put my 400k+ images into albums. And the folder view in the Android app is behind too many clicks to make it any fun using it.
I guess I have to wrangle with the CLI or something to turn my folders into albums.
But… why??? People use existing file structures. Make it easy for those to integrate into your app.
Nothing of the sort on the roadmap either. Unless integrating folder structures into Immich albums gets more user friendly, I am reluctant to support the devs.
I’ll probably do it anyway because as I said, I’m glad the project exists.
Thanks.
Sounds exactly like what I need. I’ll give it a try. Thanks a lot!
Yeah, ideally something like Immich is just some metadata pointing at existing files. An album should be some combination of synced directories (i.e. new files added outside Immich should be detected and added, if selected) and individual files.
That doesn’t sound that complex. Maybe I’ll look into Immich and see about adding that. I don’t currently use it, but I don’t have an image solution, so I’ll give it a shot.
Did you see the external libraries options?
deleted by creator
You can setup external libraries with it. So you, say, upload your photos and videos to your SMB Share, point that SMB Share as external Library in Immich and you will get the benefits of Immich while you can browse your Share normally as you would. I mean yes this is a workaround but it works.
Is it better than NC?
If you use Nextcloud, install the App Memories and you will have the same functions as Immich plus all the upload functions of Nextcloud.
But if you are not interested in all the Nextcloud functionalities (including contact and calendar sync, musicserver, filesharing, etc) and just want picture management, Immich is the better choice.
That’s exactly what I have, and that’s exactly what I wanted … DARN … oh well. I guess it’s nice to have the document sync as well




















