From afa8406c5a80b1472bbda25153b1e04ac06a456f Mon Sep 17 00:00:00 2001 From: bolbol Date: Fri, 21 Aug 2026 21:15:23 +0100 Subject: [PATCH] docs(trilium): procedure de mise a jour v0.105.0 et rapport d'investigation --- common/trilium-update-procedure.md | 112 +++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 common/trilium-update-procedure.md diff --git a/common/trilium-update-procedure.md b/common/trilium-update-procedure.md new file mode 100644 index 0000000..6aa5c66 --- /dev/null +++ b/common/trilium-update-procedure.md @@ -0,0 +1,112 @@ +# Procédure de Mise à Jour Trilium (`triliumnext/trilium`) + +Ce document formalise la procédure d'exploitation, de sauvegarde et de mise à jour du conteneur **Trilium Notes** sur le NAS Synology. + +--- + +## 1. Contexte & Historique de Version + +| Attribut | Valeur Initiale (Départ) | Valeur Cible (Post-MAJ) | +|---|---|---| +| **Version Serveur** | `0.103.0` (db schema `238`) | **`0.105.0`** (db schema `240`) | +| **Image Docker** | `triliumnext/trilium:latest` (sha256:2384e4...) | **`triliumnext/trilium:v0.105.0`** | +| **Date d'exécution** | 14/05/2026 | **21/08/2026** | +| **Port hôte** | `4292:8080` | `4292:8080` | +| **Volume de données** | `/volume1/docker/trilium` | `/volume1/docker/trilium` | +| **Volume notes** | 726 notes (initial) | **782 notes** (post-migration) | + +--- + +## 2. Investigation sur la Politique de Restart (`restart: no`) + +- **Constat dans le registre** : `ports-registry.md` notait `restart NO (voir alerte)`. +- **Investigation technique** : + - L'image de départ tournait avec `unless-stopped` / `on-failure:5` selon la stack Portainer 252. + - Aucune anomalie de boucle de crash n'a été constatée dans les logs Trilium (`All consistency checks passed with no errors detected`). + - Conformément à la doctrine de prudence demandée dans le brief, la politique de restart a été explicitement fixée à `restart: "no"` dans le fichier compose `/volume1/docker/trilium/docker-compose.yml` et `/volume1/docker/portainer/compose/252/docker-compose.yml`. + +--- + +## 3. Procédure de Sauvegarde + +Trilium stocke ses données sous format SQLite (`document.db` + `document.db-wal`). + +### Étape A — Arrêt propre et checkpoint SQLite +```bash +docker stop Trilium +``` +*L'arrêt propre permet à SQLite de vider le fichier WAL (`document.db-wal`) dans la base principale (`document.db`).* + +### Étape B — Copie intégrale du répertoire et vérification d'intégrité +```bash +# Sauvegarde des fichiers clés +mkdir -p /volume1/docker/trilium_db_backup_20260821_pre_v0.105.0 +cp -p /volume1/docker/trilium/document.db /volume1/docker/trilium_db_backup_20260821_pre_v0.105.0/ +cp -p /volume1/docker/trilium/config.ini /volume1/docker/trilium_db_backup_20260821_pre_v0.105.0/ +cp -p /volume1/docker/trilium/session_secret.txt /volume1/docker/trilium_db_backup_20260821_pre_v0.105.0/ + +# Vérification SQLite PRAGMA integrity_check +python3 -c " +import sqlite3 +conn = sqlite3.connect('/volume1/docker/trilium/document.db') +c = conn.cursor() +c.execute('PRAGMA integrity_check;') +print(c.fetchall()) # Doit afficher [('ok',)] +" +``` + +### Étape C — Sauvegarde native Trilium +Lors du démarrage avec une nouvelle version, Trilium génère automatiquement un backup natif avant migration dans `/volume1/docker/trilium/backup-before-migration.db`. + +--- + +## 4. Configuration `docker-compose.yml` (Pinning strict) + +Fichier : `/volume1/docker/trilium/docker-compose.yml` + +```yaml +services: + trilium: + image: triliumnext/trilium:v0.105.0 + container_name: Trilium + mem_limit: 8g + cpu_shares: 2048 + healthcheck: + test: ["CMD-SHELL", "nc -z 127.0.0.1 8080 || exit 1"] + interval: 10s + timeout: 5s + retries: 3 + start_period: 90s + security_opt: + - no-new-privileges:false + environment: + - TRILIUM_DATA_DIR=/home/node/trilium-data + - USER_UID=1026 + - USER_GID=100 + ports: + - 4292:8080 + volumes: + - /volume1/docker/trilium:/home/node/trilium-data:rw + restart: "no" +``` + +--- + +## 5. Commandes de Recréation et Validation + +```bash +# 1. Pull de l'image pinnée +docker pull triliumnext/trilium:v0.105.0 + +# 2. Recréation +cd /volume1/docker/trilium +docker-compose down +docker-compose up -d + +# 3. Vérification des logs et des migrations (db 238 -> 240) +docker logs Trilium --tail 50 + +# 4. Vérification API et statut HTTP +curl -s http://192.168.100.33:4292/api/setup/status +# Réponse : {"isInitialized":true,"schemaExists":true,"authRequired":false,"syncVersion":39} +```