Installer PhotoPrism avec Docker
Photoprism

Installer PhotoPrism avec Docker

Table des matières

S'il y a bien deux noms qui reviennent souvent sur les threads pour un conseil de gestionnaire de photos et vidéos, c'est Immich et PhotoPrism.

💡
Ils font également une bonne alternative à Google Photos.

Pourtant, ils ne font pas exactement le même travail.

Si votre objectif c'est d'avoir un backup automatique de vos photos et vidéos à partir de votre téléphone ou tablette:

  • Immich est vraiment orienté backup photos & vidéos à partir du téléphone, dispose de sa propre application sur divers plateformes.

Si votre objectif est plutôt de gérer vos albums photos et vidéos, les partager, faire de la synchro:

  • PhotoPrism va plutôt travailler sur des dossiers de photos existants, d'en créer de nouveaux, de faire des albums,... Il peut aussi servir de backup pour les photos et vidéos de votre téléphone à l'aide d'une application tierce comme PhotoSync.
J'ai testée un temps cette combinaison PhotoSync/PhotoPrism, ce n'était pas forcément la meilleure expérience comparé à Immich pour ce type de travail. Ce n'est qu'un avis personnel.

Par contre pour le reste, PhotoPrism est vraiment une application réussie.

Je vous explique au mieux comment démarrer avec une fois installé, sa prise en main est relativement rapide.


PhotoPrism® est une application de photos basée sur l'IA pour le Web décentralisé. Il utilise les dernières technologies pour marquer et rechercher automatiquement des images sans vous gêner. Vous pouvez l'exécuter chez vous, sur un serveur privé ou dans le cloud.

⚡Caractéristiques

  • Parcourez toutes vos photos et vidéos sans vous soucier de la conversion RAW, des doublons ou des formats vidéo.
  • Trouvez facilement des images spécifiques à l'aide de puissants filtres de recherche.
  • Reconnaît les visages de votre famille et de vos amis.
  • Classification automatique des images en fonction de leur contenu et de leur emplacement.
  • Lisez des photos en direct en les survolant dans les albums et les résultats de recherche.
  • L'interface utilisateur étant une application Web progressive, elle offre une expérience native semblable à celle d'une application et vous pouvez facilement l'installer sur l'écran d'accueil de tous les principaux systèmes d'exploitation et appareils mobiles.
  • Comprend quatre cartes du monde haute résolution pour ramener les souvenirs de vos voyages préférés.
  • Les métadonnées sont extraites et fusionnées à partir d'Exif, XMP et d'autres sources telles que Google Photos.
  • De nombreuses autres propriétés d'image telles que les couleurs, la chrominance et la qualité peuvent également être recherchées.
  • Utilisez PhotoSync pour sauvegarder en toute sécurité les téléphones iOS et Android en arrière-plan.
  • Les clients WebDAV tels que l'Explorateur Windows de Microsoft et le Finder d'Apple peuvent se connecter directement à PhotoPrism, vous permettant d'ouvrir, de modifier et de supprimer des fichiers de votre ordinateur comme s'ils étaient locaux.

L'installation

Avec Cosmos Cloud

Cette application peut-être installée en un clic sur votre Cosmos Cloud en cliquant sur l'image ci-dessous:


Avec docker-compose

  1. Créez votre docker-compose.yml:
nano docker-compose.yml
  1. Collez ça dedans en prenant soin d'adapter le port et les volumes suivant votre configuration:
version: '3.5'

