[Tutoriel] A la recherche d’un équivalent à PhotoStation : Piwigo/CentOS 7

Posted by

Je cherche un équivalent à PhotoStation des NAS Synology

Voilà encore un article que j’ai commencé à écrire il y a longtemps et je trouve enfin le temps de le terminer. Dans ma recherche quête d’un service équivalent à celui offert par Synology avec son PhotoStation, je suis tombé sur les sites de Korben et Nicolargo qui nous parlent tous deux de OpenPhoto.

Pour resituer, je cherche un logiciel auto-hébergeable qui me permettrait de visualiser et partager certaines de mes photos à ma famille qui sont aujourd’hui sur mon NAS, sans avoir à recourir à un service en ligne tiers (certains sont payant, d’autres réduisent la qualité, sans parler de l’aspect protection de la vie privée).

http://korben.info/openphoto.html

http://blog.nicolargo.com/2012/04/gerer-vos-photos-avec-openphoto-un-service-auto-heberge.html

Sur le papier, ça semblait correspondre.

Pourtant, j’avais du mal à trouver le site. Les rares informations que je trouvais renvoyaient vers des sites visiblement down.

OpenPhoto ? Ah non…

Et pour cause :

  • Le projet OpenPhoto a été créé en 2011
  • Puis renommé en Trovebox en 2013 lorsque ses concepteurs ont tenté de créer une entreprise

http://livingos.com/goodbye-flickr-hello-trovebox-openphoto/

  • Qui a fermé ses portes en mai 2015. Darn !

Bon du coup, ça n’en fait pas forcément un candidat idéal pour une mise en production même si a priori les sources toujours disponibles sur github ont été données à la communauté. Plus d’informations sur le dépôt GitHub https://github.com/photo/frontend

L’installation avait l’air assez simple et le look vraiment prometteur, le principe est identique à la galerie d’OwnCloud et de CozyCloud : on doit importer ses photos dans l’application.

Cela peut être une bonne solution pour les gens qui veulent mettre à disposition quelques photos triées sur le volet ou qui n’ont pas tout centralisé (voir mon article sur CozyCloud).

Au delà de ça, le fait que le projet soit terminé et qu’il n’y ait eu aucune activité (pas de reprise de la communauté) depuis un an est rédhibitoire pour moi. Dommage.

Piwigo

En fouillant dans les commentaires de l’article de Korben cités plus haut, je suis tombé sur un commentaire d’un des développeurs de Piwigo (Pierrick LE GALL), un autre projet, Français et libre, visant à fournir un serveur de galerie web.

Et si le look est clairement moins léché, le projet est lui bien vivant, ce qui lui confère instantanément des points par rapport à Trovebox :-p.

Plus d’informations sur http://fr.piwigo.org

En lisant la documentation, on remarque que le projet est clairement plus orienté vers un hébergement de l’application sur des sites mutualisés type OVH ou Gandi. Cependant rien ne vous empêche comme moi d’installer une base de données MariaDB et un serveur web sur un Debian/CentOS pour mettre à disposition mon service de galerie web.

Installation rapide

Si vous utilisez Piwigo sur un hébergement mutualisé, il est probable que la procédure sera plus complexe. Je vous conseille de lire la documentation officielle dans ce cas.

A partir d’une base CentOS 7 de type Desktop, j’ai installé Piwigo de la façon suivante :

yum install mariadb-server mariadb #Installation de mariadb
systemctl start mariadb #Démarrage de mariadb
systemctl enable mariadb #Activation de mariadb au boot
mysql_secure_installation #Configuration de mariadb de manière sécurisée
systemctl restart mariadb
mysql -uroot -p
Enter password: #Connexion à la base pour création bdd et utilisateur piwigo
    CREATE DATABASE piwigo;
    CREATE USER 'piwigo'@'localhost' IDENTIFIED BY 'motdepassetressecure';
    GRANT ALL PRIVILEGES ON piwigo.* TO 'piwigo'@'localhost';
    FLUSH PRIVILEGES;
exit
yum install httpd php php-mysql php-gd ImageMagick #Installation du serveur Web apache, de PHP et des dépendances
vi /etc/php.ini #modifier la timezone si le serveur est sur l'heure de Paris
   date.timezone = Europe/Paris
