Chosing the right photo app for my family
So, Immich vs Ente, this is my last piece of the selfhosted puzzle. Please help me make an informed decision:
Immich
on the plus side, it seems to have more features and it has a gazillion integrations with other selfhosted software. Downside: breaking changes are fairly common AFAIK.
Ente
looks like the opposite, more mature, scoped and less integrated.
Am I reading this right? Am I missing something?
My experience with ente was that it is horribly slow. It also lacks any feature to upload a large number of photos at once. I just never bothered uploading my 10k pictures I have taken over the last 15 years because it would have had to transfer them to a phone and then have the app open for a few weeks. No rclone or any other reasonable way to upload from a computer other than browser (which just doesn’t work for more than a few images)
Ente is a pain to setup, was never meant to be selfhostable correctly
I’ve tried both and had favored Ente for months but I eventually drifted towards Immich. The most obvious reason is that Ente isn’t optimal for self hosting. And it’s rather proof of concept to show they are committed to openness. On the other hand, Immich is built for self hosters.
Ente has client side encryption. That why I initially committed in order to respect privacy of my users. So if you care about the users. Go for it.
Using immich for like 4 years and it never broke down. Migration steps are always super clear.
Ente i got for my parents as an alternative to iCloud photos and until I figure out some tunneling.
Downside: breaking changes are fairly common AFAIK.
Breaking changes only come with major version changes now.
I do still read the changelogs and compare compose files thoroughly on every major update. With that in place, Immich has not once broken down on me, and I’ve been here from almost the very start.
Oh, same here. As soon as I discovered Immich, I pored through all the info I could get my hands on and found that breaking changes happened often, so I made absolutely certain to read every changelog for things that may affect my setup. I sstopped updating it last year due to life getting in the way, and it was stuck on 1.138 (and shut off) until last week when I decided to pay attention to it again.
I’ve got a second deployment of immich that also got stuck somewhere on v1.x. May I ask how you upgraded to the most recent version? Did you just go for 3.0, or did you do “baby steps” in between? (e.g. 1.138 > 2.0 > 3.0)
Did you just go for 3.0, or did you do “baby steps” in between? (e.g. 1.138 > 2.0 > 3.0)
Pretty much that. Downloaded the latest
compose.yml, copied all the relevant bits from my existing compose file to the fresh one (volumes, database/db credentials, etc), set the version tov2.0.0, and let 'er rip. Made sure it was playing nice, then checked all the changelogs up to 2.7.x (whatever the newest release was last week), set the version tov2, and updated it again. That was the newest release. Fast forward to this week, all I did was set the version to ‘v3’ and the update took without a problem.
Admittedly I don’t know anything any Ente, but I’m extremely satisfied with Immich. Haven’t upgraded to v3 yet but will be soon
Downside: breaking changes are fairly common AFAIK.
By my extremely cursory reading, this stopped being a problem after the v2.0.0 release, when they adopted semantic versioning. According, breaking changes would only occur when the major version number is rolled. And version v3.0.0 was just released 5 days ago, whereas v2.0.0 was released in October 2025.
It may be down to taste, but I view 9 months as being acceptable, given the breadth of features offered and the folks willing to put effort into the project.
Yeah, not too bad, but not exactly great either. Do they backport fixes? Do they maintain something like an LTS release?
Is that something you’re looking for? As a practical matter, the effort to maintain multiple release branches and backports – compared to the norm of just maintaining a single main branch – is an outsized effort, available to only well-founded FOSS projects, usually by having an industry sponsor that makes it a priority.
I posit that the grand majority of selfhosted FOSS software, by project count, does not have back ported branches. And so production environments will want to set up an offline validation setup to evaluate update, prior to making the switch. Not convenient, sure, but not exactly insurmountable either.
Can’t comment on ente. I looked at it originally along with many others and initially chose photo prism. Ran that for around 6 months then switched to immich. Have no plans on changing any time soon. I host 4 users on it. It works great, been using it over 12 months so been on it from v1, and been through all the changes to V2 and V3 and never had a breaking change. Have auto updates in in podman for it so I never manually touch it. It just works.
There is also photoprism although its become less popular than immich over the last year or two. What are your requirements? That would help folks give you good recommendations.
I faintly remember they had some paywalled features or something like that. Is that true?
Some of the GUI functions for user management are paywalled. Its nothing I’ve found to be problematic in my use case.
I’ve been pretty happy with ente after moving from immich a year or two ago when the breaking changes were basically every time I opened the app on my phone.
I just moved from v2 immich to v3.
Literally changed the version in my env file and then deleted all docker images.
I then pulled all images and brought all containers online.
0 issues.
Immich has been running really well for us on my n100 for 10 months now. I did dual Google photos and immich for a 3 months and then exported out from gphotos.
I started 2026 with immich only. Been rock solid the entire time.
Of course that’s all anecdotal and ymmv. But immich is fantastic
Pretty much the exact same experience here. I just removed my wife’s photo storage from Google completely as of this month 🎉. Don’t even need the security blanket anymore. Immich is it.
I had a mini panic when moving from v2 to v3 was not automatic today, but it was a 15 minute fix, that was mostly just reading the step-by-step instructions for the update. Copy-pasted a handful of lines and we’re off!
Haha I had a much harder time with the compose formatting than I did with the actual upgrade.
Line
Or
Line.?
Either way fuck you compose. Haha
Yea I changed over to v3 without issue recently too, I read the release notes and some of the issue conversations on github, so I knew what to expect.
That’s something a lot of people dont do, if you are self hosting an open source project it’s on you to stay on top of those things, stay updated as much as possible but dont do major jumps blindly without backups.
In my case, I went from a regular immich in a container to one with openVino built in for gpu accelerated image analysis and face detection, and I had to change my database container image. Then it fired straight up and everything seems to work 100% so far.
You know… it’s hilarious you say that about staying on top of your selfhosted stuff.
I learned that lesson not too long ago… I am self-hosting ubiquitys unifi network application.
Apparently two years ago they split out the database from the app.
I had no idea until my wifi abruptly stopped working. Haha
Now I pay attention to that stuff a little more.
Lmao
yea, very easy to fall back into the bad habit of blindly updating without giving the release notes a skim.
I’m running Immich as a TrueNAS app. Unfortunately after upgrading to v3 the immich container is stuck on starting, without outputting any logs. Haven’t had the time to debug yet though.
You might need to changw the PostgreSQL Version if you are still on an oder one. Roll back to 2.x, make sure it runs, edit the App to use the new PG, Start, Update to 3.0
Well the whole system just went down. So most likely not am Immich issue, but a weak ass server issue.
Good to know. it’s very tempting. It has every feature we need, and it integrates to every other relevant app I selfhost.
Do you keep a backup? How do you do it?
I’m super basic backup wise.
I run a rsync command that backs up the database dump and all the immich assets to a USB hdd. I do that every couple of days or when I think about it haha
I then back that USB drive up to another USB drive on my personal computer.
These drives are wd Reds and in USB enclosure.
My buddy has offered to host a off site backup but I have a toddler and as such 0 time.
I probably should look into some cold storage or something but shits expensive these days and I’m currently satisfied with where I am.
Knocks on wood
Additional context… I’m running Debian with mergerfs across like 8 drives. So my photos are spread across several drives in my /storage/photos folder. So In oder to lose everything all at once. It would have to be a flood or house fire or something…
Immich is great. I run a small friends and family instance on a NAS and I’ve never had a hiccup that took more than ten minutes to fix. My backup system is borg to a Hetzner storage box nightly with a healthchecks.io check set to email me if it goes more than 48 hours without a success. Cheap, reliable, and fast enough for me.
I use Ente, but it’s purely because I want my images backed up in the cloud, but I don’t want the server provider to be able to mess around with them. Hence the e2ee being important to me.
I love Ente, I think it’s a great project, but for self-hosting, immich seems like the best choice to me.
Just a FYI, when using a tool like rclone to backup data to some cloud, it can also encrypt the files for you when pushing data, and decrypt when pulling data. Of course, the files will still be unencrypted at rest.
That’s very neat! It doesn’t really work for my Ente use-case, but definitely good to know!
It wasn’t rsync that started breaking because of some Claude changes, right?
Kind of. Claude helped the developer find lots of bugs. He decided to start making major changes to fix these bugs. Major changes often break things.
I think it was rsync indeed. Afaik rclone and rsync are different developers, despite the name
Immich is just fantastic. Probably one of the best software in the self-hosting world. I had no problems with breaking changes in the last ~1,5 years I’m using it.
Right now, the latest update doesn’t run in my otherwise until now perfectly working environment. It’s frustrating because there’s no easy way to downgrade it in my setup.
Don’t forget to change the database. There were breaking changes there as they moved to a different version in 3.0 which causes error loops.
All of my stuff luckily moved seamlessly without having to restore a backup.
Downside: breaking changes are fairly common AFAIK.
This is no longer the case after the version 2.0 release. Version 2.0 is the stable release: https://github.com/immich-app/immich/discussions/22546
https://github.com/immich-app/immich/releases/tag/v3.0.0
is V3 not stable? Are they back porting security fixes to V2?
V3 is stable. It is the new version after V2. V1 was where the majoriry of the breaking changes happened.
No, v3 is a release with breaking changes:
This release includes several breaking changes; read the full migration guide here. It’s worth mentioning that many of the breaking changes are updates to API endpoints and only affect third-party tools that integrate with Immich’s API. For the vast majority of users, updating works exactly as it always has.
https://immich.app/blog/v3.0.0-release
That’s why the major version was increased, it implies breaking changes in semantic versioning, which Immich is doing since v2 apparently:
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality in a backward compatible manner
- PATCH version when you make backward compatible bug fixes
Yes, between major releases there can be breaking changes. But within there wont be, which is what I was referring to. In “V1” we didn’t have such a guarantee.
Running immich since 2 years, never had a single breaking issue or instability of any kind.
There is really no reason not to choose immich unless you prefer something that’s only in ente.








