Vous rêvez d’un cloud personnel pour stocker, organiser et consulter vos photos depuis n’importe où, tout en profitant de fonctionnalités d’intelligence artificielle pour trier vos images automatiquement ? Avec un Raspberry Pi et PhotoPrism, c’est possible, économique et même ludique ! Dans ce tutoriel, nous allons configurer étape par étape une galerie photo sécurisée et performante à l’aide de Docker. Que vous soyez débutant ou habitué, suivez le guide, on va tout expliquer clairement !
Prérequis
Avant de commencer, assurez-vous d’avoir :
-
Un Raspberry Pi (idéalement un Raspberry Pi 4 avec 4 ou 8 Go de RAM pour de meilleures performances).
-
Raspberry Pi OS (version Lite ou Desktop, 64 bits recommandé pour PhotoPrism).
-
Une carte SD (minimum 32 Go, 128 Go recommandé pour stocker les photos).
-
Une connexion Internet stable.
-
Un ordinateur pour configurer le Raspberry Pi (via SSH ou directement).
-
Un domaine (optionnel, pour un accès externe sécurisé).
-
Un peu de curiosité et d’envie d’apprendre !
Étape 1 : Préparer le Raspberry Pi
-
Installer Raspberry Pi OS :
-
Flashez l’image sur votre carte SD avec Raspberry Pi Imager.
-
Activez SSH (dans l’Imager ou en créant un fichier ssh vide à la racine de la carte SD) et configurez le Wi-Fi ou Ethernet.
-
Mettre à jour le système : Connectez-vous via SSH (ssh pi@<IP_du_Raspberry>) ou ouvrez un terminal, puis exécutez :bash
sudo apt update && sudo apt full-upgrade -y
-
Configurer le stockage : Si vous utilisez un disque externe ou une carte SD volumineuse, montez-le correctement (par exemple, sous /mnt/storage) :bash
sudo mkdir /mnt/storage sudo mount /dev/sda1 /mnt/storage
Pour un montage automatique, ajoutez une entrée dans /etc/fstab :bashsudo nano /etc/fstab
Ajoutez (adaptez /dev/sda1 selon votre disque) :/dev/sda1 /mnt/storage ext4 defaults 0 2
Étape 2 : Installer Docker et Docker Compose
Docker est l’outil idéal pour déployer PhotoPrism de manière simple et reproductible.
-
Installer Docker :bash
sudo apt update sudo apt install docker.io -y sudo systemctl enable docker sudo systemctl start docker
Ajoutez votre utilisateur au groupe Docker pour éviter d’utiliser sudo :bashsudo usermod -aG docker $USER
Déconnectez-vous et reconnectez-vous pour appliquer les changements. -
Installer Docker Compose :bash
sudo apt install docker-compose -y
Vérifiez les versions installées :bashdocker --version docker-compose --version
Étape 3 : Configurer PhotoPrism avec Docker Compose
PhotoPrism est une application open-source qui organise vos photos et utilise l’IA pour les classer (reconnaissance de visages, objets, lieux, etc.). Voici comment le déployer.
-
Créer un dossier pour le projet :bash
mkdir ~/photoprism && cd ~/photoprism
-
Créer un fichier .env pour les variables sensibles : Créez un fichier pour stocker les mots de passe et configurations :bash
nano .env
Ajoutez :envPHOTOPRISM_ADMIN_PASSWORD=mon_mot_de_passe_sécurisé PHOTOPRISM_DB_USER=photoprism PHOTOPRISM_DB_PASSWORD=autre_mot_de_passe_sécurisé PHOTOPRISM_DB_NAME=photoprism
Générez des mots de passe sécurisés avec :bashopenssl rand -base64 12
Protégez le fichier :bashchmod 600 .env
-
Créer le fichier docker-compose.yml :bash
nano docker-compose.yml
Collez le contenu suivant :yamlversion: '3.8' services: photoprism: image: photoprism/photoprism:latest environment: - PHOTOPRISM_ADMIN_PASSWORD=${PHOTOPRISM_ADMIN_PASSWORD} - PHOTOPRISM_DB_DRIVER=mysql - PHOTOPRISM_DB_NAME=${PHOTOPRISM_DB_NAME} - PHOTOPRISM_DB_USER=${PHOTOPRISM_DB_USER} - PHOTOPRISM_DB_PASSWORD=${PHOTOPRISM_DB_PASSWORD} - PHOTOPRISM_HTTP_PORT=2342 - PHOTOPRISM_SITE_URL=https://photos.votre-domaine.com ports: - "2342:2342" depends_on: - photoprism-db volumes: - /mnt/storage/photos:/photoprism/originals - /mnt/storage/photoprism/storage:/photoprism/storage restart: unless-stopped photoprism-db: image: mariadb:10.11 environment: - MYSQL_ROOT_PASSWORD=${PHOTOPRISM_DB_PASSWORD} - MYSQL_DATABASE=${PHOTOPRISM_DB_NAME} - MYSQL_USER=${PHOTOPRISM_DB_USER} - MYSQL_PASSWORD=${PHOTOPRISM_DB_PASSWORD} volumes: - /mnt/storage/photoprism-db:/var/lib/mysql restart: unless-stopped
Explications :-
Volumes : /mnt/storage/photos contient vos photos, /mnt/storage/photoprism/storage stocke les vignettes et métadonnées, et /mnt/storage/photoprism-db contient la base de données MariaDB. Créez ces dossiers au préalable :bash
sudo mkdir -p /mnt/storage/photos /mnt/storage/photoprism/storage /mnt/storage/photoprism-db
-
Ports : PhotoPrism utilise le port 2342 par défaut.
-
Variables d’environnement : Les variables sensibles sont lues depuis le fichier .env. PHOTOPRISM_ADMIN_PASSWORD définit le mot de passe de l’admin initial.
-
-
Lancer les conteneurs :bash
docker-compose up -d
Vérifiez que tout fonctionne :bashdocker-compose ps docker-compose logs photoprism
-
Accéder à PhotoPrism : Ouvrez un navigateur et allez sur http://<IP_du_Raspberry>:2342. Connectez-vous avec l’utilisateur admin et le mot de passe défini dans PHOTOPRISM_ADMIN_PASSWORD. Suivez les instructions pour indexer vos photos (placez-les dans /mnt/storage/photos).
Étape 4 : Sécuriser l’accès
Exposer PhotoPrism à Internet sans protection est risqué. Voici comment sécuriser votre serveur.
-
Configurer un reverse proxy avec Nginx : Installez Nginx :bash
sudo apt install nginx -y
Créez un fichier de configuration :bashsudo nano /etc/nginx/sites-available/photoprism
Ajoutez :nginxserver { listen 80; server_name photos.votre-domaine.com; location / { proxy_pass http://localhost:2342; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Activez le site et redémarrez Nginx :bashsudo ln -s /etc/nginx/sites-available/photoprism /etc/nginx/sites-enabled/ sudo systemctl restart nginx
-
Ajouter HTTPS avec Let’s Encrypt : Installez Certbot :bash
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d photos.votre-domaine.com
Suivez les instructions pour obtenir un certificat SSL. Cela activera HTTPS automatiquement. -
Configurer le pare-feu : Installez et configurez UFW :bash
sudo apt install ufw -y sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable
Étape 5 : Gestion des utilisateurs
PhotoPrism permet de créer des utilisateurs supplémentaires via son interface web :
-
Connectez-vous en tant qu’admin (http://<IP_du_Raspberry>:2342 ou https://photos.votre-domaine.com).
-
Allez dans Settings > Users et créez des comptes pour d’autres utilisateurs.
-
Pour plus de sécurité, activez l’authentification à deux facteurs (2FA) si disponible dans PhotoPrism (vérifiez les mises à jour, car cette fonctionnalité peut varier).
Étape 6 : Sauvegardes
Pour protéger vos photos et métadonnées :
-
Sauvegarder les volumes Docker : Créez un script de sauvegarde :bash
nano backup.sh
Ajoutez :bash#!/bin/bash BACKUP_DIR="/mnt/storage/backups" mkdir -p $BACKUP_DIR tar -czf $BACKUP_DIR/photos-$(date +%F).tar.gz /mnt/storage/photos tar -czf $BACKUP_DIR/photoprism-storage-$(date +%F).tar.gz /mnt/storage/photoprism/storage tar -czf $BACKUP_DIR/photoprism-db-$(date +%F).tar.gz /mnt/storage/photoprism-db
Rendez-le exécutable et planifiez-le avec cron :bashchmod +x backup.sh crontab -e
Ajoutez pour une sauvegarde quotidienne à 2h du matin :0 2 * * * /home/pi/photoprism/backup.sh
-
Stocker les sauvegardes à distance (optionnel) : Utilisez rsync pour envoyer les sauvegardes vers un NAS ou un cloud :bash
rsync -av /mnt/storage/backups user@remote-server:/path/to/backups
Étape 7 : Optimiser les fonctionnalités IA
PhotoPrism utilise l’IA pour la reconnaissance de visages, d’objets et de lieux. Sur un Raspberry Pi, cela peut être lent, surtout avec un grand nombre de photos. Voici quelques conseils :
-
Performances : Un Raspberry Pi 4 avec 8 Go de RAM est recommandé. Si l’indexation est trop lente, réduisez la qualité des vignettes dans les paramètres de PhotoPrism.
-
Accélération matérielle : Si vous avez un Coral TPU ou un GPU externe, configurez-les selon la documentation de PhotoPrism.
-
Désactiver l’IA : Si nécessaire, désactivez les fonctionnalités IA dans les paramètres pour économiser des ressources.
Étape 8 : Dépannage
-
Vérifier les logs :bash
docker-compose logs photoprism
-
Redémarrer les services :bash
docker-compose restart
-
Problèmes de mémoire : Surveillez avec htop. Si nécessaire, ajoutez un fichier swap :bash
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
Conclusion
Félicitations ! Vous avez maintenant un cloud personnel avec une galerie photo alimentée par PhotoPrism, sécurisé et sauvegardé, le tout sur un Raspberry Pi. Vous pouvez personnaliser davantage en ajoutant d’autres services (comme Nextcloud pour les fichiers) ou en explorant des projets IA.