[{"data":1,"prerenderedAt":188},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-photoprism-ma-fr":6,"promo-bar-likely":187},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-heberger-photoprism-ma-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":129,"ctaBody":130,"ctaButton":131,"ctaUrl":132,"relatedPosts":133},83,"heberger-photoprism",{"fr":10,"en":12,"ar":13,"es":14},"host-photoprism-on-your-own-vps","استضافة-photoprism-على-خادمك-الافتراضي-الخاص-vps","alojar-photoprism-en-un-vps","Héberger PhotoPrism sur votre propre VPS","Déployez PhotoPrism sur votre VPS : gestionnaire de photos auto-hébergé avec étiquetage IA, recherche et SSL via Docker. Guide complet.",8,0,false,"2026-03-29T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-photoprism-poster.svg",{"categorySlug":34,"appSlug":35},"collaboration","photoprism","PhotoPrism est un gestionnaire de photos auto-hébergé qui classe automatiquement vos clichés par lieu, par contenu et par couleur grâce à du machine learning embarqué. Sur votre propre VPS, il transforme une collection désordonnée en bibliothèque consultable, sans aucun service cloud externe. Ce guide couvre l'installation complète, la configuration du reverse proxy nginx, l'optimisation des performances ML sur VPS modeste, le dépannage des erreurs fréquentes et une stratégie de sauvegarde solide.",[38,42,52,55,74,77,80,83,86,126],{"type":39,"title":40,"body":41},"h2","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.",{"type":43,"title":44,"items":45},"ul","Les atouts d'un PhotoPrism auto-hébergé",[46,47,48,49,50,51],"É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.",{"type":39,"title":53,"body":54},"Prérequis chiffrés : RAM, CPU, stockage et réseau","PhotoPrism est gourmand en mémoire dès que TensorFlow entre en jeu. Voici les seuils à respecter pour éviter les mauvaises surprises. Sans GPU et avec le moteur ML actif, comptez **2 Go de RAM minimum** : en dessous, le processus d'indexation déclenche un OOM (out of memory) et le conteneur redémarre en boucle. Avec le ML pleinement actif (détection de visages, classification de scènes), **4 Go de RAM sont recommandés** — c'est le palier confort pour une bibliothèque de 10 000 à 50 000 photos. Un **vCPU minimum** suffit pour naviguer, mais l'indexation initiale d'une grande archive tire parti de 2 à 4 cœurs : PhotoPrism distribue le travail via `PHOTOPRISM_WORKERS`. Le port par défaut est **2342** ; pensez à l'ouvrir temporairement pour un premier test avant de placer le reverse proxy. Côté stockage, provisionnez vos `originals` (la taille réelle de votre bibliothèque) **plus 30 à 40 %** pour les miniatures multi-résolutions, le cache et l'index MariaDB. Une bibliothèque de 100 Go d'originaux génère généralement entre 20 et 35 Go de données dérivées. Ajoutez une partition de **swap de 2 Go minimum** si votre VPS a moins de 4 Go de RAM : elle absorbe les pics d'indexation sans crash, au prix d'une légère lenteur.",{"type":56,"title":57,"steps":58},"steps","Déployer PhotoPrism étape par étape",[59,62,65,68,71],{"title":60,"body":61},"Préparer le VPS et les volumes","Installez Docker, puis créez deux dossiers persistants : `\u002Fopt\u002Fphotoprism\u002Foriginals` pour vos photos et `\u002Fopt\u002Fphotoprism\u002Fstorage` pour le cache et la base d'index. Séparer ces volumes simplifie les sauvegardes.",{"title":63,"body":64},"Déclarer PhotoPrism et MariaDB","Dans `docker-compose.yml`, ajoutez un service `mariadb` avec un volume dédié et un service `photoprism` (image `photoprism\u002Fphotoprism:latest`). Liez-les via `PHOTOPRISM_DATABASE_DRIVER=mysql` et pointez `PHOTOPRISM_ORIGINALS_PATH` vers votre dossier de photos.",{"title":66,"body":67},"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`.",{"title":69,"body":70},"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.",{"title":72,"body":73},"Configurer nginx comme reverse proxy avec SSL Certbot","Installez nginx et certbot sur l'hôte. Créez un bloc server dans `\u002Fetc\u002Fnginx\u002Fsites-available\u002Fphotoprism.conf` qui écoute sur le port 80, redirige vers 443 et proxifie vers `http:\u002F\u002F127.0.0.1:2342`. Ajoutez les directives `proxy_set_header Host $host`, `proxy_set_header X-Real-IP $remote_addr` et `proxy_set_header X-Forwarded-Proto $scheme` pour que PhotoPrism détecte correctement le schéma HTTPS. Obtenez le certificat avec `certbot --nginx -d galerie.votredomaine.com`. Le renouvellement automatique est géré par le timer systemd de certbot — vérifiez avec `systemctl status certbot.timer`.",{"type":39,"title":75,"body":76},"Accès mobile : application iOS et Android","PhotoPrism ne propose pas d'application native de sauvegarde automatique comme Immich, mais son interface PWA (Progressive Web App) est optimisée pour mobile : ajoutez-la à l'écran d'accueil depuis Safari (iOS) ou Chrome (Android) pour une expérience quasi-native. Pour la consultation et la recherche, c'est suffisant. Si vous souhaitez un accès hors réseau local, activez le HTTPS (voir l'étape reverse proxy) : la PWA ne s'installe qu'en contexte sécurisé. Pour la sauvegarde depuis le téléphone, la solution complémentaire habituelle est **Syncthing** ou **rclone** : configurez-les pour envoyer le dossier DCIM vers `\u002Fopt\u002Fphotoprism\u002Foriginals` sur le VPS, puis planifiez une ré-indexation automatique via un cron qui exécute `docker compose exec -T photoprism photoprism index --cleanup`.",{"type":39,"title":78,"body":79},"Optimisation ML sur VPS sans GPU : les variables clés","Sur un VPS standard (pas de GPU dédié), TensorFlow tourne en mode CPU. Trois variables d'environnement permettent d'ajuster le rapport qualité\u002Fressources. `PHOTOPRISM_WORKERS` contrôle le nombre de threads d'indexation parallèles — mettez-le au nombre de vCPU disponibles (2 ou 4) pour accélérer l'indexation initiale sans saturer le CPU. Sur un VPS à 1 vCPU, forcez-le à `1` pour éviter la contention. `PHOTOPRISM_DISABLE_TENSORFLOW` (valeur `true`) désactive entièrement le moteur ML : plus de classification automatique ni de détection de visages, mais l'indexation est significativement plus rapide pour l'indexation et la consommation RAM chute à moins d'1 Go. Utile pour une migration initiale d'une très grosse archive — réactivez ensuite le ML pour relancer l'analyse. `PHOTOPRISM_DETECT_NSFW` (valeur `true`) active le filtre de contenu inapproprié, au prix d'un passage supplémentaire du modèle sur chaque image : ne l'activez que si vous en avez réellement besoin, car il alourdit l'indexation. Pour les VPS entre 2 et 4 Go de RAM, la configuration recommandée est `PHOTOPRISM_WORKERS=2`, `PHOTOPRISM_DETECT_NSFW=false` et TensorFlow actif — vous obtenez le ML sans risque d'OOM.",{"type":39,"title":81,"body":82},"Dépannage : les erreurs les plus fréquentes","**OOM (Out of Memory) dès le démarrage ou pendant l'indexation.** C'est la première erreur sur les VPS à 1 Go de RAM. La signature dans les logs Docker : `Killed` ou `signal: killed` sur le processus photoprism. Solution immédiate : ajouter du swap (`fallocate -l 2G \u002Fswapfile && chmod 600 \u002Fswapfile && mkswap \u002Fswapfile && swapon \u002Fswapfile`) et ajouter la ligne dans `\u002Fetc\u002Ffstab` pour le rendre persistant. Solution durable : passer à un VPS avec 2 Go minimum. **Indexation interminable qui ne se termine jamais.** Sur une bibliothèque de 50 000 photos sur un VPS à 2 vCPU, la première indexation complète (avec ML) peut prendre 6 à 24 heures. C'est normal. Suivez la progression dans les logs avec `docker compose logs -f photoprism`. Si le processus semble bloqué sans avancer depuis plus d'une heure, vérifiez l'utilisation CPU : `docker stats photoprism`. Si elle est à 0 %, redémarrez le service. **Problèmes de permissions sur les volumes.** PhotoPrism tourne avec l'UID 1000 par défaut. Si `\u002Fopt\u002Fphotoprism\u002Foriginals` appartient à root, l'accès échoue silencieusement. Corrigez avec `chown -R 1000:1000 \u002Fopt\u002Fphotoprism`. Vérifiez aussi que le volume `storage` est inscriptible : c'est là que PhotoPrism écrit les miniatures et l'index local. **L'interface charge mais les photos n'apparaissent pas.** Vérifiez que l'indexation a bien été lancée (`photoprism index`) et non seulement le service démarré. L'import initial n'est pas automatique.",{"type":39,"title":84,"body":85},"Stratégie de sauvegarde : originals, storage et base de données","Une sauvegarde PhotoPrism efficace distingue trois composants aux besoins différents. **Le dossier `originals`** contient vos fichiers maîtres (JPEG, RAW, vidéos) : c'est l'irremplaçable. Sauvegardez-le en priorité avec une copie hors site — `rclone sync \u002Fopt\u002Fphotoprism\u002Foriginals remote:backup\u002Foriginals` vers un stockage objet (Backblaze B2, S3) fonctionne bien et supporte les reprises incrémentales. Fréquence recommandée : quotidienne. **Le dossier `storage`** contient les miniatures générées, le cache et les données de sidecar. Il peut être **entièrement reconstruit** par une ré-indexation (`photoprism index --force`) : sauvegardez-le uniquement si vous voulez éviter de relancer une longue indexation après incident. Un snapshot hebdomadaire suffit. **La base MariaDB** stocke l'index des métadonnées, les albums, les labels manuels et les faces identifiées — tout le travail de curation que vous avez fait manuellement. Sauvegardez-la séparément avec un dump régulier : `docker compose exec mariadb mysqldump -u photoprism -p photoprism > \u002Fopt\u002Fbackup\u002Fphotoprism-db-$(date +%Y%m%d).sql`. Planifiez ce dump en cron et chiffrez-le avant l'envoi hors site. Si vous utilisez SQLite au lieu de MariaDB, copiez simplement le fichier `.db` après avoir arrêté PhotoPrism pour garantir la cohérence.",{"type":87,"title":88,"headers":89,"rows":93},"comparison","PhotoPrism ou Immich : lequel choisir",[90,91,92],"Critère","PhotoPrism","Immich",[94,98,102,106,110,114,118,122],[95,96,97],"Objectif principal","Indexer et organiser une photothèque existante","Cloud photo complet avec sauvegarde mobile",[99,100,101],"Application mobile","PWA, pas de sauvegarde auto native","Apps iOS\u002FAndroid avec backup automatique",[103,104,105],"Base de données","MariaDB ou SQLite","PostgreSQL avec extension vectorielle",[107,108,109],"Recherche IA","Labels TensorFlow par contenu et couleur","Recherche sémantique et reconnaissance faciale avancée",[111,112,113],"RAM recommandée","4 Go (2 Go minimum sans GPU)","6 à 8 Go",[115,116,117],"Modèle de fichiers","Lit un dossier originals, mode lecture seule possible","Gère sa propre arborescence d'upload",[119,120,121],"Multi-utilisateurs","Limité, orienté collection unique","Bibliothèques isolées par utilisateur",[123,124,125],"Cas d'usage idéal","Archiver et fouiller de gros dossiers photo","Remplacer Google Photos au quotidien",{"type":127,"body":128},"tip","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.","Organisez vos archives photo en toute autonomie","Le VPS Cloud ServOrbit met à disposition la RAM, le stockage et Docker nécessaires à PhotoPrism, son moteur TensorFlow et MariaDB. Indexez des milliers de clichés et retrouvez-les en quelques mots-clés, sans cloud tiers.","Déployer PhotoPrism sur un VPS Cloud","\u002Fapplications\u002Fcollaboration\u002Fphotoprism",[134,153,170],{"id":135,"slug":136,"slugs":137,"title":141,"excerpt":142,"readTime":143,"views":144,"isPinned":19,"noindex":19,"publishedAt":145,"updatedAt":146,"category":147,"categories":148,"featuredImage":30,"bgImage":31,"posterImage":150,"relatedSolution":151},71,"heberger-nextcloud",{"fr":136,"en":138,"ar":139,"es":140},"hosting-nextcloud-on-your-own-vps","استضافة-nextcloud-على-خادمك-الـvps-الخاص","alojar-nextcloud-en-su-propio-vps","Héberger Nextcloud sur VPS : guide NC 35, PHP 8.3 et MariaDB 11","Hébergez Nextcloud sur VPS : Docker Compose, Redis, sauvegarde MariaDB, envois de plus de 40 Go derrière Cloudflare et alternative à Office 2021.",20,1,"2026-04-10T00:00:00+00:00","2026-11-08T16:32:50+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[149],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":25,"appSlug":152},"nextcloud",{"id":154,"slug":155,"slugs":156,"title":160,"excerpt":161,"readTime":162,"views":144,"isPinned":19,"noindex":19,"publishedAt":163,"updatedAt":21,"category":164,"categories":165,"featuredImage":30,"bgImage":31,"posterImage":167,"relatedSolution":168},72,"heberger-ghost",{"fr":155,"en":157,"ar":158,"es":159},"hosting-ghost-on-your-own-vps","استضافة-ghost-على-خادمك-الـvps-الخاص","alojar-ghost-en-un-vps","Héberger Ghost sur VPS : guide complet 2026","Déployez Ghost v6 sur votre VPS avec Caddy, MySQL, Ghost CLI et Stripe Tax : installation, reverse proxy TLS, mise à jour et dépannage des erreurs fréquentes.",10,"2026-04-09T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[166],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":25,"appSlug":169},"ghost",{"id":171,"slug":172,"slugs":173,"title":177,"excerpt":178,"readTime":23,"views":18,"isPinned":19,"noindex":19,"publishedAt":179,"updatedAt":180,"category":181,"categories":182,"featuredImage":30,"bgImage":31,"posterImage":184,"relatedSolution":185},73,"heberger-wordpress",{"fr":172,"en":174,"ar":175,"es":176},"host-wordpress-on-your-own-vps","استضافة-wordpress-على-خادم-vps-الخاص-بك","alojar-wordpress-en-un-vps","Héberger WordPress sur votre propre VPS","Hébergez WordPress sur votre VPS pour des performances et un contrôle maximaux : Docker, MariaDB, cache, reverse proxy et SSL.","2026-04-08T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[183],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":25,"appSlug":186},"wordpress",true,1794270727997]