# Configurer les mises à jour depuis le navigateur | RenewCMS Docs

> Installez l’assistant systemd une seule fois, puis téléchargez et installez les versions signées de RenewCMS depuis les paramètres.

Page canonique: https://renewcms.dev/fr/resources/browser-updates

## Vérifier votre installation

Les mises à jour depuis le navigateur nécessitent l’exécutable autonome de RenewCMS (v2.6.0-beta ou ultérieur), lancé sous Linux par un service systemd sans privilèges. L’exécutable et son dossier parent doivent être contrôlés par root. Il vous faut un accès sudo au serveur pour la configuration et un compte propriétaire RenewCMS pour appliquer les mises à jour. Avec Docker, téléchargez une nouvelle image et recréez le conteneur.

Sauvegardez la base de données, les médias, la configuration et l’exécutable actuel avant de tester ou d’appliquer une mise à jour. L’assistant utilise des noms d’unités systemd fixes. Configurez-le pour une seule instance RenewCMS par serveur.

## Identifier les réglages du service

Les commandes reprennent le service et le fichier d’environnement du guide d’installation. Adaptez le nom de l’unité et le chemin de configuration. Avec SQLite, utilisez le dossier qui contient `DB_FILE`. Résolvez les chemins relatifs à partir du `WorkingDirectory` du service. Par exemple, `./data/renewcms.db` sous `/var/lib/renewcms` donne `/var/lib/renewcms/data`. Conservez le chemin actuel de votre base. Avec une base externe, utilisez le `DATA_DIR` configuré dans RenewCMS.

```bash
systemctl show renewcms -p User -p WorkingDirectory -p ExecStart -p EnvironmentFiles
sudo grep -E '^(DB_FILE|DATA_DIR|PORT)=' /etc/renewcms/renewcms.env
```

## Activer l’assistant de mise à jour

Exécutez cette commande une seule fois sur le serveur. Adaptez les deux chemins de l’exécutable, le nom du service, le dossier de données et le port. Utilisez le port local sur lequel RenewCMS répond à `/healthz` sur `127.0.0.1`. La commande installe et démarre l’unité de surveillance systemd et écrit `update-helper.json` dans le dossier de données.

```bash
sudo /opt/renewcms/renewcms enable-browser-updates \
  --service renewcms \
  --binary /opt/renewcms/renewcms \
  --data-dir /var/lib/renewcms \
  --port 8080
```

## Vérifier la configuration et tester un redémarrage

L’unité de surveillance doit afficher `active` et `enabled`. Rechargez les Paramètres avec le compte propriétaire et ouvrez la section Mises à jour. Si aucune mise à jour n’est prête, testez l’assistant en cliquant sur Redémarrer, puis en confirmant. Le site est brièvement indisponible. Attendez son retour, puis vérifiez `/healthz` sur l’adresse publique de votre CMS.

```bash
systemctl is-active renewcms-update.path
systemctl is-enabled renewcms-update.path
```

## Installer une mise à jour depuis les paramètres

Dans Paramètres → Mises à jour, cliquez sur Rechercher des mises à jour. Si une nouvelle version est disponible, lisez ses notes de version et cliquez sur Mettre à jour. RenewCMS télécharge et vérifie la version signée pendant que votre site reste en ligne.

Lorsque la mise à jour est prête à être installée, enregistrez votre travail, cliquez sur Redémarrer et confirmez. Vous pouvez attendre une fenêtre de maintenance avant de redémarrer. Une fois le site de nouveau accessible, vérifiez la nouvelle version dans les Paramètres et contrôlez `/healthz` sur l’adresse publique de votre CMS.

## Diagnostiquer un bouton absent ou une mise à jour en échec

Si le bouton Redémarrer est absent, vérifiez que vous utilisez le compte propriétaire et que le compte du service peut lire `update-helper.json` dans le dossier de données réel. Si vous avez configuré l’assistant avec le mauvais dossier, lancez `disable-browser-updates` avec le nom du service et le dossier de données d’origine avant de le réactiver avec les bons réglages.

Si le site ne revient pas ou si la mise à jour échoue, examinez `update-result.json` dans le dossier de données, consultez le journal de l’assistant et testez le point de contrôle local. Le retour arrière automatique rétablit l’exécutable précédent. Si vous devez annuler une migration de base de données, utilisez votre sauvegarde.

```bash
sudo journalctl -u renewcms-update.service -n 30 --no-pager
curl -fsS http://127.0.0.1:8080/healthz
```
