mrkeyoor.com_
Tue 01 Sept 17:42 UTC
Self-Hostedevaluationupdated 27 Aug 2026

ente review

Ente is an open-source, end-to-end encrypted cloud for photos, authenticator secrets, documents, credentials, and notes. Its apps let people back up and share private data without giving the service operator the encryption keys, while the same server can be self-hosted.

+84 / 5dstars / 7d
Verdict

Our Ente install pulled 1,114 Rust packages, but its build failed after 423 seconds and its test command failed after 45 seconds at the same native CMake step. Use Ente when end-to-end encrypted photo backup across polished clients matters enough to accept either a paid service or a serious self-hosting job. The hosted product is easier to recommend than building this measured Rust workspace from a plain container; self-hosters should prove backup and restore before moving the only copy of a library.

We ran it

Lab card: what happened when we ran enteScreenshot of ente (ente.com)
Install✓ · 48s1114 packages
Build✗ · 423s
Tests✗ · 45sran, no count parsed
Repo10522 files~419,095 lines of source · 142.2 MB · 37 CI workflows

Answers from our run

Does ente build from source?

Dependencies installed in 48 seconds (1114 packages), and the build failed. We cloned commit 8f432da into a clean Debian container with 3 CPUs and no project-specific setup.

Do ente's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use ente?

Self-hosters who expect maintainer help for routine deployment problems: the server README says support queries cannot currently be prioritized and asks users to use Discussions.

What are the alternatives to ente?

Immich, PhotoPrism, Nextcloud. Our Ente install pulled 1,114 Rust packages, but its build failed after 423 seconds and its test command failed after 45 seconds at the same native CMake step.

Setup2/5Quickstart exists; our Rust build and test commands failed
Docs4/5Clear quickstart, storage warnings, client paths, and limits
Community5/528,517 stars with pushes and issue activity on August 27
Maturity4/5Three audited apps ship, but self-hosting still needs operator care

Who it’s for

People who want encrypted photo backup with mobile, web, and desktop clients.
Families that need private albums and a hosted option with 10 GB free before paying.
Self-hosters prepared to operate a database, object storage, backups, and client configuration.
Developers who want one open codebase for Photos, Auth, Locker, clients, and the shared server.

Who it’s NOT for

Self-hosters who expect maintainer help for routine deployment problems: the server README says support queries cannot currently be prioritized and asks users to use Discussions.
Operators who want the quickstart to be their permanent production design: its guide recommends external S3-compatible storage and a database for serious use, plus a plaintext photo backup until recovery is proven.
Contributors planning a large unsolicited product change: the contribution guide says those pull requests will not be merged and asks for a discussion first.
Developers who need the measured Rust workspace to build in a plain container: our build and test commands both exited 101 at the llama-cpp-sys-2 CMake step.
Teams seeking a narrow photo-server codebase: this 10,522-file monorepo also carries Auth, Locker, clients, a shared server, and other work.

Setup reality

Our sandbox installed 1,114 Rust packages in 48 seconds. The build failed with exit 101 after 423 seconds, and tests failed with exit 101 after 45 seconds. Both logs reported missing rustfmt; that warning was non-fatal. They then showed gmake finding no Makefile while building llama-cpp-sys-2, followed by a build-script panic.

The supported self-hosting quickstart needs a recent Docker version and creates Museum, a web app, Postgres, and MinIO. It generates credentials in museum.yaml; that file must be protected. Remote use also requires endpoint, object-storage, email or verification-code, TLS, and backup decisions.

The measured project was ./rust/, not the whole product deployment. The 142.2 MB checkout held 10,522 files and about 419,095 source lines, with 37 CI workflows but no Dockerfile or tests directory in the measured project. Production guidance recommends external S3-compatible storage and a database instead of treating the sample Compose stack as final.

Three encrypted apps share one service and account

Ente's monorepo contains 3 user-facing products: Photos, Auth, and Locker. Photos backs up images and videos, supports private sharing and collaborative albums, and runs across mobile, web, and desktop clients. Auth stores two-factor authentication codes, while Locker holds documents, credentials, and notes with emergency access. The shared Museum server handles these different encrypted data types behind one account. This is a broader proposition than installing a gallery beside an existing photo folder.

End-to-end encryption is the reason to consider Ente over a conventional self-hosted library. The service provider stores data without receiving the keys needed to read it. The README also names 3 external security reviews by Cure53, Symbolic Software, and Fallible. That is useful evidence for a product entrusted with family photos and authentication secrets, although an audit does not remove the need to secure clients, credentials, backups, and the host running a private instance.

What happened when we ran it

Our sandbox cloned commit 8f432da with 3 CPUs and 12 GB of RAM, then worked inside ./rust/. Installation succeeded in 48 seconds and pulled 1,114 packages. The checkout contained 10,522 files, about 419,095 lines of source, and occupied 142.2 MB. Our scan found 37 CI workflow files, while the measured Rust project had no Dockerfile or tests directory. These figures describe repository work, not photo upload speed or server capacity.

