diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..5c5058d --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,8 @@ +{ + "permissions": { + "allow": [ + "Bash(ls /var/home/Gato/IdeaProjects/Infra/)", + "Read(//var/home/Gato/IdeaProjects/Infra/**)" + ] + } +} diff --git a/Home.md b/Home.md index 9bf8e45..6cbf4dc 100644 --- a/Home.md +++ b/Home.md @@ -35,3 +35,4 @@ Internet - [Installation Production](Installation-Production) - [Installation Développement](Installation-Developpement) +- [Mise à jour des applications](Mise-a-jour-Applications) diff --git a/Mise-a-jour-Applications.md b/Mise-a-jour-Applications.md new file mode 100644 index 0000000..bc464d8 --- /dev/null +++ b/Mise-a-jour-Applications.md @@ -0,0 +1,91 @@ +# Mise à jour des applications + +Chaque application est packagée sous forme d'image Docker publiée sur le registre Gitea (`git.goutailler-olivier.com`) par la CI lors d'une release. La mise à jour en production consiste à récupérer la nouvelle image et à recréer le conteneur. + +--- + +## Principe général + +```bash +cd / +docker compose pull # télécharge la nouvelle image +docker compose up -d # recrée le conteneur si l'image a changé +``` + +`docker compose up -d` détecte automatiquement que l'image locale est différente de celle utilisée par le conteneur en cours et le recrée. Le temps d'indisponibilité est limité à la durée du redémarrage du conteneur (quelques secondes). + +--- + +## Exemple : mettre à jour Bonsai Webapp + +Une nouvelle release a été publiée sur Gitea et l'image `bonsai-webapp:latest` a été mise à jour par la CI. + +```bash +cd bonsai-webapp/ +docker compose pull +docker compose up -d +``` + +Vérifier que le conteneur tourne bien avec la nouvelle image : + +```bash +docker inspect bonsai-webapp --format '{{.Image}}' +# ou +docker compose ps +``` + +--- + +## Mettre à jour une version précise (tag de release) + +Par défaut les `docker-compose.yml` pointent sur `:latest`. Pour épingler une version spécifique, éditer le fichier et remplacer le tag : + +```yaml +image: git.goutailler-olivier.com/bonsai/bonsai-webapp:v1.2.3 +``` + +Puis appliquer : + +```bash +docker compose pull +docker compose up -d +``` + +--- + +## Revenir à une version précédente (rollback) + +1. Identifier le tag voulu dans le registre Gitea : **Packages → bonsai-webapp** +2. Modifier le tag dans `docker-compose.yml` (ex. `v1.1.0`) +3. Appliquer : + +```bash +docker compose pull +docker compose up -d +``` + +--- + +## Mettre à jour tous les services d'un coup + +```bash +for dir in traefik keycloak gitea bonsai-api bonsai-webapp nextcloud trilium; do + echo "=== $dir ===" + (cd "$dir" && docker compose pull && docker compose up -d) +done +``` + +--- + +## Vérifications après mise à jour + +```bash +# État de tous les conteneurs +docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Image}}" + +# Logs du service mis à jour +docker logs bonsai-webapp --tail 50 -f + +# Supprimer les anciennes images devenues inutiles +docker image prune -f +```