Startup Ente, which develops the eponymous service for confidential photo storage, announced the opening of the source code for the server part of its platform, in addition to the previously released client and mobile applications. The published code allows users to deploy a photo storage and sharing service similar to Google Photos and Apple Photos on their own infrastructure. The server-side code is written in Go and is distributed under the AGPLv3 license. The client applications are written in TypeScript and Dart using Flutter, and are prepared for Linux, Windows, macOS, iOS, and Android. A web interface is also available.
A distinctive feature of Ente is the ability to use end-to-end encryption to protect information in case of storage compromise, allowing the use of untrusted providers without fear of leaking confidential information. The cryptographic functions are built on top of the Sodium library. Algorithms such as Argon2 1.3 for hashing, X25519 for key exchange, XSalsa20 and XChaCha20 for encryption, and Poly1305 MAC for authentication are used. The cryptographic algorithms and source code used in the project have undergone independent audits by the companies Cure53 and Fallible.
The photo storage service supports selective access granting to individual images and the creation of shared albums accessible by multiple users. Uploads to the storage can occur in the background. Import and export for various systems are supported. PostgreSQL is used as the database management system. To ensure reliable storage, information can be replicated to several independent storages.

If desired, it is possible to organize the storage of other types of data on top of Ente — the photo storage service is just one of the application add-ons. For example, the Ente Auth component can be used to create authentication applications similar to Authy, which are used for storing two-factor authentication codes and support code backup in the cloud and synchronization across different devices. Ente Auth and Ente Photos share the same server-side code.
Kilde: opennet.ru
