5.1 KiB
5.1 KiB
Veille Versions Stack NAS & Référentiel Baserow
Ce document décrit le fonctionnement du dispositif de suivi et de veille automatisée des versions des conteneurs du NAS Synology.
Doctrine stricte : Ce workflow ne fait que détecter et notifier. Aucune mise à jour n'est exécutée automatiquement. Toute opération de mise à jour fait l'objet d'un brief de cadrage, d'une exécution contrôlée avec sauvegardes et d'une validation par commandes réelles.
1. Architecture du Dispositif
graph TD
Trigger["Schedule Trigger (Lundi 08h00 Africa/Tunis)"] --> ReadBR["Lire Table Baserow (Table 1097 / Infra Stack)"]
ReadBR --> SSHCheck["SSH Restreint NAS (n8n-versions-ro)"]
SSHCheck --> MapItems["Préparer Mapping & Éléments"]
MapItems --> DHub["API Docker Hub (Tags stables)"]
DHub --> Analyze["Analyser Écarts & Versions"]
Analyze --> UpdateBR["Mettre à jour Baserow (PATCH Table 1097)"]
UpdateBR --> Filter["Filtrer Alertes (Si nouvel écart détecté)"]
Filter -->|Nouvel écart| Telegram["Notification Telegram (ND_Telegram)"]
Filter -->|À jour ou En pause| Silent["Silence (0 spam)"]
2. Composants Techniques
A. Référentiel Baserow (infra_versions)
- Workspace :
148 (Hors-RLA) - Database :
Infra Stack(ID317) - Table :
infra_versions(ID1097) - URL :
https://baserow.bolbol.tn/database/317/table/1097 - Champs suivis :
conteneur(Texte, clé primaire) : Nom du conteneurimage_repo(Texte) : Repository Docker Hub (ex:n8nio/n8n,maximhq/bifrost)methode_verif(Single select) :image_tagouexec_versionversion_installee(Texte) : Version réelle active sur le NASderniere_version_disponible(Texte) : Dernière version stable publiéeecart(Texte) : Statut de l'écart (0,Installée: ... ➔ Dispo: ...)criticite(Single select) :Critique,Important,Mineurdate_derniere_verification(Date) : Date du dernier passage de veilledate_derniere_maj_effective(Date) : Date de la dernière MAJ appliquéestatut(Single select) :À jour,Retard mineur,Retard à traiter,En pauselien_runbook(URL) : Lien vers le guide d'exploitation / runbooknotes(Texte long) : Particularités techniques (ex: image custom, base de données, pins)
B. Accès SSH Restreint NAS (n8n-versions-ro)
Pour respecter le principe de moindre privilège et interdire tout shell interactif ou injection de commande :
- Compte DSM :
n8n-versions-ro(UID1041, membre du groupedocker65538). - Clé SSH : Clé Ed25519 dédiée (
/volume1/docker/scripts/id_ed25519_n8n_versions). - Restriction
authorized_keys:command="/volume1/docker/scripts/versions-check.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIn3e1VvE3Z/q1W5o6Q+30w7U57u3aK8JqC8Z57Z8z/c n8n-versions-ro - Script exécutable :
/volume1/docker/scripts/versions-check.sh- Filtre
$SSH_ORIGINAL_COMMANDcontre une whitelist stricte des 9 conteneurs. - Toute commande arbitraire (
rm -rf /,sh, etc.) est rejetée avec un code d'erreur1.
- Filtre
C. Workflow n8n (veille-versions-stack)
- ID Workflow :
zUWN5K4Q1A2JKFIS - Déclenchement : Hebdomadaire (Lundi à 08h00 Africa/Tunis) + Webhook de test manuel
/webhook/test-veille-versions. - Canal Telegram : Credential
ND_Telegram(OyOHh6jAzCDsiBux), Chat ID2084513684. - Export JSON :
veille-versions-stack.n8n.json
3. Table des 9 Conteneurs Suivis
| Conteneur | Image Repo | Méthode | Criticité | Particularités |
|---|---|---|---|---|
n8n |
n8nio/n8n |
exec_version |
Important | Image custom (docx, exceljs) |
bifrost |
maximhq/bifrost |
image_tag |
Critique | Pin image, backup config.db/config.json |
gitea |
gitea/gitea |
image_tag |
Important | Pin rootless, backup natif gitea dump |
portainer |
portainer/portainer-ce |
image_tag |
Mineur | Pilote stacks, MAJ en priorité |
vaultwarden |
vaultwarden/server |
image_tag |
Mineur | Pin alpine, backup db.sqlite3 |
baserow |
baserow/baserow |
exec_version |
Important | Mode minimal, DNS dynamique Nginx |
crowdsec |
crowdsecurity/crowdsec |
exec_version |
Important | Sécurité IDS/IPS DSM |
tailscale-nyora-bridge |
tailscale/tailscale |
image_tag |
Mineur | Bridge HTTP/SOCKS5 |
trilium |
triliumnext/trilium |
image_tag |
Mineur | En pause (exclu des alertes actives) |
4. Procédure de Test et Validation
-
Test d'exécution manuelle sans alerte (tout à jour) :
curl -s http://192.168.100.33:5678/webhook/test-veille-versions # Réponse attendue : {"no_alert": true, "message": "Aucun nouvel ecart"} -
Test d'interrogation SSH unitaire :
ssh -p 22222 -i /volume1/docker/scripts/id_ed25519_n8n_versions -o BatchMode=yes n8n-versions-ro@127.0.0.1 "n8n" # Réponse attendue : version exacte (ex: 2.36.5)