Installer Immich sur Ubuntu, OMV et Portainer
📝 Tutoriel complet — Installer Immich sur Ubuntu + OpenMediaVault + Portainer
Objectif : Centraliser toutes les photos et vidéos sur un NAS. Elles seront indexées et consultables sur navigateur ou smartphone, sans utiliser Google Photos ni iCloud.
Ce guide explique l’installation de A à Z. Cependant, on utilisera un partage réseau hébergé sur OMV, une VM Ubuntu 22.04 LTS et l’interface Portainer pour gérer Immich facilement.

🔥 Pourquoi Immich ?
Immich est une alternative libre et auto-hébergeable à Google Photos, permettant :
| Fonction | Immich |
|---|---|
| Sauvegarde automatique mobile | ✔ Android / iOS |
| Reconnaissance visages / objets | ✔ IA intégrée |
| Cartographie GPS | ✔ avec affichage par lieu |
| Stockage local ou NAS | ✔ SMB / NFS supporté |
| Accès web, multi-appareils | ✔ navigateur + app |
Idéal pour photographes, familles, stockage longue durée, archives, etc.
📂 Architecture du setup
[VM Ubuntu] → Docker + Portainer → Immich
│
├── /mnt/omv_photos_ro → Archives existantes (lecture seule)
└── /mnt/omv_photos_rw → Dossier "Imich" (nouvelles photos mobile)
[OpenMediaVault / NAS]
└── Partage SMB : md/Mes images
├── Photos historiques
└── Imich ← Upload automatique des mobiles
📌 Avantage : Immich ne peut pas modifier/supprimer vos archives.
🧩 Pré-requis
✔ Vieux PC ou équivalent
✔ VM Ubuntu 22.04 ou Ubuntu Serveur
✔ OMV / NAS accessible en SMB
✔Docker & Portainer installé
✔ Dossier partagé existant : \\NAS\Mes images
1️⃣ Monter le partage du NAS sous Ubuntu
D’abord, on installe l’utilitaire CIFS pour gérer les partages réseau:
sudo apt update && sudo apt install -y cifs-utils
Ensuite, on crée les points de montage locaux:
sudo mkdir -p /mnt/omv_photos_ro /mnt/omv_photos_rw
Maintenant, on génère le fichier de credentials pour stocker les accès au NAS:
sudo bash -c 'cat >/etc/samba-credentials <<EOF
username=TON_UTILISATEUR
password=TON_MOTDEPASSE
EOF'
sudo chmod 600 /etc/samba-credentials
Enfin, on monte les partages (l’usage de l’IP est vivement recommandé):
sudo mount -t cifs "//192.168.x.x/Mes images" /mnt/omv_photos_ro -o credentials=/etc/samba-credentials,ro
sudo mount -t cifs "//192.168.x.x/Mes images/Imich" /mnt/omv_photos_rw -o credentials=/etc/samba-credentials,rw
Test de vérification :
sudo ls /mnt/omv_photos_ro
sudo ls /mnt/omv_photos_rw
2️⃣ Montage auto au démarrage
Pour que les dossiers soient disponibles après chaque redémarrage, on modifie le fichier /etc/fstab.
sudo nano /etc/fstab
On ajoute alors ces lignes à la fin du fichier:
//192.168.x.x/md/Mes\040images /mnt/omv_photos_ro cifs ro,credentials=/etc/samba-credentials 0 0
//192.168.x.x/md/Mes\040images/Imich /mnt/omv_photos_rw cifs rw,credentials=/etc/samba-credentials 0 0
Pour finir, on applique la configuration sans redémarrer:
sudo mount -a
3️⃣ Installation d’Immich via Portainer
D’abord, on prépare le dossier pour la base de données PostgreSQL:
sudo mkdir -p /srv/immich/postgres
Ensuite, dans Portainer (Stacks → Add Stack), on colle la configuration suivante:
version: "3.9"
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:v2
restart: always
ports:
- "2283:2283"
environment:
- DB_PASSWORD=ChangeMe12345
- DB_USERNAME=postgres
- DB_DATABASE_NAME=immich
- TZ=Europe/Luxembourg
depends_on:
- redis
- database
volumes:
- /mnt/omv_photos_rw:/data
- /mnt/omv_photos_ro:/mnt/archives:ro
- /etc/localtime:/etc/localtime:ro
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:v2
restart: always
environment:
- DB_PASSWORD=ChangeMe12345
- DB_USERNAME=postgres
- DB_DATABASE_NAME=immich
- TZ=Europe/Luxembourg
volumes:
- model-cache:/cache
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:9
restart: always
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
restart: always
environment:
- POSTGRES_PASSWORD=ChangeMe12345
- POSTGRES_USER=postgres
- POSTGRES_DB=immich
- POSTGRES_INITDB_ARGS=--data-checksums
volumes:
- /srv/immich/postgres:/var/lib/postgresql/data
volumes:
model-cache:
💥 On déploie la stack. L’interface est désormais accessible sur → http://ip-serveur:2283
4️⃣ Configuration d’Immich
Créer la bibliothèque externe
- Admin → Bibliothèques externes → Ajouter
- Chemin : /mnt/archives
- Cliquez Analyser / Scan library
Ajouter l’accès utilisateur
- Bibliothèque → Membres → Ajouter utilisateur
- Les photos historiques s’affichent alors sur l’écran. 🎉
📱 Sauvegarde mobile automatique
- On installe l’application Immich sur Android/iOS.
- On ouvre l’app et on se connecte.
- On active le Backup auto : ON.
- On définit la destination sur Upload Library (/data).
Désormais, chaque photo prise est envoyée directement sur le NAS dans le dossier /Immich.
📌 Troubleshooting / FAQ (important)
| Immich vide | External library non créée → ajouter /mnt/archives |
| Photos non visibles | L’utilisateur doit être ajouté à la bibliothèque |
| CIFS pas monté | tester sudo mount -a + vérifier mot de passe SMB |
| Nom NAS ne fonctionne pas | Utiliser l’IP : //192.168.x.x |