The build exited 101 after 423 seconds. Its log first said rustfmt was absent for Rust toolchain 1.98.0 and explicitly treated that formatting failure as non-fatal. The later native build command entered the llama-cpp-sys-2 CMake output directory, where gmake could not find a Makefile. The crate's build script then panicked and Cargo waited for other jobs to finish. The log does not establish why the Makefile was absent, so we will not assign a cause.

Tests also exited 101, this time after 45 seconds. The tail repeated the missing rustfmt message and the same llama-cpp-sys-2 CMake failure. No test summary appeared in the supplied output, which means this run did not demonstrate any passing test count. A developer evaluating the Rust CLI or native bindings should reproduce that native dependency step before assuming the four README commands, fmt, clippy, build, and test, work in a fresh Debian container.

One quickstart creates five services and exposes four ports

The self-hosting quickstart creates 5 services: Museum, the web container, Postgres, MinIO, and the public-albums web route within that web service. Its table exposes 4 ports for the API, Photos web app, public albums, and object storage. A shell script writes a my-ente directory, generates fresh credentials, downloads prebuilt images, and starts Compose. This route avoids compiling the 419,095-line checkout we measured.

A running Compose stack is the beginning of deployment. museum.yaml holds the instance credentials, and the guide warns that losing it prevents Ente from accessing data already in the volumes. Verification codes appear in logs by default. For remote clients, an operator must configure a reachable endpoint, TLS, object storage, and any email path. Ente recommends external S3-compatible storage and a database for serious use rather than relying indefinitely on bundled MinIO and Postgres.

Three deployment routes still leave recovery with the operator

Museum documents 3 server routes: prebuilt Docker images, a source-built container, or a directly run Go binary. The local Compose path combines Museum with Postgres and MinIO. Running without Docker requires a database and S3-compatible storage, followed by a museum.yaml configuration. The server documentation is candid that everything needed is present but may be insufficiently documented or flexible, and maintainers cannot prioritize routine self-hosting support questions.

The quickstart's strongest warning concerns data safety. Operators should keep a plaintext copy of their photos until they understand the system and have a tested backup strategy. Docker volumes survive ordinary container restarts and folder deletion, which can confuse a rebuild, while docker compose down --volumes permanently removes stored data. Encrypted storage changes who can read the archive; it does not perform database backups, object-storage replication, credential custody, or restore drills for the person running it.

A 10,522-file monorepo raises the contribution cost

The 10,522 files cover mobile clients, Apple platforms, Android, web, desktop, CLI, Rust libraries, infrastructure, documentation, and the Go server. That layout lets Ente reuse its encrypted data model across products, but a contributor must identify the right subtree and its toolchain before running anything. The Rust README alone points to native, Flutter, and Node.js binding generation, plus integration tests that need a local Museum service and ML assets.

The contribution policy narrows the acceptable work further. Maintainers ask people to discuss any user-experience change before coding and say large product-change pull requests will not be merged. They value small fixes with stated tests and before-and-after screenshots. That is sensible product control, and it also means this repo is a poor match for someone hoping to land a personal redesign. Our 423-second failed build makes a focused reproduction especially important before proposing a native-code fix.

August 27 activity is strong, while support remains product-led

GitHub recorded 28,517 stars, 268 open issues and pull requests combined, and a last push on August 27, 2026. Recently updated issues included an Ente Auth black screen on Wayland, photo album backup behavior on iOS, and a Flatpak file-picker problem. Pull requests were moving the same day. That mix shows active maintenance and active edge cases across several platforms; the combined count should not be read as 268 confirmed defects.

The latest release was Photos v1.3.61 on August 11, 2026, with a fix for remote photos failing to load on older self-hosted servers. Ente is the better choice over Immich when service-provider-resistant encryption and a managed option lead the decision. Immich or PhotoPrism deserves the first trial when you mainly want a private gallery on hardware you already run. For Ente self-hosting, the deciding test is a complete upload, client recovery, and restore using your own infrastructure.

Alternatives

ProjectWhat it isPick it when
Immich gh↗A self-hosted photo and video library focused on phone backup and family browsing.pick this instead when you control the server and photo-management depth matters more than Ente's end-to-end encrypted service model.
PhotoPrism gh↗A web-first photo library for indexing, search, albums, and an existing archive.pick this instead when server-side organization of files you already store is the main job.
Nextcloud gh↗A wider self-hosted file and collaboration server with photo access among many apps.pick this instead when shared files, calendars, and collaboration matter more than a photo-first encrypted product.

What people are saying

  1. [velocity-scout] ente/ente

Sources

  1. Ente repository and product README
  2. Museum server README
  3. Museum running guide
  4. Ente self-hosting quickstart
  5. Ente contribution guide
  6. Photos v1.3.61 release
  7. Ente Auth Wayland black-screen report
  8. iOS album backup behavior report

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →