[Tuto] Quitter Google/Apple Photos et installer Immich (open source) sur un petit VPS
Clic Clac c’est dans VOTRE boite
Illustration : Flock
Le 21 août à 13h37
Et si vous repreniez la main sur vos données ? Après les mots de passe, nous vous expliquons comment sauvegarder vos photos sur un serveur (VPS) maison grâce à Immich, une application gratuite et open source. Les amateurs de Google Photos ne seront pas dépaysés.
[Tuto] Quitter Google/Apple Photos et installer Immich (open source) sur un petit VPS
Clic Clac c’est dans VOTRE boite
Illustration : Flock
Et si vous repreniez la main sur vos données ? Après les mots de passe, nous vous expliquons comment sauvegarder vos photos sur un serveur (VPS) maison grâce à Immich, une application gratuite et open source. Les amateurs de Google Photos ne seront pas dépaysés.
Hardware
Hardware
8 min
Quand nous avons commencé nos articles sur les VPS, l’idée était simple : louer pour quelques euros par mois un serveur privé virtuel afin de reprendre possession de nos données, via des applications open source. Nous avons déjà expliqué comment installer le gestionnaire de mots de passe Vaultwarden et un VPN. N’oubliez pas de vérifier et de renforcer la sécurité, un serveur exposé sur Internet est attaqué plusieurs milliers de fois par jour en moyenne.
- [Tuto] Auto-héberger son gestionnaire de mots de passe avec Vaultwarden (Bitwarden)
- [Tuto] Utiliser son VPS comme serveur Wireguard pour un VPN maison (et gratuit)
- [Tuto] Renforcer la sécurité de son VPS avec fail2ban, clés SSH, What’s Up Docker…
Immich, un clone open source de Google Photos
Aujourd’hui, on s’attaque à vos photos et vidéos. Pour remplacer Google et Apple Photos, il existe plusieurs alternatives. Nous avons choisi Immich, dont la version 3.0.0 a été mise en ligne cet été. Immich est composé d’une partie serveur (pour stocker les données) et de clients mobiles, pour Android et iOS.
Immich recommande une machine avec 6 Go de mémoire et 2 vcores minimum. Notre VPS de test en a respectivement 8 et 4. La méthode d’installation décrite dans le guide de démarrage rapide passe par Docker, que nous avons déjà installé pour Vaultwarden.


