Both Ente and Immich are tools to manage images and videos, and both come with a self-hosting option. And even though they do the same thing in general, there are some fundamental differences in their implementation.
In this article, I explicitly compare them for self-hosting purposes and thus ignoring the cloud version of Ente explicitly. If you don’t want to self-host, Ente would be your way to go anyways.
Principles
Immich stores the files in is unencrypted form, making them still usable if the software itself breaks. Ente, on the other hand, encrypts all files. While this is generally a good thing, it makes you dependent on their implementation. And if the software breaks, it’s not that easy to get to the files. While in my case I only self-host locally, there’s no special need for an encryption for me.
Aside of that, Immich just stores the files in a directory you want it to, while Ente requires an actual S3 storage, which requires more administrative work.
This is also not a fully review between all functions of both systems. I just write about things I noticed while using them. It’s more an impression on how they behave.
Installation
Installing Immich is pretty straight forward and doesn’t really left any questions open. This is not the case for Ente and you need to understand how the particular parts of the system work together to get the system working. This is especially true for my TrueNAS Community system in this case, since Immich can be installed via a pre-defined app, while Ente needs to be installed manually.
Import
Since I wanted to import all of my photos and videos, both systems had something to do, as there are over 16.000 files to import. Immich tells me when files are excluded, but doesn’t tell me why. I assume it was because of duplicates by importing them via both on iOS and macOS.
None of the apps did it very smoothly, though. While the upload to Ente was way more faster, it also draw so much power and used so much compute resources that the iPhone was nearly unusable during this time. On macOS, it also used around 60 % CPU usage while importing.
Also, the iOS app stopped multiple times and finally crashed, often after 50 – 150 files. But sometimes, it also successfully uploaded more than 1.000 files in one try.
While not requiring that much resources in the Immich app, the upload was way slower. And it too crashed more often than it should.
In the end, in Ente it took me around 4 hours to import all the data, while Immich took me more than 24 hours.
Mobile iOS app
In short: The Ente app is superior most of the time. Syncing files in the background is faster, viewing items stored on my NAS is way faster, especially noticeable in the same Wi-Fi, where Immich sometimes behaves like it had just a slow 3G connection.
One nice thing I noticed in the Ente app (and made me worried at first, because I didn’t expect it) is that it uses the images on the device itself to display, at least if it has no connection to the server. Thus, images in the Photos app are always displayed there, even without internet connection. Immich, on the other hand, does only store thumbnails locally and doesn’t access locally stored images if there is no connection.
I also like the UI more for Ente, but essentially they are similar. Scrolling is more snappy for the Ente app, while especially faster scrolling is stuttering in the Immich app.
However, this all comes with one major drawback: Nearly everything you do in the Ente app requires very much compute resources, which is noticeable especially when viewing videos. My iPhone 13 Pro gets very hot while watching, while there’s no such problem in Immich.
My best guess is that this is to the continuous encryption and decryption operations in Ente, since the server apps always run very cool and without many resources.
Server resources
Which brings us to the server resources. Ente can run even with very small amount of resources. According to the documentation, also some embedded devices are sufficient to run it. On the other hand, Immich requires 4 GiB of RAM (recommended 6 GiB) and 2 CPU cores (4 cores recommended).
In my system, the Ente apps need around 130 – 150 MiB RAM and nearly no CPU usage while viewing a video, the S3 storage 300 – 500 MiB RAM and 1 – 3 % CPU usage. Immich uses more than 900 MiB RAM with 5 – 12 % CPU usage while viewing a video.
Immich on the other hand needs around 950 MiB RAM and also 3 % CPU usage while viewing a video.
However, if you upload files, you can see the difference between on-device handling for Ente, which does produce nearly no notable usage on the server, while Immich ramps up to using around 25 % of my AMD Ryzen 5 PRO 2400GE CPU and peaks at 1,6 GiB RAM usage.
And even though all systems are in the same Wi-Fi, a 4K clip sometimes cannot be viewed without buffering on Immich. It just doesn’t load fast enough (this seems to be improved the last weeks through updates, though). However, the comparison is not really fair, since Ente doesn’t allow you to view the raw footage as originally stored. In my case, the original video was around 145 MiB in size, while the video viewed directly in Ente was only half its size. So, there’s definitely some kind of converting taking place in Ente.
Interestingly, Immich has a file storage usage of 127 GiB, while the S3 storage of Ente consumes only 107 GiB. And in its UI, Immich tells me it stores 236 GiB.
Machine learning
Both projects use machine learning, e.g. for face recognition or searching for natural language and it works fine for both. They also get both a plus for using the correct term machine learning instead of “AI”.
Also, in Ente, machine learning is an on-device process, while Immich does it on server-side. While both should be working fine, in general, I like it more to have it on server-side (since I also own the server) to keep resource usage low on the (often mobile) device.
Conclusion
Even though I don’t use it that often, the UI of Ente looks more polished to me. However, I am very ambivalent about the rest due to the different advantages and disadvantages.
However, Immich is easier to administrate and doesn’t consume that much resources on your (mobile) device.
In the end, both systems work for me in the way they should: store my photos and videos on my local NAS. And both have their drawbacks. I hope, especially through the current movement around data sovereignty, both projects attract more users and thus will fix these issues.
If you’re not that familiar with self-hosting and want to try it, keep Immich a shot. The same applies if you want to view your videos in its raw resolution all the time. If that’s not that important, if you explicitly want to use an encrypted storage or if self-hosting is not new to you, try out Ente.
In the end, I’m still unsure which system I want to use, as they’re currently running both simultaneously. If you decided, which one you’ll use, let me know. Maybe, it helps me to decide. 🙂