cover for Les galeries de photos

Les galeries de photos

Des belles photos

Je me suis remis un peu à prendre des photos récemment, et bien que le tri avance doucement (cf l'épisode précédent), il me manque toujours un endroit pour publier mes photos sur internet.

Alors oui j'ai bien un compte sur une instance de mastodon (@sodimel@mamot.fr) et un compte sur une instance de pixelfed (@sodimel@pixelfed.social), mais ce ne sont pas des lieux qui m'appartiennent, et ils ne sont pas vraiment adaptés pour poster des grandes galeries.

J'ai bien un petit site que j'avais créé suite au dernier épisode, mais niveau esthétique c'est vraiment zéro, pis c'est pas pratique parce qu'il faut envoyer chaque photo une par une.

De plus, les images sont super optimisées (contrainte de l'ADSL d'il y a encore quelques mois, mais c'est du passé tout ça).

Quand tout à coup

La grippe joins the battle

Avec 40°C de fièvre et en arrêt pendant quelques jours, j'ai tout d'un coup du temps libre à ne plus savoir qu'en faire (c'est une façon de parler, les 4 jours d'arrêt furent bien occupés).

L'esprit tout enfiévré, je repense à mon ptit site de partage de photos. Jme dis que quand même, je suis un développeur Django aguerri maintenant (je suis employé comme développeur depuis 5 ans (6 ans si l'année d'alternance compte), ça y est je suis senior ?), et que je pourrais sûrement faire quelques chose pour améliorer mon projet.

Je passe donc un peu de temps à me balader sur codepen à la rechercher de présentations de galeries sympa, et je finis par tomber sur Magnific Gallery de Michal Niewitala. J'adapte le projet (vous pouvez le retrouver ici) pour ajouter un système de grid et virer tout le superflu, et je me mets à l'intégrer sur mon site de galeries.

J'ai ensuite passé toute une soirée et une partie d'une matinée pour faire... un tout petit écran très simple (ah ben ok je suis pas encore senior, je maîtrise pas encore super bien l'admin de Django).

Grosso modo j'ai un nouveau bouton sur l'écran qui liste les galeries, et ce bouton mène vers une vue (accessible uniquement pour ceux qui ont la permission de créer des galeries, j'ai fait les choses bien quand même) qui permet d'héberger plusieurs fichiers d'un coup.

écran super simple

Concrètement ma vue crée une galerie vide, et héberge chaque image dans cette galerie. Lorsque c'est fini, l'utilisateur est redirigé vers la galerie nouvellement créée, et il peut la remplir comme il le souhaite.

Ce tout petit écran est ce qui me manquait pour me motiver à créer des galeries sur ce site (et la nouvelle présentation est trop chouette aussi, ça joue vraiment la manière de présenter des photos quand même). J'ai donc créé une nouvelle galerie, sobrement intitulée "Best of 2", qui contient une sélection de photos prises entre fin 2022 (date à laquelle j'avais fait le best of initial) et fin 2024.

Voici le lien vers la galerie Best of 2

Les photos ne sont pas triées ni décrites (ça sera le travail d'une autre fois), mais elles sont beaucoup plus grandes qu'avant (et bim, une nouvelle nouveauté du projet !).

En gros avant le serveur était positionné en bout de ligne ADSL, et pour qu'on puisse accéder au site depuis l'extérieur (pas depuis la maison), j'avais réduit énormément la taille des images, et je les avait aussi optimisées de ouf.

Maintenant elles sont optimisées à 75% de qualité (pour les vignettes et les images pleine taille), les vignettes sont plus grandes (~600px) et les photos sont également plus grandes (2500x2500px max) !

Le serveur a l'air de réussir à suivre, bien que l'hébergement d'une galerie entière via mon nouvel écran prenne plus de 10 minutes (redimensionner les images est une opération coûteuse), et que l'affichage d'une galerie si gunicorn n'avait pas de worker qui tournait (si le site était en veille) prenne un peu de temps.

Exemple de nouveau rendu d'une galerie sur le site

Et si je veux une galerie moi aussi ?

Vous en avez de la chance, mon ptit projet est open source, et vous pouvez donc l'installer, le modifier, le configurer, le déployer gratuitement !

Le projet s'appelle django-simple-gallery (parce que c'est un projet Django et qu'il permet de faire des galeries simplement), et il est hébergé sur gitlab.

Il me reste à faire une page qui explique comment déployer le projet, mais en attendant si vous avez besoin d'aide n'hésitez pas à me contacter, je rêve d'avoir un projet que j'ai créé utilisé par quelqu'un d'autre, ça me ferait énormément plaisir de savoir que j'ai fait quelque chose d'utile :)

Bonne journée, à la prochaine !