# 2.2 - Télécharger Compose et configurer .env

## Télécharger les fichiers officiels

```bash
cd /srv/immich/app

wget -O docker-compose.yml \
  https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml

wget -O .env \
  https://github.com/immich-app/immich/releases/latest/download/example.env
```

Conserver une copie avant modification :

```bash
cp -a docker-compose.yml docker-compose.yml.original
cp -a .env .env.original
```

## Configurer .env

```dotenv
UPLOAD_LOCATION=/srv/immich/data
DB_DATA_LOCATION=/srv/immich/postgres
TZ=Europe/Paris
IMMICH_VERSION=v3
DB_PASSWORD=REMPLACER_PAR_UN_SECRET_ALPHANUMERIQUE
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
```

La documentation recommande un mot de passe PostgreSQL composé de lettres et chiffres afin d'éviter les problèmes d'interprétation par Docker.

Générer un secret :

```bash
openssl rand -hex 24
```

Ne pas afficher ou partager le fichier `.env` complet après y avoir ajouté le secret.

## Version fixe ou version majeure

Pour une nouvelle installation stable :

```dotenv
IMMICH_VERSION=v3
```

Pour restaurer une ancienne instance v2.7.5, il peut être préférable de démarrer avec la version exacte de la source :

```dotenv
IMMICH_VERSION=v2.7.5
```

Après validation de la restauration, lire les notes de version et effectuer la montée vers v3. Ne jamais tenter un downgrade d'une base déjà migrée vers une version plus récente.

## Valider le fichier Compose

```bash
docker compose config --quiet
docker compose config > /tmp/immich-compose-rendu.yml
```

La seconde commande développe les variables. Le fichier rendu peut donc contenir des secrets et doit rester local puis être supprimé après contrôle.

## Protéger la configuration

```bash
chmod 600 .env
chmod 644 docker-compose.yml
```

Sauvegarder `.env` et `docker-compose.yml` dans un emplacement chiffré. Le mot de passe de base et les chemins sont nécessaires pour une reconstruction fidèle.

Référence : `https://docs.immich.app/install/docker-compose/`