Immich vs Ente
We earn commissions when you shop through the links below. Learn more
Versions/date: Immich v3.3.5 (GitHub release). Ente Photos apps photos-v1.3.66 (GitHub release); Ente's server has no numbered release, so the self-hosting notes follow the Ente help docs as of commit
b356bf8(2026-10-29). Last checked: 2026-10-29.
Both are open-source Google Photos alternatives with mobile apps, face recognition and natural-language search. The big difference is where the work and the keys live. Immich does its indexing on your server and keeps your photos as normal files you can see on disk. Ente encrypts everything on your devices before upload, so your photos and their metadata reach the server only in encrypted form, and its face and search features run in the apps instead. Our recommendation: pick Immich if you want a feature-rich library you can browse and back up as plain files, and pick Ente if end-to-end encryption matters most, or if you want the option of Ente's hosted service as well.
Side-by-side (from each project's docs)
| Immich | Ente | |
|---|---|---|
| Encryption | Original, unmodified photos and videos are stored as files in your upload folder (UPLOAD_LOCATION) on the host (backup and restore) | End-to-end encrypted: files and metadata are encrypted with keys that never leave your devices unencrypted (architecture) |
| Phone backup | Official mobile app with auto backup when opened, background backup and album selection (README) | Official mobile and desktop apps; you point them at your server from the onboarding screen (post-install) |
| Face recognition and smart search | Run by the server's machine-learning container | Run on your device in the mobile or desktop app; not available in the web app at photos.ente.com (machine learning) |
| Minimum server hardware | 6 GB RAM (8 GB recommended), 2 cores (4 recommended); 4 GB works with machine learning disabled (requirements) | 1 GB RAM and 1 CPU core with the quickstart script (requirements) |
| Storage backend | Local folder on the host | S3-compatible object storage; the quickstart ships MinIO (object storage) |
| Database | PostgreSQL | PostgreSQL |
| Hosted option | Self-hosted | Ente's own cloud, with a 10 GB free plan (ente.io) |
| Licence | AGPL-3.0 (repo) | AGPL-3.0 (repo) |
Both need Docker with the docker compose plugin; Ente asks for Compose 2.30 or newer.
Hardware: why Ente's server is so small
Ente's docs say the server is a lightweight Go binary because "most of the intensive computational tasks are done on the client". That's why it can run with 1 GB of RAM. The work moves to your phone and computer instead: to build face and search indexes, the apps download your originals, analyse them on the device, then encrypt the indexes and sync them to your other devices. Ente recommends turning machine learning on in the desktop app first for a large library, since desktops index faster than phones.
Immich does the reverse. Its server runs the machine learning, so it needs more RAM (6 GB minimum), and your phone only uploads. If you have a mini PC or NAS with spare memory, that's usually the simpler setup. See Immich hardware requirements and Immich machine learning setup.
Setting up and running it
Immich: one Docker Compose stack with a .env file; follow Immich with Docker Compose.
Ente: the official quickstart script creates a my-ente folder, starts the containers, and serves the Photos web app on port 3000 and public albums on port 3002. A few things the docs ask you to do afterwards:
- The first account you create becomes the admin. Without email (SMTP) set up, the sign-up verification code appears in the server logs (
docker compose logs). - Phones and other computers must be able to reach the object storage address. The quickstart's
localhost:3200only works on the server itself, so set the bucketendpointinmuseum.yamlto your server's LAN IP or a hostname, or uploads from your phone will fail. - Storage quotas for each user are changed with the Ente CLI.
- For remote access, Ente suggests a reverse proxy, or Tailscale if you don't want it on the public internet. Our Tailscale vs WireGuard vs Cloudflare Tunnel guide compares the options.
Backups are different
With Immich, you back up the database dump and the upload folder, and the photos in that folder are ordinary files. See Immich backup and restore.
With Ente, the docs say you need three things to get your photos back: the encrypted files (object storage), the database, which holds the per-file encryption keys, and your password. Back up the object storage and the database, plus museum.yaml and any other config. Ente's docs also recommend that people new to self-hosting keep a plain (unencrypted) export of their photos, which the Ente CLI or desktop app can automate. And if you rely on your instance backup, do a full test restore.
Moving from Google Photos
Both can take a Google Takeout export. For Immich, use Google Photos to Immich. Ente imports Takeout in its desktop app (Upload, then Google takeout) and reads the JSON metadata files that come with it. Ente recommends turning on machine learning before a large import, so photos are indexed as they upload and don't need to be downloaded again later.
Who each one suits
Our recommendations:
- You want the most complete self-hosted Google Photos replacement on a home server with 6 GB+ RAM: Immich.
- You want your photos unreadable to whoever runs the server (for example a VPS or a shared family box): Ente.
- Low-RAM hardware (a small VPS or an old laptop): Ente's documented minimum is far lower. Immich can run at 4 GB only with machine learning off.
- You want to keep a folder of plain photo files you can open without the app: Immich, or Ente plus a regular plain export.
- Already have a photo archive on a NAS: Immich can index it as a read-only external library.
Related: Immich vs PhotoPrism · Nextcloud vs Immich · Immich hardware requirements
Sources
- Immich README (features, licence): https://github.com/immich-app/immich (checked 2026-10-29)
- Immich docs, Requirements (docs source at tag v3.3.5): https://docs.immich.app/install/requirements (checked 2026-10-29)
- Immich docs, Backup and restore (originals in
UPLOAD_LOCATION): https://docs.immich.app/administration/backup-and-restore (checked 2026-10-29) - Immich v3.3.5 release: https://github.com/immich-app/immich/releases/tag/v3.3.5 (checked 2026-10-29)
- Ente architecture (end-to-end encryption): https://ente.io/architecture (checked 2026-10-29)
- Ente self-hosting, Requirements: https://ente.io/help/self-hosting/installation/requirements (checked 2026-10-29)
- Ente self-hosting, Quickstart script: https://ente.io/help/self-hosting/installation/quickstart (checked 2026-10-29)
- Ente self-hosting, Post-installation steps: https://ente.io/help/self-hosting/installation/post-install (checked 2026-10-29)
- Ente self-hosting, Object storage: https://ente.io/help/self-hosting/administration/object-storage (checked 2026-10-29)
- Ente self-hosting, User management (docs source): https://github.com/ente/ente/blob/main/docs/docs/self-hosting/administration/users.md (checked 2026-10-29)
- Ente self-hosting, Backup: https://ente.io/help/self-hosting/administration/backup (checked 2026-10-29)
- Ente Photos, Machine learning: https://ente.io/help/photos/features/search-and-discovery/machine-learning (checked 2026-10-29)
- Ente Photos, Import from Google Photos: https://ente.io/help/photos/migration/from-google-photos (checked 2026-10-29)
- Ente home page (10 GB free plan, features): https://ente.io/ (checked 2026-10-29)
- Ente repository (AGPL-3.0) and photos-v1.3.66 release: https://github.com/ente/ente (checked 2026-10-29)

