0 Votes

Code source wiki de Immich

Modifié par john le 2026/09/18 21:05

Afficher les derniers auteurs
1 Photothèque auto-hébergée (photos et vidéos), déployée sans le service de machine-learning : seul le stockage et la consultation sont utilisés.
2
3 == Architecture ==
4
5 |=Conteneur|=Rôle
6 |immich_server|Application web et API
7 |immich_postgres|Base PostgreSQL (image Immich avec extensions vectorielles)
8 |immich_redis|File de tâches (Valkey)
9
10 Pas de conteneur ##immich-machine-learning## : la recherche intelligente et la reconnaissance faciale sont indisponibles.
11
12 == Variables d'environnement ==
13
14 |=Variable|=Rôle
15 |##IMMICH_VERSION##|Version suivie de l'image serveur (##v3##)
16 |##UPLOAD_LOCATION##|Bibliothèque de photos et vidéos, dans ##<DOSSIER_IMMICH>##
17 |##DB_DATA_LOCATION##|Fichiers bruts de la base, dans ##<DOSSIER_IMMICH>##
18 |##DB_USERNAME##, ##DB_PASSWORD##, ##DB_DATABASE_NAME##|Accès à la base
19 |##TZ##|Fuseau horaire
20
21 == Stack ==
22
23 {{code language="yaml"}}
24 name: immich
25
26 networks:
27 immich:
28 name: immich
29 proxy:
30 external: true
31
32 services:
33 immich-server:
34 container_name: immich_server
35 image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
36 volumes:
37 - ${UPLOAD_LOCATION}:/data
38 - /etc/localtime:/etc/localtime:ro
39 environment:
40 DB_HOSTNAME: database
41 DB_USERNAME: ${DB_USERNAME}
42 DB_PASSWORD: ${DB_PASSWORD}
43 DB_DATABASE_NAME: ${DB_DATABASE_NAME}
44 REDIS_HOSTNAME: redis
45 TZ: ${TZ}
46 networks:
47 - immich
48 - proxy
49 ports:
50 - '2283:2283'
51 depends_on:
52 - redis
53 - database
54 restart: always
55 healthcheck:
56 disable: false
57
58 redis:
59 container_name: immich_redis
60 image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
61 networks:
62 - immich
63 healthcheck:
64 test: redis-cli ping || exit 1
65 restart: always
66
67 database:
68 container_name: immich_postgres
69 image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
70 environment:
71 POSTGRES_PASSWORD: ${DB_PASSWORD}
72 POSTGRES_USER: ${DB_USERNAME}
73 POSTGRES_DB: ${DB_DATABASE_NAME}
74 POSTGRES_INITDB_ARGS: '--data-checksums'
75 volumes:
76 - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
77 networks:
78 - immich
79 shm_size: 128mb
80 restart: always
81 healthcheck:
82 disable: false
83 {{/code}}
84
85 Les images de Valkey et de PostgreSQL sont épinglées par empreinte SHA256, comme dans le compose officiel de chaque version : elles ne changent jamais d'elles-mêmes.
86
87 == Accès ==
88
89 Publié par SWAG avec le sample fourni :
90
91 {{code language="bash"}}
92 cp immich.subdomain.conf.sample immich.subdomain.conf
93 {{/code}}
94
95 Dans le fichier copié, corriger ##$upstream_app## en ##immich_server## : le sample attend un conteneur nommé ##immich##.
96
97 == Mise à jour ==
98
99 Lire les notes de version avant chaque mise à jour : Immich introduit régulièrement des changements incompatibles. Pour une nouvelle version majeure, reprendre le ##docker-compose.yml## publié avec la version, en particulier les empreintes des images de base de données, puis retirer à nouveau le service de machine-learning.
100
101 == Sauvegarde ==
102
103 * Base : dump SQL de ##immich_postgres## par le script de [[Sauvegarde>>Wiki Batcave John.Infrastructure.Sauvegarde.WebHome]].
104 * Photos et vidéos : ##<DOSSIER_IMMICH>/library##, ajouté comme second chemin source du script, car il se trouve hors du dossier des conteneurs.
105 * Les fichiers bruts de la base ne sont pas sauvegardés : le dump suffit.