[Geek] Photoview, la photothèque légère
@ Nicolas | Monday, Oct 4, 2021 | 7 minutes de lecture | Mise à jour le Monday, Oct 4, 2021

Photoview, la petite pépite récemment découverte ! Pour avoir une photothèque simple.

Introduction

Cela fait un petit moment que je me cherche une photothèque en auto-hébergement, qui saurait me permettre de parcourir mes miliers de photos, qui sont hébergées à divers endroits, sans pour autant mettre une plombe à se charger…

Quelqu’un a déjà testé un nextcloud qui affiche des miniatures, ou qui essaye ?

loading

Après divers tests de plusieurs solutions je suis tombé sur “photoview” qui répond à mon besoin. Petit tour d’horizon rapide.

Le besoin

Elles sont où mes photos ?

Si vous êtes comme moi, vous trainez probablement des miliers de photos prises au fil du temps, bien rangées dans des dossiers par années, quelque part chez vous. Après j’en ai pas tant que ça, je suis encore jeune.

believe

J’ai beau être un passioné de photographie, le gros défaut de l’informatique, c’est que les photos sont bien sagement sur vos disques-durs prêts à mourir dans une armoire, et vous ne les regardez jamais. Idem, peut-être avez vous un bon paquet de médias sur votre smartphone, gavé de “Giga-octay” de stockage…

L’argentique et les photos papiers avaient du bon, mais c’est un autre sujet.

Comme tout bon geek, vous avez peut-être plutôt un NAS où tout est dessus, ou un stockage quelconque sur le réseau.

Oui mais elles sont rangées où mes photos ?

Deuxième soucis, quand les médias sont à droite à gauche, qu’on cherche une photo spécifique, c’est un peu la loose de devoir se parcourir les dossiers un peu partout sur les divers médias. L’idée du photothèque est donc assez évidente.Trier par date, par tags, par propriétés EXIF, par visages, tout est bon.

Google photos me dira-t-on. Oui mais non, car Google n’a pas mes photos et ne les aura jamais, donc pas possible. Un logiciel lourd sur PC c’est pareil, c’est pratique mais j’ai pas mon pc dans ma poche… et le smartphone, il lui faudrait un bon gros HDD en USB pour tout loger…

La photothèque à héberger à la maison, quand on est un geek, c’est une bonne solution :)

Si je fais la liste au papa Noël, c’est qu’il me faudrait dans sa hotte :

  • une appli web :)
  • une authentification, parce que, quand même.
  • pouvoir conserver mon arborescence de dossiers. Parce que c’est très bien rangé comme ça.
  • une solution qui va pas devoir me rappatrier toutes mes datas au même endroit. Une fois mais pas deux.
  • une solution qui va pas me manger 8Go de RAM et tous mes petits CPUs. Parce que j’essaye d’être écolo, mon serveur c’est pas un 32 coeurs qui fait 2,21GW.

Les solutions possibles

Grace à la communauté et sa créativité, il y a tout un tas de petits outils sur le net qui font très bien le job. Reste juste à en trouver un qui colle à mon besoin.

J’ai testé les plus connus :

Ces logiciels vraiment sont tous bons. Ils sont justes pas adaptés pour mon cas.

  • Piwigo était trop limité pour ma problématique d’arborescence de photos et un peu lent niveau interface.
  • LibrePhoto remplissait vraiment le rôle : mais trop consommateur. Il fallait au moins 8Go de RAM et 4 vcpus pour le faire tourner correctement, et la première passe de scan de mes photos a pris presque 2 jours à 100% de charge.
  • Photoprism est trop complet pour mon utilité, et est relativement lourd également.
  • Lychee : un peu limité dans mon cas, mais m’a vraiment servi dans des cas spécifiques (permettre l’accès à des photos de mariage par exemple). L’interface est vraiment épurée et parfaite pour ce cas, mais pas vraiment pour une grosse photothèque.

Bref, le titre c’était photoview :D

Je suis tombé dessus et rien que la description (en anglais) du docker m’a tout de suite enchanté.

Le résumé est simple : Photoview est une gallerie photo qui est créée pour les photographes et ceux qui veulent naviguer facilement dans une arborescence de fichiers qui contient des miliers de photos haute résolution.

Exactement mon besoin donc.

yes

Il n’y a qu’à donner vos dossiers de photos et Photoview va la parcourir (sans tout détruire, en lecture-seule).

Pour lister les fonctionnalités :

  • Le site représente votre arborescence de photos. Pas de chichi.
  • La possiblité de créer des utilisateurs, reliés à leur propre arborescence. C’est un plus.
  • La possiblité de partager des médias, avec un lien/mot de passe.
  • Support du RAW et lecture des propriétés EXIF. C’est la base pour les photographes.
  • Gestion des vidéos, qui seront lues en web et optimisées à la volée.
  • Reconnaissance des visages.
  • L’affichage d’une photo ouvre une version basse résolution et bascule automatiquement sur une meilleure résolution après chargement (c’est efficace)
  • Automatisation des scans de mise à jour

