Pourquoi auto-héberger PhotoPrism sur un VPS
Là où Immich vise l'expérience cloud complète avec sauvegarde mobile temps réel, PhotoPrism privilégie l'indexation et l'organisation d'une photothèque existante, souvent volumineuse, posée sur un système de fichiers. Il analyse vos dossiers, classe les photos par labels (montagne, plage, voiture), détecte les visages, lit les EXIF et géocode les clichés. Tout cela s'exécute localement via TensorFlow embarqué. L'héberger sur un VPS a un double intérêt : centraliser des archives photo dispersées sur un disque accessible partout, et bénéficier d'un étiquetage automatique sans jamais transmettre les images à un service tiers. PhotoPrism fonctionne avec MariaDB pour de bonnes performances et lit directement un dossier originals que vous remplissez par WebDAV, rsync ou montage.
Les atouts d'un PhotoPrism auto-hébergé
- Étiquetage automatique par IA locale : recherche par mots-clés, lieux et couleurs sans cloud.
- Indexation d'archives existantes posées sur le disque, via WebDAV, rsync ou montage réseau.
- Détection des doublons et des photos similaires pour nettoyer une collection encombrée.
- Cartes interactives basées sur les coordonnées GPS extraites des métadonnées EXIF.
- Mode lecture seule possible : PhotoPrism indexe sans jamais modifier vos fichiers originaux.
- Interface PWA installable, accessible depuis n'importe quel navigateur de votre réseau.
Prérequis matériels et logiciels
PhotoPrism recommande au moins 4 Go de RAM physique, dont une partie servira aux opérations TensorFlow d'indexation ; en dessous, l'analyse devient lente ou échoue sur les grandes bibliothèques. 2 vCPU suffisent pour un usage personnel, mais l'indexation initiale d'une grosse archive bénéficie de cœurs supplémentaires. Le stockage doit couvrir vos originals plus environ 30 % pour les miniatures et le cache. Côté logiciel : Docker et docker compose v2, MariaDB 10.5+ (fortement préférable à SQLite pour les grandes collections), un domaine (galerie.votreentreprise.ma), et idéalement de la swap pour absorber les pics d'indexation sur les VPS modestes.
Déployer PhotoPrism étape par étape
Préparer le VPS et les volumes
Installez Docker, puis créez deux dossiers persistants : /opt/photoprism/originals pour vos photos et /opt/photoprism/storage pour le cache et la base d'index. Séparer ces volumes simplifie les sauvegardes.
Déclarer PhotoPrism et MariaDB
Dans docker-compose.yml, ajoutez un service mariadb avec un volume dédié et un service photoprism (image photoprism/photoprism:latest). Liez-les via PHOTOPRISM_DATABASE_DRIVER=mysql et pointez PHOTOPRISM_ORIGINALS_PATH vers votre dossier de photos.
Définir l'administrateur et le mode d'indexation
Renseignez PHOTOPRISM_ADMIN_PASSWORD et activez PHOTOPRISM_READONLY=true si vous voulez qu'il indexe sans toucher aux originaux. Lancez ensuite la stack avec docker compose up -d.
Importer et lancer la première indexation
Copiez vos photos dans le dossier originals via rsync ou WebDAV, puis déclenchez l'analyse depuis l'interface ou en ligne de commande avec docker compose exec photoprism photoprism index. C'est là que l'IA génère labels et miniatures.
Ajouter un reverse proxy avec SSL
Placez Caddy ou Traefik devant PhotoPrism pour galerie.votreentreprise.ma, avec génération automatique du certificat Let's Encrypt. Transmettez bien les en-têtes pour conserver le bon schéma https dans l'application.
PhotoPrism ou Immich : lequel choisir
| Critère | PhotoPrism | Immich |
|---|---|---|
| Objectif principal | Indexer et organiser une photothèque existante | Cloud photo complet avec sauvegarde mobile |
| Application mobile | PWA, pas de sauvegarde auto native | Apps iOS/Android avec backup automatique |
| Base de données | MariaDB ou SQLite | PostgreSQL avec extension vectorielle |
| Recherche IA | Labels TensorFlow par contenu et couleur | Recherche sémantique et reconnaissance faciale avancée |
| RAM recommandée | 4 Go | 6 à 8 Go |
| Modèle de fichiers | Lit un dossier originals, mode lecture seule possible | Gère sa propre arborescence d'upload |
| Multi-utilisateurs | Limité, orienté collection unique | Bibliothèques isolées par utilisateur |
| Cas d'usage idéal | Archiver et fouiller de gros dossiers photo | Remplacer Google Photos au quotidien |
Montez votre dossier originals en lecture seule (:ro dans le volume Docker) et activez PHOTOPRISM_READONLY=true. PhotoPrism indexera et générera labels et miniatures dans le volume storage séparé, sans jamais risquer de modifier ou supprimer un fichier original. Vous pouvez ainsi pointer en toute sécurité vers une archive précieuse, et même synchroniser ce dossier via rsync depuis un autre serveur.