Nous partons toujours dans une architecture type monservice = undossier
Les hyperliens font référence à la version en cours lors du déploiement
Voici le lien Git du projet : https://github.com/immich-app/immich
ainsi que son installation : https://immich.app/docs/install/docker-compose/
Le projet s'appuie sur des solutions "clé en main"
Donc, dans un premier temps, je crée un dossier Immich
mkdir immich
cd immich
Nous allons donc suivre la procédure fournie et l'adapter au besoin
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
On récupère le fichier .env
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Ensuite, nous pouvons lancer la commande :
docker compose up -d
Dans un navigateur, on tape l'IP de la machine et le port 2283.
La configuration est maintenant prête pour être déployée, seulement vous avez la configuration par défaut, donc les mots de passe par défaut, les noms de base de données par défaut, etc.
Nous allons donc changer cela
networks:
default:
name: docker-immich
external: true
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:2283
depends_on:
- redis
- database
restart: unless-stopped
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- model-cache:/cache
env_file:
- .env
restart: unless-stopped
redis:
container_name: immich_redis
image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
restart: unless-stopped
database:
container_name: immich_postgres
image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
restart: unless-stopped
command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
volumes:
model-cache:
Datastore_Nas:
driver: "local"
driver_opts:
type: "cifs"
o: "username=${MONUSER},password=${PASSWORD},vers=3.0"
device: "//192.168.1.250/Store_Immich"
networks : définit un réseau spécial pour le compose
services : on cherche les services et la configuration dont nous avons besoin
ports : le port de management de la solution
depends_on : les services dépendent de redis et database, donc si les services ne sont pas disponibles, immich ne démarre pas
env_file : le fichier qui contient la configuration pour l'environnement sans avoir les informations en clair dans le compose
POSTGRES_PASSWORD : les valeurs avec un $ font appel au fichier .env
Le fichier .env est un fichier caché par défaut
UPLOAD_LOCATION=Store_Immich
DB_DATA_LOCATION=./postgres
IMMICH_VERSION=release
DB_PASSWORD=monMdpsUperCompliqueEN2024!
DB_USERNAME=MonUserdelaBDD
DB_DATABASE_NAME=lenomdelabdd
#Volume sur NAS
BACKUPUSER=lenomduuserquialedroitsurlepartage
BACKUPPASSWORD=monMdpsUperCompliqueEN2024!++
Il faut, pour la mise à jour, faire dans un premier temps
docker compose down
Sur la release V1.118.0, il existe des modifications à faire sur le fichier de configuration et surtout sur un service à supprimer
https://github.com/immich-app/immich/releases/tag/v1.118.0
Avant, le port était 2283:3001, maintenant le port reste inchangé côté container
services:
immich-server:
container_name: immich_server
...
ports:
- - 2283:3001
+ - 2283:2283
...
Suppression des arguments start.sh et des microservices
services:
immich-server:
container_name: immich_server
...
:
- command: [ "start.sh", "immich" ]
...
- immich-microservices:
- container_name: immich_microservices
- ...
- :
- command: [ "start.sh", "microservices" ]
- ...
Suppression du container immich-microservices après avoir mis à jour le compose
docker compose down --remove-orphans
Et ensuite, on relance le container avec la commande
docker compose up -d
Et on vérifie que le service est rendu avec son URL sur un navigateur web.
Ensuite, depuis n'importe quel périphérique mobile, il est possible de mettre en place l'application Immich. L'accès en Wi-Fi et en local sera simple : dès que vous êtes à la maison, la sauvegarde se fera.
Si vous voulez un accès externe, il faudra faire une ouverture de port sur votre routeur/box et/ou faire une configuration dans votre reverse proxy ou autre solution.
Nous ne verrons pas ce dernier point ici.