Files
wiki/Catalogue-Self-Hosted/apps/app-ente-photos.md
T
2026-06-09 18:40:21 +02:00

4.5 KiB


title: Ente Photos created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, photos, ente, encryption, privacy, e2ee, self-hosted, mobile] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Photos, https://github.com/ente-io/ente]

📸 Ente Photos

L'alternative chiffrée end-to-end à Google Photos et iCloud — open source, multi-plateforme, et même auto-hébergeable pour les utilisateurs avancés.

📋 Informations Générales

Attribut Valeur
Nom Ente Photos
Slug app-ente-photos
Description Cloud photos chiffré end-to-end, open source
Site officiel ente.io
Repository ente-io/ente
Stars 26 995
Licence AGPL-3.0 (serveur + apps)
Langage principal Go, Dart, TypeScript
Catégorie Photos
Tags [catalogue, photos, ente, encryption, privacy, e2ee, self-hosted, mobile]

📝 Description

Ente se positionne sur le créneau "cloud photo privacy-first" : toutes les photos sont chiffrées côté client (chiffrement AES-256-GCM avec clé dérivée du mot de passe via Argon2) avant upload. Le serveur ne voit jamais le contenu en clair — y compris les métadonnées (EXIF, géoloc, etc.).

Points forts : apps natives excellentes sur iOS, Android, macOS, Windows, Linux, Web (PWA). UX très proche d'Apple Photos/Google Photos. Recherche par similarité visuelle et reconnaissance d'objets fonctionne en mode chiffré (embeddings calculés client-side). Partage avec lien chiffré, albums collaboratifs (avec chiffrement partagé). Migration depuis Google Photos, Apple Photos, Immich, etc.

Auto-hébergement : Ente fournit un guide pour déployer le serveur (composé de plusieurs microservices Go). C'est faisable mais plus complexe qu'Immich ou PhotoPrism — il faut reverse-proxy plusieurs services, gérer Postgres, S3-compatible, museum (ML search), accounts, etc.

🚀 Installation

Via Docker (recommandé)

# docker-compose.yml - extrait simplifié
version: "3.8"
services:
  api:
    image: ghcr.io/ente-io/server:latest
    container_name: ente-api
    restart: unless-stopped
    env_file: ./museum.yaml
    depends_on: [postgres, minio]

  web:
    image: ghcr.io/ente-io/web:latest
    container_name: ente-web
    restart: unless-stopped
    ports:
      - 8080:3000

  postgres:
    image: postgres:15
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - pgdata:/var/lib/postgresql/data

  minio:
    image: minio/minio:latest
    restart: unless-stopped
    command: server /data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: ${MINIO_PASSWORD}
    volumes:
      - miniodata:/data

volumes:
  pgdata:
  miniodata:

⚠️ La stack Ente complète (museum, accounts, albums, share, public) fait 8-10 services — bien suivre la doc officielle plutôt que ce snippet simplifié.

Installation manuelle

Possible (binaire Go) mais non recommandé — la composition multi-services est lourde à maintenir à la main.

⚙️ Configuration

  • Storage backend : S3 ou compatible (MinIO local pour self-host).
  • Domaine HTTPS dédié obligatoire (apps natives refusent les certificats auto-signés).
  • DNS challenge (Caddy/Let's Encrypt) recommandé.
  • Configuration museum.yaml : clés de chiffrement serveur, secrets, URLs API.

🔗 Alternatives

  • app-immich — Self-host simple, pas de chiffrement E2E
  • app-photoprism — Self-host simple, pas de chiffrement E2E
  • Storj DCS (cloud S3 chiffré) — alternative non-photo dédiée stockage

🔒 Sécurité

  • Chiffrement E2E : la clé de chiffrement est dérivée du mot de passe utilisateur — perte du mot de passe = perte des photos (Ente ne peut rien récupérer). C'est by design.
  • Aucune auth faible : l'app ne propose pas de "récupération par email" pour ne pas compromettre le modèle.
  • Code auditable : toute la stack (serveur + apps) est open source et auditable.

📚 Ressources

🔗 Pages Liées