services:
  photoprism:
    image: photoprism/photoprism:latest
    # restart: unless-stopped
    stop_grace_period: 10s
    depends_on:
      - mariadb
    security_opt:
      - seccomp:unconfined
      - apparmor:unconfined
    ports:
      - "2342:2342"
    environment:
      PHOTOPRISM_ADMIN_USER: "zarev"                 # choisissez votre login
      PHOTOPRISM_ADMIN_PASSWORD: "test123"             # choisissez votre mot de passe(8-72 caractères)
      PHOTOPRISM_AUTH_MODE: "password"               # authentication mode (public, password)
      PHOTOPRISM_SITE_URL: "https://192.168.1.118:2342/"  # server URL in the format "http(s)://domain.name(:port)/(path)"
      PHOTOPRISM_DISABLE_TLS: "false"                # disables HTTPS/TLS even if the site URL starts with https:// and a certificate is available
      PHOTOPRISM_DEFAULT_TLS: "true"                 # defaults to a self-signed HTTPS/TLS certificate if no other certificate is available
      PHOTOPRISM_ORIGINALS_LIMIT: 5000               # file size limit for originals in MB (increase for high-res video)
      PHOTOPRISM_HTTP_COMPRESSION: "gzip"            # improves transfer speed and bandwidth utilization (none or gzip)
      PHOTOPRISM_LOG_LEVEL: "info"                   # log level: trace, debug, info, warning, error, fatal, or panic
      PHOTOPRISM_READONLY: "false"                   # do not modify originals directory (reduced functionality)
      PHOTOPRISM_EXPERIMENTAL: "false"               # enables experimental features
      PHOTOPRISM_DISABLE_CHOWN: "false"              # disables updating storage permissions via chmod and chown on startup
      PHOTOPRISM_DISABLE_WEBDAV: "false"             # disables built-in WebDAV server
      PHOTOPRISM_DISABLE_SETTINGS: "false"           # disables settings UI and API
      PHOTOPRISM_DISABLE_TENSORFLOW: "false"         # disables all features depending on TensorFlow
      PHOTOPRISM_DISABLE_FACES: "false"              # disables face detection and recognition (requires TensorFlow)
      PHOTOPRISM_DISABLE_CLASSIFICATION: "false"     # disables image classification (requires TensorFlow)
      PHOTOPRISM_DISABLE_VECTORS: "false"            # disables vector graphics support
      PHOTOPRISM_DISABLE_RAW: "false"                # disables indexing and conversion of RAW images
      PHOTOPRISM_RAW_PRESETS: "false"                # enables applying user presets when converting RAW images (reduces performance)
      PHOTOPRISM_JPEG_QUALITY: 85                    # a higher value increases the quality and file size of JPEG images and thumbnails (25-100)
      PHOTOPRISM_DETECT_NSFW: "false"                # automatically flags photos as private that MAY be offensive (requires TensorFlow)
      PHOTOPRISM_UPLOAD_NSFW: "true"                 # allows uploads that MAY be offensive (no effect without TensorFlow)
      # PHOTOPRISM_DATABASE_DRIVER: "sqlite"         # SQLite is an embedded database that doesn't require a server
      PHOTOPRISM_DATABASE_DRIVER: "mysql"            # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance
      PHOTOPRISM_DATABASE_SERVER: "mariadb:3306"     # MariaDB or MySQL database server (hostname:port)
      PHOTOPRISM_DATABASE_NAME: "photoprism"         # MariaDB or MySQL database schema name
      PHOTOPRISM_DATABASE_USER: "photoprism"         # MariaDB or MySQL database user name
      PHOTOPRISM_DATABASE_PASSWORD: "insecure"       # MariaDB or MySQL database user password
      PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App"
      PHOTOPRISM_SITE_DESCRIPTION: ""                # meta site description
      PHOTOPRISM_SITE_AUTHOR: ""                     # meta site author

    working_dir: "/photoprism" # do not change or remove
    ## Storage Folders: "~" is a shortcut for your home directory, "." for the current directory
    volumes:
      # "/host/folder:/photoprism/folder"                # Example
      - "/srv/appdata/photoprism/Pictures:/photoprism/originals"               # Original media files (DO NOT REMOVE)
      # - "/example/family:/photoprism/originals/family" # *Additional* media folders can be mounted like this
      - "/srv/appdata/photoprism/Import:/photoprism/import"                  # *Optional* base folder from which files can be imported to originals
      - "/srv/appdata/photoprism/storage:/photoprism/storage"                  # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE)

  mariadb:
    image: mariadb:11
    ## If MariaDB gets stuck in a restart loop, this points to a memory or filesystem issue:
    ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors
    restart: unless-stopped
    stop_grace_period: 5s
    security_opt: # see https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239
      - seccomp:unconfined
      - apparmor:unconfined
    command: --innodb-buffer-pool-size=512M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
    ## Never store database files on an unreliable device such as a USB flash drive, an SD card, or a shared network folder:
    volumes:
      - "/srv/appdata/photoprism/database:/var/lib/mysql" # DO NOT REMOVE
    environment:
      MARIADB_AUTO_UPGRADE: "1"
      MARIADB_INITDB_SKIP_TZINFO: "1"
      MARIADB_DATABASE: "photoprism"
      MARIADB_USER: "photoprism"
      MARIADB_PASSWORD: "insecure"
      MARIADB_ROOT_PASSWORD: "insecure"

