--- title: SnapOtter created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, photos, gallery, light, self-hosted, web] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Photos, https://github.com/Snap-Otter/snapotter] --- # 📾 SnapOtter > **Alternative lĂ©gĂšre Ă  Immich** : galerie photos minimaliste pour qui veut juste stocker, organiser et partager des photos sans la complexitĂ© d'un Immich ou d'un PhotoPrism. ## 📋 Informations GĂ©nĂ©rales | Attribut | Valeur | |----------|--------| | **Nom** | SnapOtter | | **Slug** | app-snapotter | | **Description** | Galerie photos simple et lĂ©gĂšre type Immich | | **Site officiel** | [snapotter.app](https://snapotter.app) | | **Repository** | [Snap-Otter/snapotter](https://github.com/Snap-Otter/snapotter) | | **Stars** | 1 526 ⭐ | | **Licence** | MIT | | **Langage principal** | TypeScript, Node.js | | **CatĂ©gorie** | Photos | | **Tags** | [catalogue, photos, gallery, light, self-hosted, web] | ## 📝 Description **SnapOtter** se positionne comme une **alternative volontairement dĂ©pouillĂ©e** Ă  Immich. Pas de reconnaissance faciale embarquĂ©e, pas de ML lourd, pas de cluster Kubernetes : juste une galerie photos qui marche, avec un upload simple, une timeline, des albums, du partage public. IdĂ©al pour les homelabs modestes ou les utilisateurs qui trouvent Immich trop complexe. FonctionnalitĂ©s : **upload drag & drop** multi-fichiers, **timeline chronologique**, **albums manuels**, **tags simples**, **partage public par lien** (avec expiration optionnelle), **auth multi-utilisateur** (basique), **EXIF parsing** (date, gĂ©oloc), **carte gĂ©ographique**, **recherche textuelle**, **app mobile** (PWA installable), **backup/restore** natifs. L'**avantage clĂ©** : dĂ©ploiement **en 5 minutes**, **consommation RAM trĂšs faible** (200-300 Mo contre 4+ Go pour Immich), pas de GPU requis, dĂ©marrage quasi instantanĂ©. Parfait pour un Pi 4 ou un vieux NUC. ## 🚀 Installation ### Via Docker (recommandĂ©) ```yaml # docker-compose.yml services: snapotter: image: ghcr.io/snap-otter/snapotter:latest container_name: snapotter restart: unless-stopped environment: - DATABASE_URL=postgresql://snapotter:***@db:5432/snapotter - JWT_SECRET=*** volumes: - /mnt/photos:/data/photos - snapotter-db:/var/lib/postgresql/data ports: - 8084:8080 db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_PASSWORD: *** POSTGRES_USER: snapotter POSTGRES_DB: snapotter volumes: - snapotter-db:/var/lib/postgresql/data ``` ### Installation manuelle ```bash git clone https://github.com/Snap-Otter/snapotter.git cd snapotter npm install npm run build && npm start ``` ## ⚙ Configuration - **Base PostgreSQL** : volume sĂ©parĂ© pour la persistance des mĂ©tadonnĂ©es. - **Dossier photos** : montage du dossier source, l'app y stocke les uploads. - **Auth** : JWT secret Ă  gĂ©nĂ©rer (`openssl rand -hex 32`). - **Stockage** : aucun transcodage, garde les originaux intacts. ## 🔗 Alternatives - **[[app-immich]]** — Plus complet, mais beaucoup plus lourd - **[[app-lychee]]** — Encore plus minimaliste (PHP), mature - **[[app-piwigo]]** — TrĂšs mature, riche en plugins ## 🔒 SĂ©curitĂ© - **JWT secret** : long et alĂ©atoire, jamais committĂ©. - **HTTPS obligatoire** : reverse proxy Traefik/Caddy. - **Backups** : volume Postgres + dossier photos. - **Rate limiting** : Ă  configurer en reverse proxy (Ă©viter brute-force upload). ## 📚 Ressources - [Site officiel](https://snapotter.app) - [Repository GitHub](https://github.com/Snap-Otter/snapotter) - [Documentation](https://github.com/Snap-Otter/snapotter/wiki) ## 🔗 Pages LiĂ©es - [[cat-photos]] - [[app-immich]] - [[app-lychee]] - [[app-piwigo]] - [[app-traefik]] - [[recettes-docker-compose]] - [[securisation-home-lab]]