> ## Documentation Index
> Fetch the complete documentation index at: https://docs.casebender.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Mettre à niveau CaseBender

> Mettez à niveau votre déploiement CaseBender vers la dernière version en toute sécurité, sans perdre vos données, licences ou identifiants.

## Vue d'ensemble

CaseBender est distribué sous forme d'un ensemble d'images de conteneur
versionnées. Mettre à niveau consiste à récupérer les dernières images et à
recréer les conteneurs. Vos données, votre licence et votre configuration
résident dans des **volumes Docker nommés** et dans votre fichier **`.env`** — les
deux sont préservés lors des mises à niveau, de sorte qu'une mise à niveau ne
touche jamais vos dossiers, utilisateurs, identifiants ou licence tant que vous
les conservez.

<Note>
  Les migrations de base de données et l'insertion des données par défaut
  s'exécutent automatiquement au démarrage après chaque mise à niveau. Vous n'avez
  aucune commande de migration à lancer manuellement.
</Note>

## Ce qui est préservé lors des mises à niveau

| Quoi                                        | Où cela réside             | Préservé par               |
| ------------------------------------------- | -------------------------- | -------------------------- |
| Dossiers, alertes, utilisateurs, paramètres | PostgreSQL                 | volume `pgdata`            |
| Clé secrète de licence + blob               | `/app/apps/web/app/secret` | volume `casebender_secret` |
| Fichiers téléversés / pièces jointes        | MinIO                      | volume `miniodata`         |
| État de la file / du cache                  | Redis                      | volume `redis_data`        |
| Configuration d'environnement               | `.env`                     | votre fichier `.env`       |

<Warning>
  N'exécutez jamais `docker compose down -v` sur un système de production. L'option
  `-v` supprime tous les volumes nommés — votre base de données, votre licence et
  vos fichiers. Sans ces volumes, le prochain démarrage crée une base de données
  vierge, ce qui réinitialise le mot de passe administrateur par défaut et régénère
  la licence.
</Warning>

## Procédure de mise à niveau (Docker Compose)

<Steps>
  <Step title="Sauvegardez votre base de données et votre .env">
    ```bash theme={null}
    # Sauvegarde de PostgreSQL
    docker compose exec -T db pg_dump -U superadmin casebender > casebender-backup-$(date +%F).sql

    # Conservez une copie de votre configuration
    cp .env .env.backup
    ```
  </Step>

  <Step title="Récupérez les dernières images">
    ```bash theme={null}
    docker compose pull
    ```
  </Step>

  <Step title="Recréez les conteneurs">
    ```bash theme={null}
    docker compose up -d
    ```

    Compose ne recrée que les services dont l'image a changé et conserve vos volumes.
  </Step>

  <Step title="Surveillez les journaux">
    ```bash theme={null}
    docker compose logs -f app
    ```

    Les migrations et l'insertion des données s'exécutent au démarrage — attendez
    que l'application se déclare saine.
  </Step>
</Steps>

## Vérification après la mise à niveau

* Connectez-vous et vérifiez que vos dossiers, alertes et utilisateurs existants sont présents.
* Vérifiez que votre connexion fonctionne toujours (votre mot de passe administrateur est inchangé).
* Vérifiez que le worker traite les tâches :

```bash theme={null}
docker compose logs worker | tail
```

## Retour arrière (rollback)

En cas de problème, épinglez l'ancienne étiquette d'image et restaurez votre sauvegarde :

```bash theme={null}
# Épinglez la version connue comme stable dans docker-compose.yml, p. ex.
#   image: casebender/casebender:vX.Y.Z
docker compose pull
docker compose up -d

# Si nécessaire, restaurez la sauvegarde de la base de données
cat casebender-backup-YYYY-MM-DD.sql | docker compose exec -T db psql -U superadmin casebender
```

<Note>
  Mettez toujours à niveau un environnement de staging en premier, et effectuez une
  sauvegarde récente de la base de données juste avant de mettre à niveau la
  production.
</Note>

## Erreurs de mise à niveau fréquentes

Les deux problèmes les plus fréquents proviennent d'une perte d'état :

* **Changer le nom du projet ou le répertoire Compose.** Docker dérive les noms de
  volumes du projet. Renommer le dossier ou utiliser un nom de projet `-p`
  différent fait pointer Compose vers des volumes *neufs et vides*. Mettez toujours
  à niveau depuis le même répertoire/projet afin de réutiliser vos volumes
  existants.
* **`LICENSE_SECRET_KEY` absente et pas de volume `casebender_secret`.** Sur les
  anciens déploiements sans le volume de secret persistant, définissez
  `LICENSE_SECRET_KEY` dans `.env` (ou ajoutez le volume) pour que la licence
  survive. Les déploiements actuels la conservent automatiquement.

## Installateur de bureau

Si vous avez déployé avec l'Installateur de bureau, utilisez le flux de mise à
jour intégré de l'application — il récupère les dernières images et recrée les
services tout en préservant votre répertoire de données, votre `.env` et votre clé
de licence.

## Google Cloud Run

Les mises à niveau sur Cloud Run déploient une nouvelle révision. Comme Cloud Run
dispose d'un système de fichiers éphémère, le secret de licence doit être fourni
via **Secret Manager** sous la forme `LICENSE_SECRET_KEY` afin qu'il persiste
entre les révisions. Redéployez avec votre instance Cloud SQL et vos secrets
existants :

```bash theme={null}
gcloud run deploy casebender-web --image <nouvelle-image> --region <région>
```

Les migrations s'exécutent automatiquement sur la nouvelle révision.