Nous pouvons donc entrer dans le vif du sujet. Comme toujours, on se connecte à notre VPS via PuTTy. Si vous avez bien suivi notre tuto sur la sécurité, normalement vous n’utilisez plus de mot de passe pour la connexion, mais une clé SSH.
Téléchargement et installation en quelques lignes de commandes
Il reste 73% de l'article à découvrir.
Déjà abonné ou lecteur ? Se connecter
Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.
Accédez en illimité aux articles
Profitez d'un média expert et unique
Intégrez la communauté et prenez part aux débats
Partagez des articles premium à vos contacts
expert et sans pub.
Commentaires (32)
Le 21 août à 13h49
Merci, Seb'
Modifié le 21 août à 13h51
Il faut aussi changer l'utilisateur. Le user
postgresest un utilisateur à privilèges, il me semble. D'ordre général, j'éviterais d'utiliser une base postgresql installée via un compose file sur une prod exposée. Il vaut mieux que les containers se connectent à une instance proprement configurée et sécurisée.Un autre critère de hardening à vérifier sur le reverse proxy : s'assurer qu'il bloque bien l'accès au
.envsi celui-ci fini d'une manière ou d'une autre dans le container (volume monté ou que sais-je). Bloquer tout ce qui est.envet.gitest aussi une bonne pratique (avec un retour 404, le 403 peut laisser supposer leur existence réelle).Modifié le 22 août à 16h04
postgresfait partie de rôles permettant de gérer les permissions, les création de rôles, bref : toute l'administration.Comme toujours, si uniquement lecture/écriture sur certaines tables est établi, un utilisateur disposant des moindres privilèges nécessaires devrait être préféré. Si l'instance de SGBD est déployée en conteneur, on peut aussi faire en sorte qu'elle soit dédiée et non mutualisée, de façon à limiter l'impact quand elle se fera trouer.
Sécurité en profondeur, quoi… Mais bon : la flemme demeure l'ennemi habituel.
Il faut reconnaître que se fader la configuration d'un SGBD, j'ai développé de l'urticaire pour cela il y a plusieurs décennies et j'essaie autant que faire se peut de me l'éviter. Les machins complexes et dont il faut être expert pour les optimiser : j'ai décidé que j'avais d'autres loisirs…
Pas compris la partie sur le service Web des fichiers de configuration de conteneurs… oO
Servir une arborescence contenant des choses critiques que l'on va spécifiquement interdire fleure bon les anti-motifs de sécurité qu'il était légion de réaliser avec cette horreur d'Apache HTTP Server dans les années 1990.
Le serveur mandataire inverse ne devrait servir que des connexions aux port(s) réseau du conteneur hébergeant l'application, et s'il y a besoin de servir du contenu hors-conteneur, le faire sur un chemin isolé, "de données".
Modifié le 22 août à 17h34
C'est simple, quand je regarde les logs d'accès et d'erreurs de mes sites web, beaucoup de monde est extrêmement intéressé par ces dossiers/fichiers. Perso je n'en ai jamais puisque tous mes sites sont statiques. Mais si on ne maîtrise pas le build du container et si on analyse encore moins ce qu'il va exposer via son entrée Web, vaut mieux bloquer dès que possible les patterns à risque d'une manière générale.
Après, cela devrait plutôt se trouver au niveau d'un WAF que du reverse proxy de nos jours.
Le 21 août à 14h09
Le 21 août à 14h10
Le 22 août à 10h56
Le 21 août à 14h12
Il ne me parle pas tous mais me font découvrir plein de choses.
Modifié le 21 août à 14h38
A force, un tuto sur une solution type Pangolin serait bienvenue aussi pour simplifier la gestion des accès externes ! Une idée de prochain tuto ? ;-)
Pour le compose d'immich, je rajouterai de laisser "immich-server" sur le bridge mais de rajouter un network de type internal et de ne mettre base, cache et machine-learning que dans le internal... donc pas accessibles du dehors du tout
un truc de ce genre
A noter que Pangolin utilisant Traefik en interne, ils acceptent ce genre de labels pour définir la conf accès externe directement
J'utilise ansible, d'où les variables
Ici on donne accès à Immich depuis un alias en https, mais il faut être dans le groupe "Member", les urls /admin/ demandent d'être dans le group "Admin" et les url /share/ sont ouvertes sans authent (pour les partages)
Le 21 août à 18h51
Si vous vous intéressez un peu au self host (ce que j'imagine est le cas d'une grande partie de la communauté ici) je ne peux que vous le conseiller 😊
Le 21 août à 18h58
Pas encore réussi à installer la sauvegarde auto vers le S3 de Next mais c'est une autre histoire.
J'ai choisi d'utiliser la bibliothèque externe pour la gestion des médias, uniquement en read-only.
Cela me permet de continuer à alimenter le NAS via le partage réseau uniquement et immich ne sert qu'en consultation web. La gestion des comptes n'est pas encore si simple.
Leur notion de bibliothèque rattachée à un seul utilisateur rend, selon moi, plus difficile l'usage familial quand on veut partager les données.
Immich donne pour le moment en solution de démultiplier le traitement IA et les méta-données autant qu'il y a d'utilisateurs (ce qui peut avoir du sens si plusieurs utilisateurs sont actifs). Cela ne résout pas le problème qu'une bibliothèque possède un unique propriétaire (du travail est en cours sur ce sujet si j'ai bien compris mes lectures sur reddit).
Pour ma part, je suis le seul qui va administrer donc un seul compte familial non admin et j'ai créé des comptes admin à côté.
L'avantage du read-only, impossible qu'un utilisateur moins habitué supprime vraiment des données par inadvertance. Inconvénient : la solution permet d'identifier des doublons, des images proches, ça serait facilitant de pouvoir taper directement sur les fichiers quand ça s'y prête.
Pour donner des ordres de grandeur, ma bibliothèque externe comporte un peu plus de 90 000 photos et 2000 films. J'ai lancé l'ensemble des fonctions d'immich pour la reconnaissance faciale et la création des index, etc.
Le NAS a 32Go de RAM et un i5-9600T et travaille uniquement sur des SSD. Les données sont sur un NVME de 4To Samsung S990 evo. La base de données est sur un vieux SSD samsung MLC de 128Go (840 PRO).
Sur la base de ce matériel, le serveur a mis environ 16h à faire l'ensemble des traitements, avec une occupation à 100% du processeur pendant 13h puis un palier de 3h à environ 70% (suivi via télémétrie OMV + prise connectée en amont de la baie). En terme de RAM, c'est monté à 6Go assez rapidement puis jusqu'à la fin du traitement.
La bonne surprise : c'est extrêmement fluide à l'usage.
Côté reconnaissance faciale, petit effet collatéral des photos de groupe (mariages, universités, voyages,...), immich m'a détecté presque 4 000 visages uniques en premier traitement. Heureusement, on peut fusionner peu à peu les regroupements qu'il n'a pas su faire (un enfant pris en photo qu'une fois par an est souvent vu unique à chaque fois) et on peut aussi "oublier" les visages sans intérêt pour nous (la grand-tante du frère de la soeur d'un ami de ma femme qui s'est marié m'importe assez peu
Le travail est toujours en cours entre les demi-visages à bien retrouver et les innombrables visages uniques trouvés sur des photos de voyage. Je suis déjà descendu à 2600 visages restants, la route est encore longue !
Côté index, c'est plutôt bien foutu même si l'IA a des réactions bizarres. En cherchant "dragon" (voyages en asie), j'en retrouve énormément mais aussi des photos sans aucun lien compréhensible. D'autres mots comme plage, voiture marchent plutôt bien.
Un truc bien est la recherche par contexte avec des filtres multiples. Par exemple, une seule recherche pour trouver toutes les photos où tous les membres de la famille sont présents est pratique pour un album.
En terme d'impact sur le serveur, en idle, j'ai même pas vraiment pris 1W de conso en plus, mais la RAM est à 3,5Go au lieu de 1Go avant son installation. Evidemment, si on sollicite la visualisation et des traitements, cela monte mais je n'ai pas consulté plus que ça car je sais que le serveur est large.
Je n'ai que 10 jours d'usage mais si vous avez une question sur l'après démarrage, je peux toujours regarder ce que ça donne de mon côté pour vous donner une réponse.
Le 21 août à 21h54
En ce qui me concerne, je n'ai pas eu besoin de faire compliqué : l'installation s'est faite très facilement/rapidement via un paquet (App) sur l'OS TrueNAS community Edition installé sur un NAS UGreen avec 8Go de RAM, pas de SSD et proc Intel Pentium G dont 2 cœurs sont dédiés à Immich, C'est étonnant de voir à quel point c'est réactif, même si les disques "gratouilles" sans arrêt lors de consultations -> j'imagine qu'avoir des SSD vaut vraiment le coup lorsqu'ils redeviendront abordables !
Le 21 août à 22h42
Initialement, le serveur devait avoir un proxmox et OMV virtualisé avec quelques autres services, ça explique son matériel.
Finalement, vu le temps à y passer pour le MCO, j'ai mis directement OMV et je complète avec les xtra et compose.
Pas de besoin d'accès à distance via cette machine, c'est mon routeur qui gère une connexion Wireguard.
Du coup, le pentium acheté Initialement suffirait, ça me fait une pièce de rechange possible, bonne nouvelle.
Pour les SSD, je voulais surtout limiter les vibrations car la baie informatique n'est pas loin de la chambre et j'ai une ouïe très sensible. Un SSD est aussi à quasi rien en consommation en idle, à peine plus en traitement, alors qu'on disque mécanique prend qques watts.
Et il faut aussi dire que j'ai pu l'avoir en nov-2025 à seulement 230€, je suis large avec les 4To mais le marché semblait déjà partir à la hausse.
Je n'ai pas encore mis de carte réseau multigig donc le gain à l'upload n'est pas vraiment sensible mais je sature le lien 1 Gbps à coup sûr.
En consultation, c'est parfait car la navigation est instantanée dans les répertoires.
Modifié le 22 août à 08h45
Par contre après avoir ingéré la bibliothèque de 22k photos et plus de 500 vidéos (92Go), il a mis pas loin d'une vingtaine d'heures pour les différentes reconnaissances (surtout recherches intelligentes, détection des visages, reconnaissance faciale, OCR).
En revanche, je ne remarque aucune lenteur dans la consultation et recherches : toutes les pages s'affichent instantanément.
Autre point : le système de fichiers du TrueNAS est du ZFS.
Le 23 août à 08h17
Modifié le 21 août à 19h58
Ça gère aussi les albums ?
On peut y importer une bibliothèque GPhoto en entière, et ses albums existant le cas échéant ?
Le 21 août à 21h20
Par contre, je viens de tester la création d'un album, il n'y a pas d'option d'import mais je n'ai pas été fouillé la doc officielle pour voir s'il y a des fonctions à activer (y'a des montagnes de paramètres et fonctions complémentaires).
Modifié le 21 août à 20h42
Le 21 août à 20h27
Le 21 août à 22h17
Le 23 août à 08h44
Le 23 août à 14h45
L'un des autres avantages chez Nextcloud, c'est que les photos sont directement visible aussi avec le vusualusateur de fichier et on peut synchroniser où on veut.
Le 23 août à 15h29
c'est pourtant le point critique, les photos c'est lourd.
Immich tourne les vm/docker/serveur de virtu, mais les photos elles sont sur le NAS. Et souvent ça bloque.
docker et LXC fail -_-
Modifié le 23 août à 16h05
Perso c'est comme ça que mon Plex marche : il est en container sur le serveur et lit depuis un point de montage sur le NAS.
Après pour du Linux, j'aurai plus tendance à faire du NFS que du SMB.
Le 24 août à 08h48
Le 24 août à 14h37
Modifié le 24 août à 18h53
Si on part sur un disk cloud de 1 a 2 to
Quand je vois mon syno qui a 10 ans je me dis que c'est peut-être pas très rentable de louer de l'espace en ligne pour les photos, non?
J'ai fait faiire un petit cacul a une ia pour comparer un nas 2to local et une vms +2to d'espace cloud
Le local devient "rentable" entre 3 et 6 ans ...
Le 25 août à 10h12
Le 26 août à 07h24
Ca m’a juste pris moins temps...
A noter que ca réponse était beaucoup plus complète que ce que j'ai écrit dans le poste
Pour le "fun", comme je suis vraiment mauvais j'utilise chrome, avec le fait que maintenant il y a une recherche ia automatique je ne sais pas si ma recherche perso et manuelle aurait été plus écologique...
Le 25 août à 13h39
Le 27 août à 14h55
Le 29 août à 11h21
La synchronisation se fait sans problème avec des appareils iOS et Android.
Il y a même une application (dispo sur github) pour importer sa bibliothèque Google Photos.
Signaler un commentaire
Voulez-vous vraiment signaler ce commentaire ?