Maintenant que nous disposons d’une solution de stockage en ligne, la prochaine étape consistera à mettre en place une application web pour partager ses photos avec le reste du monde.
Bien que de très nombreuses solutions existent, et de très bonne qualité (voir mon article sur les alternatives à Google), mon choix s’est porté sur une petite application du nom de PhotoShow.
Je l’ai choisi pour plusieurs raisons. Tout d’abord, elle ne nécessite aucune base de données. Ensuite, elle ne nécessite pratiquement aucune maintenance, dans la mesure où les photos sont analysées automatiquement. Est également automatique la génération des miniatures. Et malgré sa simplicité, il reste possible de définir tout ou partie de la galerie comme étant privée, dont l’accès sera réservé aux utilisateurs de votre choix, ou simplement protégé par mot de passe.
Enfin, l’arborescence des fichiers n’a pas besoin de se trouver dans l’arborescence du site. Cela permet d’éviter que n’importe qui (les moteurs de recherche par exemple) puisse aspirer sans vergogne vos photos. On respecte ainsi une autre prérogative de ma série d’articles : préserver la confidentialité de nos données.
Hôte virtuel
Première chose, comme d’habitude, on s’occupe de l’hôte virtuel dans apache :
nano /etc/apache2/sites-available/photos.exemple.fr
<VirtualHost *:80>
ServerName photos.exemple.fr
Redirect / https://photos.exemple.fr/
</VirtualHost>
<VirtualHost *:443>
ServerName photos.exemple.fr
DocumentRoot /var/www/exemple.fr/photos/www
SSLEngine On
SSLCertificateFile /scripts/certificate_authority/apache/photos.exemple.fr.crt
SSLCertificateKeyFile /scripts/certificate_authority/apache/photos.exemple.fr.key
CustomLog /var/www/exemple.fr/photos/log/access.log
ErrorLog /var/www/exemple.fr/photos/log/error.log
</VirtualHost>
Nous avons créé un hôte virtuel non sécurisé redirigeant vers un hôte virtuel sécurisé, nous avons déjà vu le principe. Créons maintenant les certificats :
/scripts/certificate_authority/make_request apache photos.exemple.fr
/scripts/certificate_authority/sign_request apache photos.exemple.fr
chown www-data:www-data /scripts/certificate_authority/apache/*
Warning : Lorsque le Common Name vous sera demandé, indiquez le nom de domaine ! Et dans notre cas, acceptez la création d’une clé sans mot de passe !
On active le site, et on redémarre apache :
a2ensite photos.exemple.fr
/etc/init.d/apache2 restart
Installation de PhotoShow
On créé l’arborescence du site :
mkdir -p /var/www/exemple.fr/photos/{www,log,thumbs}
Puis on télécharge et on installe PhotoShow :
cd /usr/src
git clone git://github.com/thibaud-rohmer/PhotoShow.git
cp -R PhotoShow/* /var/www/exemple.fr/photos/www/
chown -R www-data:www-data /var/www/exemple.fr/photos
On configure l’application :
nano /var/www/exemple.fr/photos/www/config.php
$config->photos_dir = "/var/public-docs/Photos";
$config->ps_generated = "/var/www/exemple.fr/photos/thumbs";
Vous noterez le répertoire /var/public-docs/Photos qu’il faut créer, et qui contiendra donc vos photos.
mkdir /var/public-docs/Photos
L’application en elle-même est prête, vous pouvez la visiter depuis l’adresse http://photos.exemple.fr.
Vous pouvez créer un compte “anonyme”, ou “invites”, protégé par mot de passe, si vous ne voulez pas que des personnes non identifiées aient accès à votre galerie. Vous pouvez aussi simplement la protéger avec un mot de passe, sans avoir besoin de créer un utilisateur particulier.
Envoyer automatiquement ses photos prises avec un smartphone Android
Facile, si vous avez installé l’application WebDav File Manager comme indiqué dans mon précédent article (ou toute autre application Android capable de se synchroniser avec un dépôt WebDav ou SSH).
Il vous suffit de mettre en place une synchronisation entre le répertoire où vos photos sont stockées sur votre smartphone (DCIM/) et https://files.exemple.fr/public/Photos.
Important : Attention si vous mettez d’autres photos depuis une autre source, ces photos seront aussi copiées sur votre téléphone. Pour l’éviter, vous pouvez créer un dossier /var/public-docs/Photos/Android, que vous utiliserez pour la synchronisation.
Le tutoriel d’aujourd’hui est déjà terminé. Nous avons vu des choses relativement compliquées à mettre en oeuvre, mais c’était aussi pour nous simplifier la vie plus tard. Je vous avais bien dis que les prochains articles seraient plus simples !
Richard Dern
Échanger autour de ce texte
Si vous souhaitez réagir publiquement, un fil dédié vous attend.
Ouvrir le fil de discussion