On peut configurer de nombreux paramètres mais on va s'en tenir pour le moment aux plus importants:

  • PHOTOPRISM_ADMIN_USER: "zarev" => indiquez entre les " " votre nom d'utilisateur, qui sera le compte admin.
  • PHOTOPRISM_ADMIN_PASSWORD: "test123" => indiquez entre les " " votre mot de passe fort.
  • PHOTOPRISM_SITE_URL: "https://192.168.1.118:2342/" => on va préférer du HTTPS au HTTP, indiquez ensuite votre ip serveur, sur le port 2342.
  • PHOTOPRISM_DATABASE_PASSWORD: "insecure" va de paire avec MARIADB_PASSWORD: "insecure" => replacez les deux insecure par le même mot de passe fort.
  • MARIADB_ROOT_PASSWORD: "insecure" => replacez insecure par un mot de passe fort différent.
  • PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App" => c'est le titre qui sera affiché dans l'onglet de votre navigateur.
  1. On installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur l'ip:port en HTTPS, suivant l'IP de votre serveur local et du port choisi, 2342 par défaut:
https://ip:2342

Après avoir validé l'alerte de sécurité, c'est le moment de se connecter avec les informations de compte que vous avez défini au point 2.

Voici la page d'accueil:


Mettre PhotoPrism en français

En bas à gauche, cliquez sur Settings:

Dans GENERAL, sélectionnez le français dans la partie Language:

On est bon:


Petit conseil

Je vous conseil de désactiver Filtre de qualité, qui se trouve dans les Paramètres sous l'onglet Bibliothèque. Si on ne fait pas ça, PhotoPrism va mettre certaines photos en attente de validation suivant certains critères de qualité. Je préfère décider quand je vois la photo si elle me convient ou non. Suivant mes critères.


Envoyer des photos et des vidéos

Il y a plusieurs façons de le faire.

  1. Par SFTP

Placez vos dossiers et fichiers dans le dossier du serveur contenant toute votre bibliothèque:

/srv/appdata/photoprism/Pictures/

Dans Pictures j'ai créé le dossier Album_1 et j'y ai mis deux photos:

On retrouve bien dans la partie Dossiers de l'interface de PhotoPrism le dossier nommé Album_1.

⚠️
Quand vous avez ajouté un dossier ou fichiers directement dans le dossier Pictures, sur le serveur, n'oubliez pas de le scanner avec PhotoPrism en allant dans le menu de gauche, partie Bibliothèque, ensuite cliquez sur Démarrer.
  1. En utilisant l'interface de PhotoPrism

Sélectionnez dans le menu de gauche, Albums, en suite cliquez sur AJOUTER UN ALBUM:

Cliquez sur l'album créé pour entrer dedans:

Une fois dans le dossier, cliquez en haut à droite sur l'icône pour envoyer des fichiers:

Cliquez sur CHARGEMENT pour choisir ses fichiers:

On sélectionne quelques photos pour l'exemple:

Quand l'importation est finie, vous avez donc vos fichiers dans l'album créé:

Pour renommer un album, cochez l'album (le V dans le rond blanc) et en bas à droite va apparaître un menu avec plusieurs options, dont cette de renommer l'album:

Vous pouvez très bien envoyer des fichiers à partir de l'onglet Rechercher:

Soit vous indiquez un album déjà existant ou envoyer vos fichiers, si vous n'en choisissez pas, tout sera mis en vrac dans l'onglet Rechercher et vous pourrez trier plus tard:

Vous avez également le loisir de créer un nouvel album directement par ici en tapant simplement le nom de celui-ci et de valider par Enter, choisissez ensuite les photos et/ou vidéos à envoyer:

On retrouve bien l'album créé et les images qui ont été envoyées:

Si vous avez envoyé vos fichiers en vrac, vous pourrez les trier à partir de l'onglet Rechercher, vous sélectionnez ceux que vous voulez (le V dans le rond blanc) envoyer dans un album et dans le fond à droite, un menu va apparaître, choisissez l'option en jaune:

Soit vous pouvez en créer un ou en choisir un existant:

  1. Par le dossier Import.

Dans le docker-compose je vous ai activé le dossier import:

Vous glissez vos fichiers dedans, vous devrez ensuite utiliser la fonction Importer de PhotoPrism qui est dans la partie Bibliothèque, Importer.

Je vous conseil de cocher Déplacer les fichiers.
Une fois l'importation terminée, les photos et vidéos seront dans l'onglet Recherche.


Les paramètres

Il y a vraiment beaucoup de paramètres, prenez le temps de les explorer:


Disponibilité

Sur votre navigateur préféré.

zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.