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?

Edit: Thanks everyone, I’m going with immich!

  • 11 hours

    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.

  • 21 hours

    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.

    • 23 hours

      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.

        • 14 hours

          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 to v2.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 to v2, 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.

  • 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

    • 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?

      • 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’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…

    • 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

  • Immich
    Downside: breaking changes are fairly common AFAIK

    Uh… that’s news to me. I’ve been hosting 2 user’s photos for 1.5 years with absolutely zero breaking changes. I just updating from v2 to v3 and nothing broke.

    I briefly checked out Ente, but personally I have zero trust for any project that requires users to sign a CLA to contribute like Ente: https://github.com/ente/ente/pull/11084#issuecomment-4762402896

    Immich doesn’t do those shenanigans: https://github.com/immich-app/immich/discussions/7023#discussioncomment-8433346

    CLAs are bad because the project can change the license whenever they feel like it. So Ente is effectively reserving the right to go full evil with their CLA.

    Whereas Immich can’t suddenly decide they want to move away from AGPLv3.

    https://drewdevault.com/blog/Dont-sign-a-CLA-2/

    • immich hasnt had any major breaking changes for a while in my experience using it for a few years, anything that does break is probably some third party integration or plugin that would have to wait for it’s own maintainer to fix, that’s pretty normal in the open source world.

      • Except for database versions in 2.7.5->3.0.0

        But one docker compose change and it migrated seamlessly.

  • 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.

        • 21 hours

          Yeah, it’s going the be a whole ordeal. I will have to block an afternoon for the migration. Definitely not a “never breaks anymore” scenario. Everything can be broken, there’s no perfectly stable software.

  • 1 day

    Photoprism users every time this topic comes up

    • photoprism is good. i ran it for a few years before running both immich and photoprism side by side, and eventually shut down photoprism and moved entirely over to immich. i’d never give anybody flak for using photoprism, but for people starting from scratch i’d strongly recommend immich.

    • 1 day

      I switched from photo prism after 12 months on it, to immich. Much prefer it and offers more and better features from my perspective.

      • 1 day

        Yeah I might switch over too because immich didn’t originally have some of the sort and detection features like Photoprism.

        Photoprism is pretty good but it doesn’t have some of the nicer UI features immich has.

        • Also, accounts. Long promised for community or lowest tier then integrated only in the expensive tier of photoprism IIRC, which made me switch because that only then works for individuals.

  • 1 day

    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.

    • 23 hours

      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.

      • 23 hours

        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?

        • 20 hours

          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.

        • 22 hours

          I think it was rsync indeed. Afaik rclone and rsync are different developers, despite the name

  • 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.

  • Echoing what others have said, Immich hasn’t had breaking changes in a while. That being said it’s one of the services I keep it on a pinned version and read release notes before updating.

    • Funny enough I had to rollback, since it doesn’t start in the latest version in my setup. I have to make a conscious effort to keep it one or two subversions behind. It is not the first time an upgrade breaks my install. It will probably be a whole thing when I decide to actually upgrade it again.

      • V3 is stable. It is the new version after V2. V1 was where the majoriry of the breaking changes happened.

        • 1 day

          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:

          1. MAJOR version when you make incompatible API changes
          2. MINOR version when you add functionality in a backward compatible manner
          3. PATCH version when you make backward compatible bug fixes

          https://semver.org/

          • 12 hours

            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.

  • Ente is a pain to setup, was never meant to be selfhostable correctly

  • 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-funded 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, do 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.

        At some point, some amount of responsibility for use of FOSS software must fall upon the users, or else the project is less about creating value by building up the commons for software, and more on the exploitation/abuse of the volunteers.

  • The big difference is that ente is encrypted.

    If you use FDE, Immich is also encrypted but only at rest.

      • That may not be the right terminology. I men it’s decrypted when booting and encrypted when it’s unplugged or shut off.

        • The disk is still encrypted even when turned on, it’s just transparently decrypted when read. I doubt Ente is any different - you store images encrypted on disk, decrypt them to be able to read them as an image, then send it re-encrypted over HTTPS.