Installation

L’installation est un jeu d’enfant.

Vous installez votre distribution préférée, docker et docker-compose.

Vous récupérez le dépôt Github, et éditez le docker-compose.yml.

Voici quelques commentaires et ajouts :

version: "3"

services:
  db:
    image: mariadb:10.5
    restart: always
    environment:
      - MYSQL_DATABASE=photoview
      - MYSQL_USER=photoview
      - MYSQL_PASSWORD=unsupermotdepassedelespace
      - MYSQL_RANDOM_ROOT_PASSWORD=1
    volumes:
      - db_data:/var/lib/mysql
      # Rajoutez cette ligne pour avoir la bonne timezone
      - /etc/localtime:/etc/localtime:ro

  photoview:
    image: viktorstrate/photoview:2
    restart: always
    ports:
      - "8000:8000"
    depends_on:
      - db
    environment:
      - PHOTOVIEW_DATABASE_DRIVER=mysql
      - PHOTOVIEW_MYSQL_URL=photoview:unsupermotdepassedelespace@tcp(db)/photoview
      - PHOTOVIEW_LISTEN_IP=photoview
      - PHOTOVIEW_LISTEN_PORT=8000
      - PHOTOVIEW_MEDIA_CACHE=/app/cache
      # Dans le cas où vous avez des erreurs avec samba
      # - GODEBUG=asyncpreemptoff=1
      # Si vous voulez la carte, créez un token sur https://account.mapbox.com/access-tokens/
      # Pensez à le limiter à votre domaine.
      #- MAPBOX_TOKEN=

    volumes:
      - api_cache:/app/cache
      # Rajoutez cette ligne pour avoir la bonne timezone
      - /etc/localtime:/etc/localtime:ro
      # Tous vos dossiers de photos doivent être mappés ici.
      - /MONDOSSIER1:/MONDOSSIER1:ro
      - /MONDOSSIER2:/MONDOSSIER2:ro

volumes:
  db_data:
  api_cache:

Pour les dossiers, vous pouvez ensuite utiliser du SAMBA, NFS, SSHFS, tout ce qui vous chante pour mapper vos dossiers externes sur la machine de photoview. Rien ne sera modifé (lecture-seule).

Dans l’idéal, je vous conseille de lancer ces conteneurs dans un compte autre que root :)

Quand vous êtes prêts, attachez votre ceinture, et :

# docker-compose up -d

L’application écoute ensuite sur le port 8000. Je vous conseille ensuite d’utiliser un Haproxy en frontal pour s’occuper de la partie HTTPS et le tour est joué.

Personnellement, la machine fonctionne très bien avec 2 vcpus, 2Go de ram, et 15Go de stockage local, pour des miliers de photos. J’ai juste ponctuellement doublé le temps du scan initial, qui a pris environ 6 heures pour environ 70 000 photos.

Les p’tits soucis

Il y a quelques petits trucs/bugs que vous pourrez découvrir. Je vois en parallèle comment les faire remonter au mieux :)

  • Parfois des déconnexions quand on modifie des paramètres ou que l’on lance des traitements (genre regrouper des visages)
  • La possibilité de désactiver les partages serait un plus, idem pour la détection des visages (si on veut pas s’en servir).
  • Des bugs de date de prise de vue. Je suis en train de tester cette partie, mais les photos remontées lors du premier scan avaient 2H de retard sur la date de prise de vue par rapport à la photo originale. C’est probablement au lié à une mauvaise timezone lors du premier scan.

Le côté génial de photoview

L’interface est claire et simple. Pas de menus dans tous les sens ; des photos, des dossiers, des visages, une carte et des paramètres.

example

Quand la photothèque est à jour, l’affichage des dossiers est vraiment rapide et fluide. Lorsque vous ouvrez une photo, on voit une première version en basse qualité s’afficher et la bonne en moins d’une seconde.

Vraiment, rien à voir par exemple avec la photothèque de Nextcloud qui est uuuultra lente à côté, même quand les miniatures sont déjà téléchargées (bon Nextcloud c’est pas non plus son boulot).

La reconnaissance des visages est assez bluffante, même s’il y a pas mal d’erreurs sur des personnes qui sont dupliquées (peut-être certains ont pris des rides au fil du temps :p).

L’utilisation des ressources est vraiment vraiment bonne. Le scan quotidien peut mettre 15-30 min sur 2 cpus, et c’est tout.

Donne moi des liens !

Pour rappel Photoview est ici : https://photoview.github.io/

Les sources par ici : https://github.com/photoview/photoview

N’hésitez pas à parcourir la démo : https://photos.qpqp.dk/

Et contribuez si vous aimez :)

© 2017 - 2021 Some stuff...

Powered by Hugo with theme Dream.