Main features
- End-to-end encryption of files and metadata
- Apps for iOS, Android, web, Windows, macOS and Linux
- Background upload from phones
- Face recognition and natural-language search on the device
- Private sharing, public links and collaborative albums
- Family plans on the hosted service
- Google Takeout import in the desktop app
- Android builds on Google Play and F-Droid
What Ente Photos does
Ente Photos is a photo and video backup service built so that the server never sees your pictures. The mobile apps for iOS and Android upload the camera roll in the background, and there are clients for the web, Windows, macOS and Linux. On top of backup it offers albums, private sharing, public links, collaborative albums where others can add photos, and family plans on the hosted service.
The whole project lives in one AGPL-licensed repository: the client apps, the Go server (called “museum”) and two other products that use the same server, Ente Auth and Ente Locker.
Security and encryption
Encryption happens on your device. When you sign up, the app creates a master key and encrypts it with a key derived from your password before anything is sent to the server. Each file and its metadata get their own random key; those keys are encrypted with a key for the album or folder, and those in turn with the master key. A recovery key is created at sign-up. Ente says its code and cryptography have been audited by Cure53, Symbolic Software and Fallible.
Because the server only stores encrypted data, it cannot run machine learning on your photos. Face recognition and “magic search” (natural-language search for objects, scenes and colors) run on your phone or computer instead, and you turn them on in the mobile or desktop app. The other side of the design: if you lose both your password and your recovery key, nobody can recover your photos.
Self-hosting Ente
Self-hosters run the same server code that Ente uses in production. A quickstart script sets up Docker Compose with the server, the web apps, PostgreSQL and an S3-compatible object store. The documented minimum is 1 GB of RAM and one CPU core, which is low because the heavy work happens on the clients. Ente recommends Linux (Ubuntu or Debian) and needs Docker Compose 2.30 or newer. The server can also run as a single binary without Docker.
The official mobile and desktop apps can be pointed at your own server. Some administration is manual: you whitelist admin accounts in museum.yaml (until then the first registered user is treated as admin), sign-up verification codes appear in the server logs unless you configure SMTP, and storage quotas are raised with the Ente CLI. Public album links are served by a separate web app.
Hosted version
Ente runs a paid hosted service with a free storage allowance (10 GB according to the README). The server README says encrypted data is replicated to three clouds. Since the code is the same, you can start on the hosted service and move to your own server later, or the other way round.
Limitations
Machine learning uses your devices’ battery and processing power and has to be enabled per device. There is no server-side indexing of existing folders: photos must be uploaded through a client, which takes time for a large archive. Self-hosting needs object storage and a few manual admin steps. Strong encryption also means support cannot reset your access.
Who it suits
Ente suits people who want the convenience of Google Photos or iCloud Photos with end-to-end encryption, whether on Ente’s servers or their own. It is the obvious choice when the server is shared with others or rented from a provider you do not fully trust. If you would rather have server-side search over a folder archive and do not need encryption, Immich or PhotoPrism fit better.
License details
AGPL-3.0. The monorepo also contains Ente Auth and Ente Locker. The hosted service is paid beyond a free storage allowance.
Technical details
Self-hosting needs
- PostgreSQL
- S3-compatible object storage
Built with
- Go
- Flutter
- TypeScript
- React
- Electron
GitHub topics
- 2fa
- android
- authy
- e2ee
- encryption
- end-to-end-encryption
- flutter
- golang
- google-photos
- google-photos-alternative
- ios
- opensource
- photos
- privacy
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.