# 13_Immich

## Immich-SERVER

*High performance self-hosted photo and video management solution.*

<table id="bkmrk-imageghcr.io%2Fimmich-"><tbody><tr><th>Image</th><td>`ghcr.io/immich-app/immich-server:release`</td></tr><tr><th>Version</th><td>v2.7.5</td></tr><tr><th>Etat</th><td><span style="color:#008000;">Up (healthy)</span></td></tr><tr><th>Compose project</th><td>immich</td></tr><tr><th>Reseau</th><td>immich\_immich-network</td></tr><tr><th>URL</th><td>[https://immich.juxjux.ovh](https://immich.juxjux.ovh)</td></tr><tr><th>Source</th><td>[https://github.com/immich-app/immich](https://github.com/immich-app/immich)</td></tr></tbody></table>

### Ports

<table id="bkmrk-hotecontainerip-8212"><thead><tr><th>Hote</th><th>Container</th><th>IP</th></tr></thead><tbody><tr><td>8212</td><td>2283/tcp</td><td>0.0.0.0</td></tr><tr><td>8212</td><td>2283/tcp</td><td>::</td></tr></tbody></table>

### Volumes

<table id="bkmrk-source-%28hote%29destina"><thead><tr><th>Source (hote)</th><th>Destination</th><th>Type</th><th>Mode</th></tr></thead><tbody><tr><td>`/home/debian/docker/immich/upload`</td><td>`/data`</td><td>bind</td><td>rw</td></tr><tr><td>`/etc/localtime`</td><td>`/etc/localtime`</td><td>bind</td><td>ro</td></tr><tr><td>`/home/debian/docker/immich/upload/encoded-video`</td><td>`/mnt/media/encoded-video`</td><td>bind</td><td>rw</td></tr><tr><td>`/home/debian/photo`</td><td>`/mnt/media/photo`</td><td>bind</td><td>ro,shared</td></tr></tbody></table>

---

## Immich-MICROSERVICES

*High performance self-hosted photo and video management solution.*

<table id="bkmrk-imageghcr.io%2Fimmich--1"><tbody><tr><th>Image</th><td>`ghcr.io/immich-app/immich-server:release`</td></tr><tr><th>Version</th><td>v2.7.5</td></tr><tr><th>Etat</th><td><span style="color:#008000;">Up (healthy)</span></td></tr><tr><th>Compose project</th><td>immich</td></tr><tr><th>Reseau</th><td>immich\_immich-network</td></tr><tr><th>URL</th><td>[https://immich.juxjux.ovh](https://immich.juxjux.ovh)</td></tr><tr><th>Source</th><td>[https://github.com/immich-app/immich](https://github.com/immich-app/immich)</td></tr></tbody></table>

### Volumes

<table id="bkmrk-source-%28hote%29destina-1"><thead><tr><th>Source (hote)</th><th>Destination</th><th>Type</th><th>Mode</th></tr></thead><tbody><tr><td>`/home/debian/docker/immich/upload`</td><td>`/data`</td><td>bind</td><td>rw</td></tr><tr><td>`/etc/localtime`</td><td>`/etc/localtime`</td><td>bind</td><td>ro</td></tr><tr><td>`/home/debian/docker/immich/upload/encoded-video`</td><td>`/mnt/media/encoded-video`</td><td>bind</td><td>rw</td></tr><tr><td>`/home/debian/photo`</td><td>`/mnt/media/photo`</td><td>bind</td><td>ro,shared</td></tr></tbody></table>

---

## Immich-LEARNING

*High performance self-hosted photo and video management solution.*

<table id="bkmrk-imageghcr.io%2Fimmich--2"><tbody><tr><th>Image</th><td>`ghcr.io/immich-app/immich-machine-learning:release`</td></tr><tr><th>Version</th><td>v2.7.5</td></tr><tr><th>Etat</th><td><span style="color:#008000;">Up (healthy)</span></td></tr><tr><th>Compose project</th><td>immich</td></tr><tr><th>Reseau</th><td>immich\_immich-network</td></tr><tr><th>URL</th><td>[https://immich.juxjux.ovh](https://immich.juxjux.ovh)</td></tr><tr><th>Source</th><td>[https://github.com/immich-app/immich](https://github.com/immich-app/immich)</td></tr></tbody></table>

### Volumes

<table id="bkmrk-source-%28hote%29destina-2"><thead><tr><th>Source (hote)</th><th>Destination</th><th>Type</th><th>Mode</th></tr></thead><tbody><tr><td>`/home/debian/docker/immich/cache`</td><td>`/cache`</td><td>bind</td><td>rw</td></tr></tbody></table>

---

## Immich-REDIS

<table id="bkmrk-imageredis%3A6.2-alpin"><tbody><tr><th>Image</th><td>`redis:6.2-alpine`</td></tr><tr><th>Etat</th><td><span style="color:#008000;">Up (healthy)</span></td></tr><tr><th>Compose project</th><td>immich</td></tr><tr><th>Reseau</th><td>immich\_immich-network</td></tr><tr><th>URL</th><td>[https://immich.juxjux.ovh](https://immich.juxjux.ovh)</td></tr></tbody></table>

### Volumes

<table id="bkmrk-source-%28hote%29destina-3"><thead><tr><th>Source (hote)</th><th>Destination</th><th>Type</th><th>Mode</th></tr></thead><tbody><tr><td> </td><td>`/data`</td><td>volume</td><td>rw</td></tr></tbody></table>

---

## Immich-DB

*Base images for Immich containers*

<table id="bkmrk-imageghcr.io%2Fimmich--3"><tbody><tr><th>Image</th><td>`ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.2.0`</td></tr><tr><th>Version</th><td>16-vectorchord0.3.0-pgvector0.8.1-pgvectors0.2.0</td></tr><tr><th>Etat</th><td><span style="color:#008000;">Up (healthy)</span></td></tr><tr><th>Compose project</th><td>immich</td></tr><tr><th>Reseau</th><td>immich\_immich-network</td></tr><tr><th>URL</th><td>[https://immich.juxjux.ovh](https://immich.juxjux.ovh)</td></tr><tr><th>Source</th><td>[https://github.com/immich-app/base-images](https://github.com/immich-app/base-images)</td></tr></tbody></table>

### Volumes

<table id="bkmrk-source-%28hote%29destina-4"><thead><tr><th>Source (hote)</th><th>Destination</th><th>Type</th><th>Mode</th></tr></thead><tbody><tr><td>`/home/debian/docker/immich/db`</td><td>`/var/lib/postgresql/data`</td><td>bind</td><td>rw</td></tr></tbody></table>

---

## Integration Claude Code — MCP

<table id="bkmrk-statut-mcpmcp-actif-"><tbody><tr><th>Statut MCP</th><td><span style="color:#008000;">MCP actif</span></td></tr><tr><th>Outils (prefix)</th><td>`mcp__immich__`</td></tr><tr><th>Configuration</th><td>Script Python : C:\\Users\\eliob\\.claude\\mcp\_immich.py | Auth : JWT via POST /api/auth/login</td></tr></tbody></table>

### Outils disponibles

- `get_assets`
- `get_asset`
- `search_assets`
- `update_asset`
- `get_albums`
- `get_album`
- `create_album`
- `get_people`
- `get_person_assets`
- `get_memories`
- `get_statistics`
- `get_my_user`
- `get_server_info`

### Ce que nous pouvons faire ensemble

- Rechercher des photos par date, lieu, contenu ou personne reconnue
- Parcourir les albums et les souvenirs générés automatiquement
- Consulter les statistiques de la photothèque (nb photos, vidéos, taille)
- Créer un album et y regrouper des assets
- Mettre à jour les métadonnées d'un asset (description, date, lieu)

---

## Sauvegarde de la base de données

Sauvegarde automatique quotidienne de la base PostgreSQL `Immich-DB` vers kDrive Infomaniak. Mise en place le 2026-06-01.

### Paramètres

<table id="bkmrk-script%2Fopt%2Fbackups%2Fv"><tbody><tr><th>Script</th><td>`/opt/backups/vps_backup.sh`</td></tr><tr><th>Cron</th><td>Tous les jours à 2h du matin (`0 2 * * *`)</td></tr><tr><th>Container DB</th><td>`Immich-DB` (PostgreSQL 16)</td></tr><tr><th>Commande</th><td>`pg_dump -U postgres`</td></tr><tr><th>Taille base (disque)</th><td>~7.5 Mo (métadonnées uniquement — photos sur volume séparé)</td></tr><tr><th>Format archive</th><td>.7z (compression niveau 5)</td></tr><tr><th>Destination</th><td>kDrive Infomaniak — `TOOJUX/jux_vps/immich` (dossier ID 1427919)</td></tr><tr><th>Rétention</th><td>7 jours glissants</td></tr><tr><th>Nommage fichier</th><td>`immich_db_YYYY-MM-DD.7z`</td></tr></tbody></table>

### Note importante

Cette sauvegarde couvre uniquement les métadonnées (albums, faces, tags, utilisateurs). Les fichiers photos/vidéos sont stockés dans `/home/debian/docker/immich/upload` et `/home/debian/photo` — ils ne sont pas inclus dans ce backup.

---

## REX — 2026-06-21 — FUSE cassé après restart rclone-photo

### Symptôme

Immich connecté mais aucune photo visible. Logs Immich-SERVER :

```
WARN [Microservices:LibraryService] Skipping invalid import path: /mnt/media/photo. Reason: Error: ENOTCONN: socket is not connected, stat '/mnt/media/photo'
```

### Cause

Le service `rclone-photo.service` a redémarré le 2026-06-18 (suite à l'incident sécurité du 2026-06-09 — fix `--rc-addr 127.0.0.1`). Les containers `Immich-SERVER` et `Immich-MICROSERVICES`, démarrés avant ce restart, conservent un file descriptor FUSE invalide. La propagation `:shared` aide pour les *nouveaux* montages mais ne restaure pas un fd FUSE mort.

### Fix immédiat

```
docker restart Immich-SERVER Immich-MICROSERVICES
# puis déclencher un scan de bibliothèque :
curl -s -X POST "https://immich.juxjux.ovh/api/libraries/89bfcdc1-1604-47a1-90a3-975d2f6c4639/scan" \
  -H "Authorization: Bearer TOKEN"
# TOKEN obtenu via POST /api/auth/login (bertrand.dadone@gmail.com / 27101809)
```

### Fix structurel — ExecStartPost dans rclone-photo.service (2026-06-21)

Ajout d'un `ExecStartPost` dans `/etc/systemd/system/rclone-photo.service` : à chaque redémarrage de rclone-photo, les containers Immich sont automatiquement relancés si et seulement s'ils tournent déjà (pas de blocage au boot).

```
ExecStartPost=/bin/bash -c 'sleep 3; docker ps --filter name=Immich-SERVER --filter status=running -q | grep -q . && docker restart Immich-SERVER Immich-MICROSERVICES || true'
```

Rechargement : `sudo systemctl daemon-reload` (pas de restart du service nécessaire — prendra effet au prochain redémarrage de rclone-photo).

### Library ID Immich

`89bfcdc1-1604-47a1-90a3-975d2f6c4639`

---

### Inventaire par Claude le 251001