Files
2026-06-09 18:40:21 +02:00

4.5 KiB


title: Shared Moments created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, photos, sharing, ephemeral, self-hosted, web] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Photos, https://github.com/shared-moments/shared-moments]

📸 Shared Moments

Partage d'albums éphémères : créez un album pour un événement, partagez le lien, et tout disparaît automatiquement après la date d'expiration. Pour les souvenirs qui ne restent pas éternellement.

📋 Informations Générales

Attribut Valeur
Nom Shared Moments
Slug app-shared-moments
Description Partage d'albums photos avec expiration automatique
Site officiel sharedmoments.app
Repository shared-moments/shared-moments
Stars 99
Licence MIT
Langage principal Python, FastAPI
Catégorie Photos
Tags [catalogue, photos, sharing, ephemeral, self-hosted, web]

📝 Description

⚠️ Fiche confiance basse : Shared Moments est un petit projet (~100 étoiles), à utiliser en connaissance de cause, et possiblement à forker si vous avez un vrai besoin.

Shared Moments propose un workflow très simple : vous voulez partager des photos d'un événement (mariage, soirée, weekend entre amis) sans qu'elles restent indéfiniment accessibles. Créez un album, définissez une date d'expiration, partagez le lien, et tout s'autodétruit après.

Philosophie : à l'opposé d'un Google Photos qui conserve tout indéfiniment, Shared Moments assume que certains souvenirs ont une durée de vie naturelle. C'est aussi un cadeau de respect de la vie privée : les invités du mariage n'auront pas leurs photos partagées sur Internet pour l'éternité.

Fonctionnalités : albums avec expiration (1 jour à 1 an), upload invité (sans compte), upload par mail (mails acceptés sur l'album), galerie en lecture seule après expiration, notifications par mail (nouvelle photo uploadée), téléchargement groupé pour les invités, pas d'inscription requise pour consulter, auto-destruction des fichiers après expiration, bandeau "ephemeral" clair pour les visiteurs.

Cas d'usage : mariage (album partagé aux invités, expire après 1 an), événement pro (conférence, meetup), vacances entre amis, soirée (photos partagées 24h).

🚀 Installation

Via Docker

# docker-compose.yml
services:
  shared-moments:
    image: ghcr.io/shared-moments/shared-moments:latest
    container_name: shared-moments
    restart: unless-stopped
    environment:
      - DATABASE_URL=postgresql://sm:***@db:5432/sm
      - SECRET_KEY=***    volumes:
      - /mnt/moments:/app/storage
    ports:
      - 8093:8000
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: ***
      POSTGRES_USER: sm
      POSTGRES_DB: sm
    volumes:
      - sm-db:/var/lib/postgresql/data

volumes:
  sm-db:

Installation manuelle

git clone https://github.com/shared-moments/shared-moments.git
cd shared-moments
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000

⚙️ Configuration

  • Database Postgres : pour métadonnées (albums, uploads, expirations).
  • Storage : volume pour les photos (avec cron d'auto-destruction).
  • SMTP : configurer pour notifications mail (optionnel).
  • Cron : vérifier que le job d'expiration tourne (sinon rien ne disparaît).

🔗 Alternatives

  • app-circled-me — Approche "cercles restreints" permanents
  • app-piwigo — Galerie mature avec permissions granulaires
  • app-immich — Albums partagés sans expiration auto

🔒 Sécurité

  • HTTPS obligatoire : pas le choix, on partage des photos par lien.
  • Liens signés : les URLs d'album doivent être imprévisibles (tokens longs).
  • Auto-destruction : vérifier que le job cron tourne et supprime vraiment.
  • Pas d'auth sur consultation : les invités n'ont pas de compte, c'est par design.

📚 Ressources

🔗 Pages Liées