Gérer vos photos avec OpenPhoto, un service auto-hébergé

Date: 26/04/2012 | Catégories: Image,Open-source,Planet-libre,Web | Tags: ,,,,,

C'est suite à un tweet sur l'abandon du développement de la version GNU/Linux de Picassa par les équipes de Google que j'ai entendu parler pour la première fois du projet OpenPhoto (bien que comme nous allons le voir les deux sujets ne soient pas liés).

OpePhoto propose d'héberger dans un "cloud" vos photos, permettant ainsi un accès dématérialisé (plus besoin d'apporter sa clé USB pour montrer les photos de vacances à ses parents/amis).

OpenPhoto propose pour cela deux solutions:

  • un service en ligne proposant de gérer vos photos (importation, catégories, tag, applications smartphones, API...) mais en les hébergeant dans votre "cloud" (Dropbox ou votre espace de stockage Amazon S3 et prochainement Google Drive).
  • une version communautaire et libre permettant d'auto-héberger son propre serveur. Cette version propose en plus un stockage local des photos (sans passer par Dropbox ou Amazon S3).

C'est sur cette deuxième configuration que nous allons nous pencher dans ce billet en proposant une procédure d'installation et de configuration de Open Photo sur une machine Debian Squeeze avec NGinx , PHP-FPM et MySQL (la procédure doit être la même sous Ubuntu, mais je n'ai pas vérifié).

Note: à l'heure de la rédaction de ce billet, il y a peu ou très peu de documentation sur le Web sur comment installer OpenPhoto sur un serveur Nginx (alors que l'on trouve un tas de procédure pour les autres serveurs Web du marché sur le GitHub officiel...). Si une âme généreuse veut proposer une adaptation de ce billet dans le même formalisme que l'installation sous Apache, je pense que le projet serait très reconnaissant... (je m'en suis chargé).

Préparation de l'installation

Je pars sur le principe ou vous avez une machine Debian sur laquelle Nginx et PHP-FPM sont déjà installé. Si ce n'est pas le cas, vous pouvez suivre ce billet.

En plus, il faudra installer les paquets suivants:

On configure PHP en éditant les variable suivantes dans le fichier /etc/php5/fpm/php.ini (à adapter à votre besoin, notamment si vous avez un appareil photo avec un capteur générant des images > 16 Mo):

On active également l'oAuth (pour l'authentification des applications tierces comme par exemple les applis iPhone et Android):

On redémarre PHP-FPM pour prendre en compte les modifications:

Installation de OpenPhoto

On créé ensuite un répertoire dans notre serveur Web (/var/www/openphoto) et on télécharge la dernière version de la version communautaire (libre) de OpenPhoto:

Puis on prépare l'arborescence:

Enfin on génère le fichier de configuration Nginx /etc/nginx/sites-enabled/openphoto pour le site OpenPhoto (à adapter également à votre configuration, notamment au niveau du server_name):

On redémarre NGinx pour prendre en compte le site:

Puis on crée une nouvelle base de donnée MySql. Notez sur une feuille, le nom de la base (openphoto), le nom de l'utilisateur (openphoto) et le mot de passe associé (openphotomdp2012):

Configuration initiale de OpenPhoto

La suite de la configuration se fera à partir d'un navigateur Web, plus besoin de la ligne de commande :).

On doit dans un premier temps créer un compte sur le site OpenPhoto (même si on utilise pas la version en ligne et seulement une version auto-hébergé). Une fois le mail de confirmation reçu et la confirmation effectué, vous pouvez poursuivre l'installation en vous rendant à l'URL: http://openphoto.mondomaine.com (remplacer mondomaine.com par votre domaine que vous avez configurez dans le fichier de configuration NGinx). Si vous n'avez pas de domaine, il est possible de passer directement par l'adresse IP de votre machine.

Vous devez arriver sur la page suivante:

On entre:

  1. l'adresse email associé à votre compte OpenPhoto
  2. on laisse le thème par défaut et on clique sur "Continue to step 2"

On passe à la deuxième étape de l'installation:

On sélectionne:

  1. une base de donnée de type MySQL (que l'on a préalablement créer dans le chapitre précédant)
  2. un stockage local des photos (on peut noter qu'il est possible de mixer stockage local et Dropbox)
  3. on passe à la troisième et dernière étape

Elle permet de configurer notre base de donnée MySQL (reprendre votre petite feuille...):

A la fin de cette procédure, votre serveur OpenPhoto est prêt !

Prise en main et premières impressions

La première chose à faire est d'importer quelques photos. On peut utiliser la page Upload qui propose une importation par Drag & Drop (ou sélection plus classique dans le gestionnaire de fichiers) ou bien l'application dédiée de votre SmarthPhone (Android et iPhone). Les images sont téléchargés sur votre serveur avec une très élégante barre de progression. On note au passage qu'OpenPhoto utilise les dernières technologies HTML5.

On peut ensuite éditer les images en y ajoutant une description, des tags, des coordonnées GPS, des droits (public ou privé) et une licence. Ces informations sont bien sûr récupérées automatiquement si elles sont présentes dans les méta-données du fichier.

Elle est pas belle ma fille ? 🙂

OpenPhoto permet de créer des groupes d'utilisateurs ayant des droits sur certaines photos. Par exemple, si vous créez un groupe Famille, alors il sera possible de classer vos photos familiales dans ce groupe afin qu'elles ne soient visibles que par vos proches. Pour grouper vos photos dans des groupes, le plus simple est d'aller dans le menu Manage, de sélectionner les photos en question (par un simple clic sur le bouton pin) puis de cliquer sur le bouton "Batch edit" et enfin de séléctionner le groupe.

Mes premières impressions sont très bonnes. OpenPhoto est rapide, stable. Le seul problème que j'ai rencontré est au niveau de l'affichage de la Gallery ou les photos sont déformées. Je vais essayer de le pousser un peu en important un grand nombre d'images (je ferai une màj du billet).

On sent une grande marge de manoeuvre au niveau des fonctionnalités proposées. Il est d'ailleurs possible de voter avec la communauté pour influencer la roadmap du logiciel sur les futures fonctions. J'aime le fait qu'OpenPhoto se concentre uniquement sur la gestion des images, contrairement à OwnCloud dont j'avais parlé dans un précédent billet.

Que pensez-vous de ce genre de service ?

Êtes vous prêts à franchir le pas et d'auto-héberger vos photos sur une de vos machines ?

  • Max

    Pour ma pars j’auto-héberge ma galerie photo piwigo( + un blog ) pour la famille.

    en faisant gaffe à la taille des thumbs et des images en visualisation ( pas plus de 1024×768 et +/- 200 ko par image ), on vois à peine que je suis sur ma ligne adsl.

    a l’occaz je testerais OpenPhoto 😉

  • Thor

    Très bon article -sincèrement- mais dans le fond, à quoi ça sert de se servir d’une solution Open-source décentralisée, si c’est pour mettre ces photos sur Dropbox ou autre… enfin et surtout, Openphoto est très limité en fonctionnalité.
    On en revient vite à d’autre solutions plus développée comme Piwigo

    • Je pense que tu as loupé un truc dans le billet.

      Ce qui est vraiment super avec OpenPhoto c’est que tu as le choix. Tu peux héberger toi même tes photos sur ta machine (c’est ce que je fais sur mon serveur).

    • Hub

      T’a pas besoin de dropbox ou quoi que ce soit. Moi je roule OpenPhoto chez mon hébergeur mutualisé avec MySQL et les photo dans le filesystem.

      (c’est pour pouvoir faire ca que j’ai contribué a OpenPhoto)

  • teddy

    nickel je souhaitais justement l’installer sur un petit serveur perso debian. Et je ne savais pas comment faire.
    Je vais regarder ton tuto de plus pres.

    merci

    • Si tu ne connais pas Nginx/php et que tu n’as pas envie de te prendre la tête, tu peux suivre la documentions officiel d’installation avec Apache : https://github.com/openphoto/frontend/blob/master/documentation/guides/InstallationUbuntuApache.markdown

      • teddy

        erf!
        effectivement j’ai suivi le lien que tu donnes pour la version apache.

        mais je suis embété car le tutoriel indique de desactiver le virtual host par defaut et de basculer sur l’hote virtuel openphoto.

        parce que ca me coupe mes autres sites…

        je manques trop de connaissances pour le faire seul.

        C’est pas possible de ne pas passer sur l’hote virtuel openphoto?

        • SurcouF

          Tout dépend du contenu du fichier /var/www/yourdomain.com/src/configs/openphoto-vhost.conf. Si ce dernier n’inclut aucune directive concernant les Virtual Host, à toi de te faire un nouveau fichier /etc/apache2/sites-available/openphoto qui inclut le premier entre deux directives VirtualHost.

  • Pingback: Gérer vos photos avec OpenPhoto, un service auto-hébergé | TICE & FLE | Scoop.it()

  • KevinDaath

    Merci et félicitation pour cet article.

    Je me pose une question tout de même : est-il possible de créer plusieurs utilisateurs ? L’exemple d’utilisation pour la famille m’intéresse. Je souhaiterai que les membres de la famille puissent tous uploader leurs photos (et les rendre visibles aux autres membres), et qu’ils puissent aussi être autonomes vis à vis de leurs photos (les modifier, les supprimer, etc).

    Quant à Piwigo, tout le monde en parle..
    De mon côté je l’ai testé, et je trouve que c’est une véritable usine à gaz ! Certes on peut faire beaucoup de chose, mais trop de choses je pense. Ils devraient désactiver des fonctionnalités par défaut, et simplifier son utilisation..

    • > Quant à Piwigo, tout le monde en parle… De mon
      > côté je l’ai testé, et je trouve que c’est une
      > véritable usine à gaz ! Certes on peut faire
      > beaucoup de chose, mais trop de choses je pense.
      > Ils devraient désactiver des fonctionnalités par
      > défaut, et simplifier son utilisation..

      Je suis le fondateur de Piwigo. Ce point de vue m’intéresse évidemment 🙂

      « Usine à gaz », c’est toujours très relatif, tout dépend de ce à quoi on le compare et à quel niveau (interface utilisateur, performances, etc.) Pour certains Piwigo est très léger, pour d’autres il intègre trop de fonctionnalités de base. Difficile de trouver le bon compromis. Pour certains le simple fait d’avoir besoin d’une base de données, c’est trop.

      En tout cas du point de vue performances, je pense pouvoir dire sans prendre de risque que Piwigo tient la comparaison avec n’importe quel « concurrent ». Surtout si on met beaucoup de photos dans la galerie.

      Quelles seraient les fonctionnalités qu’il faudrait ne pas intégrer par défaut selon toi ?

  • Très sympa ce billet, je découvre une appli que je ne connaissais pas et qui gagne à être connue. Je me demande même si pour les photographes professionnels, cette appli, avec un plugin permettant aux utilisateurs autorisés de commander des tirages, pourrait devenir un « must have »

  • Alexadaums

    Bonjour et encore merci nous faire découvrir grâce à ce blog de nouvelle choses bien sympa!

    Sinon dommage qui n’y est pas d’authentification interne pour limiter les inscriptions.

    @+

  • Marvine

    Super appli !

    Est-ce que vous connaissez le même principe en libre pour héberger des vidéos ?

  • Zword

    Un indice sur comment lancé l’instalation sur un hebergement mutualisé OVH?

    • Pour lançer l’installation sur un hebergement mutalisé OVH, il faut que tu crée un sous-domaine.
      Tout d’abord, crée sur ton serveur ftp un dossier openphoto, ou tu met les sources téléchargées sur le site du projet.
      Dans ton manager OVH, tu crée, par exemple, openphoto.tondomaine.com qui pointe (attention, c’est le plus important) vers le dossier openphoto/src/html .
      Tu patiente et tu lançe ensuite l’installation via ton navigateur comme expliqué dans le tuto.

  • Pingback: Gestion fichiers | Pearltrees()

  • Pingback: [Veille]-Lectures de la journée du 27-04-2012 - Philippe Scoffoni()

  • @nicolargo : As tu trouvé si l’on peut activer les plugins ?
    Comme info a ce sujet, j’ai uniquement vue sur Github que la gestion des plugins n’est pas encore configurable en web
    Via le fichier de configuration, j’ai l’impression que ce n’est pas encore implementer

    • je me repond … il faut juste separer le nom des plugin par une virgule …

  • Bonjour,

    Nico, je trouve super ton site, et je trouve carrément génial d’auto hébergé, mes photos,
    d’ailler si tu as une solution pour faire la même chose avec le smartphone, actuellement j’utilise funambol, j’heberge pas chez mois,

    mais voila la tuto qui manque sur ton super blog !

    qu’elle matos pour héberger ses serveurs chez sois ?

    car j’ai bien sur mon pc, mais c’est mieux un serveur de stockage et la possibilité de faire plusieurs serveur, son blog, son hebergeur de photo, un serveur pour synchronises ça musique et l’écouter en ligne idem pour les videos, mais chez sois, et ne pas être obligé de passer par deezzer et autre.

    Qu’elle matos tu conseil, et qu’elle archi pour un réseaux à la maison ?
    qu’en pensez vous ?

    m

    • Bonjour Issa,

      pas besoin d’une bête de course pour faire de l’auto hébergement chez soi. Je conseille de choisir une machine qui consomme peu de courant (l’objectif est de la laisser allumer 24/24) et qui ne fait de bruit (fanless).

      Il faudra ensuite lui connecter un disque externe (DAS).

      Pour l’architecture réseau, rien de bien compliqué… Il suffit de brancher directement ta machine sur un des ports Ethernet de ta box (par exemple la Freebox propose 4 ports LAN) puis de bien penser à modifier la configuration DMZ de sa box pour y inclure l’adresse IP de son serveur (par exemple chez Free: http://tinyurl.com/58tdcd).

      Bonne chance !

    • max

      Pour s’auto-heberger tu a 2 choix:

      – soit tu a déjà du matériel à recycler ( vieux pc/ordi portable ). c’est économique à court terme, mais il faut surveiller à la consommation électrique pour ne pas qu’a la fin de l’année ça coute plus cher en electricitée que si tu avait acheté une conf dédiée. Attention également au bruit et/ou l’encombrement si c’est un PC. Par contre au début ça permet de se faire sa propre idée pour un investissement minimum.

      – soit tu investit un minimum dans une solution « dédiée » de type mini-pc avec un petit cpu ( Intel Atom, AMD Fusion ).
      Si tu prend cette solution, essaye de prendre une configuration « passive » ( pas de ventilateurs ).

      Fait une recherche sur le net, tu verra qu’il y a de plus en plus de monde à s’auto-heberger.

      A titre d’exemple voila ma conf:
      – atom D510
      – 2 Go de ram
      – 1 disque 320Go 2 pouces 1/2 pour l’OS et les services
      – 1 disque 2 To pour la partie NAS

      tout ça consomme 18 Watts en idle et ça fait pas un bruit…. j’en suis ravi et je reviendrais pas en arrière 🙂

  • Jo

    Testé mais je trouve qu’il manque le téléchargement des images en taille originale par les visiteurs et le téléchargement groupé de plusieurs photos.
    (Je parle bien de download et pas d’upload là)
    Par contre, le gros point fort c’est l’aspect visuel de cet outil.

  • J’ai installé OpenPhoto sur mon dédié, et importé toutes mes photos Flickr dessus ainsi que des nouvelles.

    Actuellement l’outil a des lacunes en possibilité de personnalisation quand on l’héberge : il faut obligatoirement copier et éditer un thème, et pour ça mieux vaut connaître à la fois PHP, JS et CSS !

    On ne peut pas non plus permettre à d’autres utilisateurs d’uploader des photos, mais je suppose que c’est prévu dans le code. Peut être est-ce juste une affaire de permissions dans les groupes.
    Beaucoup de choses en effet sont possibles via l’API, mais pas via l’UI.

    Un outil assez limité pour l’instant mais très prometteur.
    J’ai forké le projet sur GitHub et prévois de contribuer du code au fil du temps. 🙂

  • (Et le lien sur mon nom mène à mon install perso d’OpenPhoto, si ça vous dit de mater ce que ça donne avec plusieurs centaines de photos et un peu de personnalisation du thème par défaut.)

    • J’aime bcp la perso de ton thème OpenPhoto !

  • Il faudra ensuite lui connecter un disque externe (DAS).

    Pour l’architecture réseau, rien de bien compliqué… Il suffit de brancher directement ta machine sur un des ports Ethernet de ta box (par exemple la Freebox propose 4 ports .

  • Bonjour je suis en pleine recherche pour faire une mediabank en entreprise…
    déplacer toutes les photos d’une entreprise dans une application type galerie.

    Par contre il faudrait des fonctions de recherches et d’indexations basé sur exif et IPTC est ce possible sous openphoto ?

  • Actuellement l’outil a des lacunes en possibilité de personnalisation quand on l’héberge : il faut obligatoirement copier et éditer un thème, et pour ça mieux vaut connaître à la fois PHP, JS et CSS !

  • coppermine

    Moi personnellement j’utilise coppermine sur un serveur personnel. Pour partager les photos entre famille. Il est facile d’utilisation.

  • Pingback: [Tutoriel] A la recherche d'un équivalent à PhotoStation : Piwigo/CentOS 7 - Zwindler's Reflection()