docs: documentation du service olhar-api

Ajout de la section d'installation, de la procédure de rollback et de
l'entrée dans l'architecture et les services.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 08:03:49 +02:00
parent 1c7b641fca
commit 5cb0c6d23c
4 changed files with 68 additions and 12 deletions
+6
@@ -1,5 +1,11 @@
# Changelog # Changelog
## 2026-06-07 — Ajout du service Olhar API
- `Home.md` — ajout de Olhar API dans l'architecture et le tableau des services
- `Installation-Production.md` — section 8 Olhar API : `docker-compose.yml`, variables d'environnement, secrets Gitea requis ; renumérotation des sections 9→12
- `Mise-a-jour-Applications.md` — ajout de la procédure de rollback Olhar API avec option `restore_db` ; ajout de `olhar-api` dans la boucle de mise à jour globale
## 2026-06-07 — Ajout de Watchtower et documentation du WATCHTOWER_TOKEN ## 2026-06-07 — Ajout de Watchtower et documentation du WATCHTOWER_TOKEN
- `Home.md` — ajout de Watchtower dans l'architecture et le tableau des services - `Home.md` — ajout de Watchtower dans l'architecture et le tableau des services
+4 -1
@@ -18,7 +18,9 @@ Internet
├── luz.goutailler-olivier.com → Luz (front-end Angular) ├── luz.goutailler-olivier.com → Luz (front-end Angular)
├── cloud.goutailler-olivier.com → Nextcloud ├── cloud.goutailler-olivier.com → Nextcloud
├── notes.goutailler-olivier.com → Trilium ├── notes.goutailler-olivier.com → Trilium
├── olhar.goutailler-olivier.com → Olhar ├── olhar.goutailler-olivier.com
│ ├── /api → Olhar API (Spring Boot)
│ └── / → Olhar (front-end)
└── watchtower.goutailler-olivier.com → Watchtower (mises à jour automatiques) └── watchtower.goutailler-olivier.com → Watchtower (mises à jour automatiques)
``` ```
@@ -34,6 +36,7 @@ Internet
| Luz | `luz/` | `luz.goutailler-olivier.com` | | Luz | `luz/` | `luz.goutailler-olivier.com` |
| Nextcloud | `nextcloud/` | `cloud.goutailler-olivier.com` | | Nextcloud | `nextcloud/` | `cloud.goutailler-olivier.com` |
| Trilium | `trilium/` | `notes.goutailler-olivier.com` | | Trilium | `trilium/` | `notes.goutailler-olivier.com` |
| Olhar API | `olhar-api/` | `olhar.goutailler-olivier.com/api` |
| Olhar | `olhar/` | `olhar.goutailler-olivier.com` | | Olhar | `olhar/` | `olhar.goutailler-olivier.com` |
| Watchtower | `watchtower/` | `watchtower.goutailler-olivier.com` | | Watchtower | `watchtower/` | `watchtower.goutailler-olivier.com` |
+43 -10
@@ -156,7 +156,39 @@ L'image `git.goutailler-olivier.com/gato/luz:latest` est construite par la CI Gi
--- ---
## 8. Olhar ## 8. Olhar API
L'image est construite par la CI Gitea et poussée sur le registre `git.goutailler-olivier.com/gato/olhar-api:latest`.
```bash
cd olhar-api/
echo "POSTGRES_PASSWORD=<mot_de_passe_sécurisé>" > .env
docker compose up -d
```
Variables d'environnement :
| Variable | Description |
|---|---|
| `POSTGRES_PASSWORD` | Mot de passe PostgreSQL (injecté via `.env`) |
| `DATASOURCE_URL` | `jdbc:postgresql://db:5432/olhar` (défaut réseau interne) |
| `KEYCLOAK_JWKS_URI` | `https://auth.goutailler-olivier.com/realms/olhar/protocol/openid-connect/certs` |
| `CORS_ALLOWED_ORIGIN_PROD` | `https://olhar.goutailler-olivier.com` |
Flyway applique automatiquement les migrations SQL au démarrage.
**Secrets Gitea à configurer au niveau de l'organisation `gato` :**
| Secret | Description |
|---|---|
| `RELEASE_TOKEN` | Token Gitea avec droits `write:packages` et `write:repository` |
| `WATCHTOWER_TOKEN` | Token HTTP de l'API Watchtower pour déclencher le redéploiement (voir section 12) |
| `SERVER_HOST` | Adresse IP ou hostname du serveur de production |
| `SERVER_SSH_KEY` | Clé SSH privée pour accéder au serveur |
---
## 9. Olhar
```bash ```bash
cd olhar/ cd olhar/
@@ -170,11 +202,11 @@ L'image `git.goutailler-olivier.com/gato/olhar:latest` est construite par la CI
| Secret | Description | | Secret | Description |
|---|---| |---|---|
| `RELEASE_TOKEN` | Token Gitea avec droits `write:packages` et `write:repository` | | `RELEASE_TOKEN` | Token Gitea avec droits `write:packages` et `write:repository` |
| `WATCHTOWER_TOKEN` | Token HTTP de l'API Watchtower pour déclencher le redéploiement (voir section 11) | | `WATCHTOWER_TOKEN` | Token HTTP de l'API Watchtower pour déclencher le redéploiement (voir section 12) |
--- ---
## 9. Nextcloud ## 10. Nextcloud
```bash ```bash
cd nextcloud/ cd nextcloud/
@@ -192,7 +224,7 @@ Variables à personnaliser dans `docker-compose.yml` avant le premier lancement
--- ---
## 10. Trilium ## 11. Trilium
```bash ```bash
cd trilium/ cd trilium/
@@ -207,7 +239,7 @@ mkdir -p /home/gato/Applications/Trilium/data
--- ---
## 11. Watchtower ## 12. Watchtower
Watchtower surveille les conteneurs Docker et les redémarre automatiquement lorsqu'une nouvelle image est disponible. Il est déclenché par les pipelines CI/CD via son API HTTP sécurisée par un token. Watchtower surveille les conteneurs Docker et les redémarre automatiquement lorsqu'une nouvelle image est disponible. Il est déclenché par les pipelines CI/CD via son API HTTP sécurisée par un token.
@@ -243,7 +275,7 @@ Le même token doit être ajouté comme secret `WATCHTOWER_TOKEN` dans les param
| Organisation | Chemin dans Gitea | Dépôts concernés | | Organisation | Chemin dans Gitea | Dépôts concernés |
|---|---|---| |---|---|---|
| `gato` | Settings → Secrets → New Secret | Luz, Olhar | | `gato` | Settings → Secrets → New Secret | Luz, Olhar, Olhar API |
| `bonsai` | Settings → Secrets → New Secret | Bonsai-webapp | | `bonsai` | Settings → Secrets → New Secret | Bonsai-webapp |
> **Important :** la valeur du secret Gitea doit être identique à celle définie dans le `.env` serveur. > **Important :** la valeur du secret Gitea doit être identique à celle définie dans le `.env` serveur.
@@ -260,10 +292,11 @@ Le même token doit être ajouté comme secret `WATCHTOWER_TOKEN` dans les param
5. Bonsai API 5. Bonsai API
6. Bonsai Webapp 6. Bonsai Webapp
7. Luz 7. Luz
8. Olhar 8. Olhar API
9. Nextcloud 9. Olhar
10. Trilium 10. Nextcloud
11. Watchtower 11. Trilium
12. Watchtower
``` ```
--- ---
+15 -1
@@ -160,6 +160,20 @@ docker start bonsai-api
--- ---
## Rollback Olhar API (avec ou sans restauration BDD)
1. Aller dans **Gitea → Olhar-api → Actions → Rollback → Run workflow**
2. Saisir la version cible (ex. `v1.2.3`)
3. Choisir `restore_db` :
- `no` (défaut) — rollback du code uniquement (migrations Flyway compatibles)
- `yes` — rollback du code **et** restauration de la base de données depuis le backup créé avant ce déploiement
> **Attention** : `restore_db=yes` écrase toutes les données créées depuis le déploiement à annuler. À réserver aux cas où la migration de schéma est incompatible avec l'ancienne version.
Les backups sont stockés dans `/opt/backups/olhar-api/` sur le serveur.
---
## Rollback Olhar ## Rollback Olhar
1. Aller dans **Gitea → Olhar → Actions → Rollback → Run workflow** 1. Aller dans **Gitea → Olhar → Actions → Rollback → Run workflow**
@@ -171,7 +185,7 @@ docker start bonsai-api
## Mettre à jour tous les services d'un coup ## Mettre à jour tous les services d'un coup
```bash ```bash
for dir in traefik keycloak gitea bonsai-api bonsai-webapp luz olhar nextcloud trilium; do for dir in traefik keycloak gitea bonsai-api bonsai-webapp luz olhar-api olhar nextcloud trilium; do
echo "=== $dir ===" echo "=== $dir ==="
(cd "$dir" && docker compose pull && docker compose up -d) (cd "$dir" && docker compose pull && docker compose up -d)
done done