[{"data":1,"prerenderedAt":236},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-immich-ma-fr":6,"promo-bar-likely":235},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-heberger-immich-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":35,"sections":36,"ctaTitle":176,"ctaBody":177,"ctaButton":178,"ctaUrl":179,"relatedPosts":180},82,"heberger-immich",{"fr":10,"en":12,"ar":13,"es":14},"host-immich-on-your-own-vps","استضافة-immich-على-خادمك-الافتراضي-الخاص-vps","alojar-immich-en-un-vps","Héberger Immich sur votre propre VPS","Hébergez Immich sur votre VPS : alternative auto-hébergée à Google Photos avec sauvegarde mobile, reconnaissance faciale et SSL via Docker. Migration v3 incluse.",11,1,false,"2026-03-30T00:00:00+00:00","2026-09-23T15:23:17+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-immich-poster.svg",{"categorySlug":25,"appSlug":34},"immich","Immich est une alternative auto-hébergée à Google Photos, avec sauvegarde automatique depuis le mobile, reconnaissance faciale et recherche intelligente par IA. L'installer sur votre propre VPS, c'est rapatrier des milliers de photos personnelles hors des clouds publicitaires, tout en conservant une expérience moderne et fluide. Avec la version 3.0.0, l'architecture de recherche vectorielle a été simplifiée : `pgvecto.rs` est remplacé par les index HNSW natifs de PostgreSQL, ce qui facilite la mise à jour — à condition de respecter le chemin de migration obligatoire.",[37,41,51,54,76,79,82,85,100,103,106,124,152,155],{"type":38,"title":39,"body":40},"h2","Pourquoi auto-héberger Immich sur un VPS","Vos photos sont parmi les données les plus sensibles que vous confiez à un cloud : visages, lieux, habitudes, géolocalisation. Immich reproduit l'expérience de Google Photos, applications mobiles incluses, mais sur une infrastructure que vous possédez. Depuis la version 3.0.0, sa stack a été allégée : l'extension tierce `pgvecto.rs` a été supprimée au profit des index HNSW natifs de PostgreSQL (`pgvector`), ce qui réduit les dépendances et simplifie les sauvegardes de base de données. Un VPS dédié vous permet d'isoler le service ML gourmand, de dimensionner le stockage selon votre photothèque, et d'éviter que vos clichés ne servent à entraîner des modèles tiers. Vous restez maître du chiffrement, des sauvegardes et de l'accès.",{"type":42,"title":43,"items":44},"ul","Ce que l'auto-hébergement d'Immich apporte",[45,46,47,48,49,50],"Sauvegarde automatique depuis iOS et Android dès qu'une photo est prise, comme un cloud privé.","Reconnaissance faciale et recherche sémantique exécutées sur votre serveur, sans envoi à un tiers.","Capacité égale à votre disque VPS : aucun quota imposé, aucune facturation au Go.","Partage d'albums par lien sécurisé que vous contrôlez et révoquez à tout moment.","Support multi-utilisateurs : chaque membre du foyer ou de l'équipe a sa bibliothèque isolée.","Métadonnées EXIF, cartes et timelines conservées localement, sans exploitation publicitaire.",{"type":38,"title":52,"body":53},"Prérequis matériels et logiciels","Immich est le plus exigeant de cette série à cause de son service de machine learning. Comptez au minimum 4 Go de RAM, mais 6 à 8 Go sont recommandés si la reconnaissance faciale traite une grande photothèque. 2 à 4 vCPU permettent de digérer l'indexation initiale sans bloquer l'interface. Le stockage est le facteur clé : prévoyez large, car une bibliothèque familiale dépasse vite 100 Go ; un VPS avec disque extensible est idéal. Côté logiciel : Docker et `docker compose` v2, un domaine (`photos.votreentreprise.com`), et suffisamment d'espace de swap pour absorber les pics du modèle ML lors du premier import.",{"type":55,"title":56,"steps":57},"steps","Déployer Immich étape par étape",[58,61,64,67,70,73],{"title":59,"body":60},"Préparer le VPS et le stockage","Mettez à jour le système, installez Docker, puis créez un point de montage dédié aux médias, par exemple `\u002Fmnt\u002Fphotos`, séparé du disque système. Activez au moins 2 Go de swap pour le service de machine learning.",{"title":62,"body":63},"Récupérer le compose officiel et le .env","Téléchargez le `docker-compose.yml` et le fichier `example.env` du dépôt Immich avec `wget`. Renommez en `.env`, puis définissez `UPLOAD_LOCATION=\u002Fmnt\u002Fphotos`, le mot de passe de la base et `DB_DATA_LOCATION` sur un volume persistant.",{"title":65,"body":66},"Comprendre les trois services (v3+)","Depuis la version 3.0.0, la stack démarre `immich-server`, `immich-machine-learning` et `database` (PostgreSQL avec `pgvector`). Redis n'est plus un service séparé — il est embarqué dans le serveur Immich. L'extension `pgvecto.rs` a été supprimée : ne pas utiliser l'ancienne image de base de données `ghcr.io\u002Fimmich-app\u002Fpostgres`, remplacée par l'image officielle PostgreSQL 17 avec `pgvector`.",{"title":68,"body":69},"Lancer la pile et créer l'administrateur","Exécutez `docker compose up -d` et attendez le téléchargement des images ML, volumineuses. Ouvrez le port `2283` en interne, puis créez le compte administrateur via l'assistant web avant d'inviter d'autres utilisateurs.",{"title":71,"body":72},"Sécuriser avec un reverse proxy et SSL","Placez Caddy devant le serveur : `photos.votreentreprise.com { reverse_proxy immich-server:2283 }`. Augmentez la taille maximale d'upload du proxy (`client_max_body_size` sur Nginx) car les vidéos peuvent être lourdes, sinon les envois mobiles échouent.",{"title":74,"body":75},"Configurer l'application mobile","Installez Immich depuis l'App Store ou le Play Store, saisissez `https:\u002F\u002Fphotos.votreentreprise.com` comme URL de serveur, connectez-vous, puis activez la sauvegarde automatique de la pellicule pour répliquer en continu vos nouveaux clichés.",{"type":77,"body":78},"tip","Lors du premier import massif, lancez la génération des miniatures et des embeddings ML pendant une période creuse et surveillez la RAM avec `docker stats`. Si le service de machine learning sature, vous pouvez le faire pointer temporairement vers le modèle le plus léger dans les paramètres, puis repasser à un modèle plus précis une fois l'indexation initiale terminée. Cela évite que le VPS ne s'effondre sous la charge du tout premier scan.",{"type":77,"title":80,"body":81},"RAM limitée ? Faites tourner Immich sans le conteneur d'IA","Si votre VPS n'a que 2 à 4 Go de RAM, retirez le service immich-machine-learning du fichier compose. Immich démarre très bien sans lui : la sauvegarde mobile, le fil chronologique, les albums, le partage, la vue cartographique et la recherche manuelle continuent tous de fonctionner — vous perdez seulement la reconnaissance faciale automatique et la recherche intelligente en langage naturel. Rajoutez le conteneur de machine learning plus tard, lorsque vous passerez à un VPS plus grand, et Immich indexera à ce moment-là votre bibliothèque existante pour la recherche par IA.",{"type":38,"title":83,"body":84},"Résoudre les erreurs machine learning","Le conteneur `immich-machine-learning` peut devenir silencieusement injoignable pour deux raisons distinctes : une erreur de réseau Docker ou un arrêt silencieux par manque de mémoire vive. Les symptômes typiques sont des entrées comme `Machine learning request to 'http:\u002F\u002Fimmich-machine-learning:3003' failed: fetch failed` dans les journaux du serveur, ou des tâches bloquées du type `Unable to run job handler (AssetDetectFaces)`. Le diagnostic prend moins de cinq minutes.",{"type":55,"title":86,"steps":87},"Diagnostiquer et corriger le service ML",[88,91,94,97],{"title":89,"body":90},"Vérifier le réseau Docker","Exécutez `docker network inspect immich_default` et repérez si `immich-server` et `immich-machine-learning` figurent tous les deux dans la liste `Containers`. Si l'un est absent, vérifiez le champ `networks` dans votre `docker-compose.yml` : les deux services doivent référencer le même réseau.",{"title":92,"body":93},"Détecter un OOM silencieux","Lancez `dmesg | grep -i oom` pour voir si le noyau a tué un processus. Chaque OOM kill mentionne le nom du conteneur et la quantité de mémoire demandée. Un résultat vide ne confirme pas l'absence d'OOM si le système a redémarré depuis l'incident.",{"title":95,"body":96},"Consulter les journaux du conteneur ML","Exécutez `docker logs immich-machine-learning --tail 50` pour observer les dernières lignes. Un arrêt propre ou une erreur de chargement de modèle y apparaîtra plus clairement qu'un OOM silencieux du noyau.",{"title":98,"body":99},"Redémarrer le service ML","Si le réseau est correct et que la RAM est suffisante, relancez uniquement ce service avec `docker compose restart immich-machine-learning` et observez si les tâches reprennent dans les minutes suivantes via `docker logs -f immich-machine-learning`.",{"type":77,"title":101,"body":102},"VPS ≤ 2 Go : désactiver le machine learning","Le service ML cumule CLIP, la reconnaissance faciale et l'OCR, soit environ 2 Go de RAM au pic. Sur un VPS avec 2 Go seulement, ajoutez `MACHINE_LEARNING_ENABLED=false` dans votre fichier `.env`, puis relancez la pile avec `docker compose up -d`. La sauvegarde mobile, les albums et la recherche manuelle continuent de fonctionner. La reconnaissance faciale et la recherche IA s'activeront dès que vous passerez à un VPS avec 4 Go de RAM ou plus.",{"type":38,"title":104,"body":105},"Migrer de la v2.4.x vers la v3.0.0 : le chemin obligatoire","La version 3.0.0 d'Immich est une rupture architecturale : `pgvecto.rs` est supprimé et les index vectoriels sont reconstruits nativement par `pgvector` (HNSW). Cette reconstruction est **bloquante** — la base de données recalcule tous les vecteurs de votre photothèque avant de remettre le serveur en ligne, ce qui peut prendre de plusieurs minutes à plusieurs heures selon la taille de la bibliothèque. Avant de sauter directement à la v3, vous devez obligatoirement passer par la version **1.132.3** : c'est le point de charnière qui prépare la migration des index. Partir d'une version antérieure sans passer par ce jalon provoque une erreur de migration de base de données et bloque le démarrage du serveur.",{"type":55,"title":107,"steps":108},"Procédure de mise à jour v2.4.x → v3",[109,112,115,118,121],{"title":110,"body":111},"Sauvegarder la base de données avant tout","Avant toute mise à jour, exportez la base avec `docker exec -t immich_postgres pg_dumpall -c -U postgres > backup_immich_avant_v3.sql`. Conservez également le dossier `UPLOAD_LOCATION`. Une migration HNSW échouée à mi-parcours sans sauvegarde laisse la base dans un état incohérent.",{"title":113,"body":114},"Monter d'abord à la version 1.132.3","Modifiez `docker-compose.yml` pour utiliser la version `v1.132.3` (tag exact) sur `immich-server` et `immich-machine-learning`. Lancez `docker compose pull && docker compose up -d`. Laissez le serveur démarrer complètement et vérifiez que les jobs de fond reprennent sans erreur dans `docker logs immich-server`.",{"title":116,"body":117},"Passer à l'image PostgreSQL officielle (v3 seulement)","La v3 utilise l'image officielle PostgreSQL 17 avec `pgvector`, et non plus l'image personnalisée `ghcr.io\u002Fimmich-app\u002Fpostgres`. Dans le `docker-compose.yml` fourni avec la v3, le service `database` pointe vers `postgres:17-bookworm` avec l'extension `pgvector`. Utilisez le fichier compose officiel de la v3 et ne recyclez pas le fichier de la v2.",{"title":119,"body":120},"Mettre à jour vers la v3.0.0 et attendre la réindexation HNSW","Remplacez les tags par `v3.0.0` et tirez les images : `docker compose pull && docker compose up -d`. La migration HNSW démarre automatiquement au premier lancement. Pendant cette phase, le serveur reste disponible mais la recherche intelligente et la reconnaissance faciale sont suspendues. Suivez la progression dans `docker logs -f immich-server` : une ligne `Finished migration` confirme la fin. Sur une photothèque de 50 000 photos, comptez entre 10 et 30 minutes selon le nombre de vCPU alloués.",{"title":122,"body":123},"Vérifier les jobs de fond après migration","Ouvrez l'interface web, naviguez vers **Administration → Tâches** et confirmez qu'aucun job n'est en état d'erreur. Si des tâches `Smart Search` ou `Face Detection` sont bloquées, relancez-les depuis l'interface. Les nouveaux vecteurs HNSW sont recalculés une seule fois : les imports ultérieurs s'indexent normalement.",{"type":125,"title":126,"headers":127,"rows":131},"comparison","Immich v2 vs v3 : ce qui change en pratique",[128,129,130],"Aspect","v2.4.x","v3.0.0",[132,136,140,144,148],[133,134,135],"Extension vectorielle","`pgvecto.rs` (image personnalisée)","`pgvector` HNSW natif (PostgreSQL officiel)",[137,138,139],"Services Docker","4 (server, ML, Redis, DB)","3 (server, ML, DB — Redis embarqué)",[141,142,143],"Mise à jour directe depuis v2","Non — passer par v1.132.3 obligatoire","Oui depuis v1.132.3",[145,146,147],"Sauvegarde de la base","Dépend de l'image personnalisée","Compatible `pg_dump` standard",[149,150,151],"Réindexation au démarrage","Non","Oui (bloquante, durée selon taille)",{"type":38,"title":153,"body":154},"Mettre à jour Immich en toute sécurité : prévenir la perte de données","Les mises à jour mineures d'Immich — de v3.1.x à v3.2.x par exemple — ne sont pas toutes anodines. L'issue #31485 a documenté la disparition de 23 923 enregistrements après une montée de v3.1.0 à v3.2.0 : les fichiers étaient présents sur disque, mais absents de la base de données malgré des migrations déclarées réussies. En parallèle, l'issue #29983 révèle un problème de cohabitation entre l'ancienne extension `pgvecto.rs` et VectorChord sur les instances ayant migré avant la v3 : des colonnes `vectors.vector(512)` résiduelles provoquent l'erreur `could not access file '$libdir\u002Fvectors'` dans les logs secondaires, rendant le service de machine learning inopérant. La bonne pratique est identique dans les deux cas : sauvegarder avant, vérifier l'état des extensions, épingler la version cible, et conserver la sauvegarde plusieurs semaines après l'upgrade. Sur Immich v3.2.2 (version stable actuelle), VectorChord a remplacé pgvecto.rs comme bibliothèque vectorielle — toute instance contenant encore l'extension `vectors` doit suivre la procédure de nettoyage décrite ci-dessous.",{"type":55,"title":156,"steps":157},"Procédure de mise à jour sécurisée v3.x → v3.y",[158,161,164,167,170,173],{"title":159,"body":160},"Dump PostgreSQL complet AVANT la mise à jour","Exportez intégralement la base avant toute modification : `docker exec immich_postgres pg_dumpall -c -U postgres > backup-$(date +%Y%m%d).sql`. Ce fichier horodaté vous permet de restaurer l'état exact du jour, y compris les enregistrements qui disparaîtraient silencieusement lors d'une migration défaillante comme celle de l'issue #31485.",{"title":162,"body":163},"Vérifier l'extension vectorielle active","Avant de tirer les nouvelles images, contrôlez quelles extensions sont chargées : `docker exec immich_postgres psql -U postgres -c \"SELECT extname FROM pg_extension;\"`. Si la liste contient `vectors` (pgvecto.rs), vous êtes concerné par l'issue #29983 et devez nettoyer l'ancienne extension avant de continuer.",{"title":165,"body":166},"Si `vectors` est présent : procédure VectorChord","Arrêtez la pile (`docker compose down`), puis relancez en ciblant uniquement le service `database` pour exécuter le nettoyage : `docker exec immich_postgres psql -U postgres -c \"DROP EXTENSION IF EXISTS vectors CASCADE;\"`. Tirez ensuite les nouvelles images (`docker compose pull`) et redémarrez l'ensemble. Relancez impérativement le conteneur `machine_learning` — pas seulement `immich_server` — car c'est lui qui charge la bibliothèque vectorielle en mémoire.",{"title":168,"body":169},"Épingler un tag concret dans `.env`","Dans votre fichier `.env`, définissez `IMMICH_VERSION=v3.2.2` (ou la version stable cible) plutôt que `latest` ou un tag flottant `v3`. Un tag concret garantit que `docker compose pull` ne tire pas une version inattendue lors d'une montée involontaire, et que vous savez exactement ce qui tourne en production.",{"title":171,"body":172},"Vérifier les médias après migration","Une fois la pile redémarrée, connectez-vous à l'interface web et naviguez vers **Administration → Tâches**. Lancez un `Scan Library` pour détecter d'éventuels fichiers orphelins. Si le nombre de médias visibles diverge de celui rapporté avant la mise à jour, stoppez immédiatement Immich, restaurez le dump SQL (`psql -U postgres \u003C backup-YYYYMMDD.sql`) et réindexez (`immich admin reindex`) avant de relancer.",{"title":174,"body":175},"Conserver la sauvegarde 30 jours post-upgrade","Ne supprimez pas le fichier de dump avant au moins 30 jours après la mise à jour. Certaines pertes de données (cf. issue #31485) ne sont constatées qu'après plusieurs jours d'utilisation normale, notamment lorsque des albums ou des partages révèlent des médias manquants. Une sauvegarde effacée trop tôt est irrécupérable.","Reprenez le contrôle de votre photothèque","Le VPS Cloud ServOrbit fournit la RAM, le stockage extensible et Docker prêts pour Immich, son service de machine learning et sa base vectorielle. Sauvegardez vos photos en continu sur un serveur qui n'appartient qu'à vous.","Déployer Immich sur un VPS Cloud","\u002Fvps-cloud",[181,199,217],{"id":182,"slug":183,"slugs":184,"title":188,"excerpt":189,"readTime":190,"views":18,"isPinned":19,"noindex":19,"publishedAt":191,"updatedAt":192,"category":193,"categories":194,"featuredImage":30,"bgImage":31,"posterImage":196,"relatedSolution":197},71,"heberger-nextcloud",{"fr":183,"en":185,"ar":186,"es":187},"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,"2026-04-10T00:00:00+00:00","2026-11-08T16:32:50+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[195],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":25,"appSlug":198},"nextcloud",{"id":200,"slug":201,"slugs":202,"title":206,"excerpt":207,"readTime":208,"views":18,"isPinned":19,"noindex":19,"publishedAt":209,"updatedAt":210,"category":211,"categories":212,"featuredImage":30,"bgImage":31,"posterImage":214,"relatedSolution":215},72,"heberger-ghost",{"fr":201,"en":203,"ar":204,"es":205},"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","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[213],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":25,"appSlug":216},"ghost",{"id":218,"slug":219,"slugs":220,"title":224,"excerpt":225,"readTime":23,"views":226,"isPinned":19,"noindex":19,"publishedAt":227,"updatedAt":228,"category":229,"categories":230,"featuredImage":30,"bgImage":31,"posterImage":232,"relatedSolution":233},73,"heberger-wordpress",{"fr":219,"en":221,"ar":222,"es":223},"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.",0,"2026-04-08T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[231],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":25,"appSlug":234},"wordpress",true,1794270721326]