systemctl start httpd #Démarrage de httpd 
systemctl enable httpd #Activation de httpd au boot
 
firewall-cmd --permanent --add-port=80/tcp #Ajout du port 80 dans les exceptions du firewall
#firewall-cmd --permanent --add-port=443/tcp #Pour l'instant pas nécessaire car on ne met pas de HTTPS dans ce tutoriel
firewall-cmd --reload #rechargement des règles de firewalling
cd /var/www/html
mkdir piwigo && cd piwigo
chown -R apache:apache piwigo
wget -O piwigo-netinstall.php http://piwigo.org/download/dlcounter.php?code=netinstall #Récupération du code d'installation automatique
chown -R apache:apache /var/www/html/piwigo

A partir de là, on peut ouvrir la page d’installation http://[@ip_serveur_piwigo]/piwigo/piwigo-netinstall.php dans un navigateur web

piwigo_install

piwigo_install2

Troubleshooting

  • Si vous avez une erreur de permission lors de l’installation, vérifiez bien entendu que l’utilisateur apache a bien les droits en écriture dans le répertoire. Cependant, cela peut également être un problème de SELinux (typiquement j’avais cette erreur dans /var/log/messages)
Feb  7 21:32:44 xxxx dbus[652]: [system] Activating service name='org.fedoraproject.Setroubleshootd' (using servicehelper)
Feb  7 21:32:44 xxxx dbus[652]: [system] Successfully activated service 'org.fedoraproject.Setroubleshootd'
Feb  7 21:32:44 xxxx setroubleshoot: Exception during AVC analysis: [Errno 32] Broken pipe
  • Lors d’un gros import de photos de grande taille, j’ai fais sauter la limite de php fixée par défaut à 128M. Je l’ai augmentée un peu en espérant que ce n’était pas une fuite de mémoire
vi /var/log/httpd/error_log
    [Sun Feb 07 22:23:13.636911 2016] [:error] [pid 27999] [client 192.168.1.13:65337] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 13824 bytes) in /var/www/html/piwigo/admin/include/image.class.php on line 738, referer: http://x.x.x.x/piwigo/picture.php?/98/category/1

vi /etc/php.ini
    memory_limit = 256M

systemctl restart httpd

Premières impressions

A côté de Trovebox ou d’autres logiciels de galerie et/ou de service en ligne, Piwigo dans sa version de base fait un peu web 2.0.

[Édit]J’ai eu une discussion Twitter avec Pierrick LE GALL qui m’a conseillé de jeter un œil au skin Modus. Voir un peu de tuning plus bas[/Édit]

Je me suis très vite rendu compte que l’outil est très intuitif et très complet. L’absence d’une interface plus « moderne » a été très vite éclipsée par la puissance de l’outil de base, sans compte la base d’extension qui est très conséquente.

Outre les fonction classiques sociales et de recherche du type commentaires/notes/tags qu’on peut mettre sur les photos, Piwigo possède une gestion très poussée de la gestion des droits par utilisateur ou par groupes, ce qui est appréciable quand on veut stocker des photos et n’en montrer que certaines à la famille et/ou aux collègues et aux amis.

C’était mon besoin principal et Piwigo rempli le contrat parfaitement.

On retrouve en plus quelques fonctionnalités sympas qui vont au delà de la galerie perso comme la possibilité d’ajouter en mode « batch » des filigranes pour les photos des professionnels. Pratique ! De manière générale, la possibilité de pouvoir affecter un paramètre à plusieurs photos en même temps est un gros point positif.

Ce n’est bien entendu qu’un exemple puisque je n’ai pas terminé tous les tutoriels interactifs et que je n’ai même pas encore testé le magasin d’extension !

Une vraie bonne grosse surprise donc. Enjoy !

Pour que ce soit parfait

Comme pour tous les autres produits que j’ai pu tester, je dois re-importer mes photos dans les fichiers internes du serveurs Web (comme avec CozyCloud).

Outre l’aspect fastidieux de la chose (j’ai déjà rangé toutes mes photos dans des dossiers sur mon NAS et j’en ai beaucoup), je n’aime pas l’idée de devoir dupliquer des fichiers (hors sauvegardes).

Je ne sais pas encore s’il est possible de tirer parti du stockage de mon NAS pour éviter cette étape d’import (en présentant mon dossier de photo en NFS par exemple). Je vérifierai car c’est le dernier point qui me gène encore un peu pour obtenir un réel équivalent de PhotoStation qui (si je ne m’abuse) s’appuie directement sur les photos locales du NAS.

[Édit]J’ai également reçu un Tweet de @FloFian (décidément !) à ce sujet. Voir un peu de tuning plus bas[/Édit]

Un peu de tuning

Comme je l’ai dis un peu plus haut, en réaction à mon article, j’ai brièvement échangé avec les développeurs de Piwigo qui m’ont donnés des conseils pour résoudre les petits points de réserve que j’ai pu remonter suite à l’installation de Piwigo.

D’abord le skin Modus en remplacement du skin elegant. Et là effectivement c’est bien plus épuré et très similaire à OpenPhoto et bien plus moderne (question de goût) :

piwigo-modus-elegant
Modus à gauche, le skin par défaut (elegant) à droite

Et la seule chose à faire pour passer sur ce rendu est d’aller dans l’écran d’administration, puis dans Configuration/Thèmes et d’aller dans l’onglet Ajouter un thème.

piwigo_install3
Simplissime.

Là où j’ai encore un peu de travail, c’est sur l’ajout de photos provenant d’un partage NFS sans les importer au préalable. @FloFian m’a conseillé de simplement faire un montage NFS  sur le serveur qui héberge Piwigo, puis de faire un lien symbolique dans le répertoire /galleries de l’arborescence de Piwigo (dans /var/www/html/piwigo pour mon exemple).

Pour autant, ça ne semble pas fonctionner pour l’instant. Mais je n’ai pas encore vraiment creusé et ça pourrait simplement être un loupé sur une option dans Apache (genre FollowSymlinks) ou autre. Je mettrais à jour l’article en conséquence.

Bonus track

Pour les amateurs de Docker (j’en parlais pour CozyCloud avec Docker dans cet article), un contributeur à mis à disposition sur GitHub un « Docker compose » pour automatiser le déploiement de Piwigo. Là aussi je n’ai pas encore jeté un œil mais au cas où ça vous dit d’essayer …


Vous avez aimé cet article ? Partagez-le avec vos amis !   Twitter Facebook Linkedin email

Vous pouvez également soutenir le blog financièrement :

|| Tipeee

5 comments

  1. Hello !
    J’ai enfin réinstallé Piwigo sur mon rpi (afin de décharger mon NAS) et je suis tombé sur cette page, car je cherchais si c’était faisable de faire un montage NFS pour ne pas uploader les photos du NAS vers le Rpi et tout laisser sur le NAS.

    Est-ce que du coup tu l’as fait ?

    Merci !

  2. Non je n’avais pas réussi à le faire mais selon les gens de piwigo c’était possible. Ça vaut le coup de leur demander ils sont sympas. Même si j’ai (temporairement) désinstallé piwigo, la solution m’interresse si jamais tu trouve !

  3. Re,
    Alors effectivement c’était tout simple ! Un partage NFS du NAS, monté sur le raspberry directement dans le répertoire piwigo/galleries. Il suffit ensuite dans l’interface de piwigo de faire un synchroniser et il importe correctement tout les dossiers + photos !

    Au début du mount je n’arrivais à importer que les répertoires et il ne voyait pas les photos, je me suis arraché les cheveux 2h la-dessus. Et je me suis rendu compte qu’il fallait changer des droits, du coup un chown avec utilisateur www-data sur le partage et c’était bon !

    Peut-être pas la méthode la plus simple mais.. ça marche pour moi ;)

    Merci en tout cas pour ton article !

  4. Merci à toi pour le retour !
    Je mettrai à jour l’article ou j’en ferai un petit supplémentaire pour donner l’astuce au cas où ça intéresse d’autres personnes :-)

  5. Bonjour,
    Si c’est toujours possible, je suis bien intéressé par un tuto permettant de synchroniser le dossier /photo du Synology.
    Par avance merci.

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.