Files
nas-runbooks/common/veille-versions-stack.md
T

5.2 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 : 187 (Perso) (déplacé depuis le 148 le 21/08/2026)
  • Database : Infra Stack (ID 317)
  • Table : infra_versions (ID 1097)
  • URL : https://baserow.bolbol.tn/database/317/table/1097
  • Token API dédié : n8n-infra-versions (Token ID 32, scopé Workspace 187 Perso)
  • Champs suivis :
    • conteneur (Texte, clé primaire) : Nom du conteneur
    • image_repo (Texte) : Repository Docker Hub (ex: n8nio/n8n, maximhq/bifrost)
    • methode_verif (Single select) : image_tag ou exec_version
    • version_installee (Texte) : Version réelle active sur le NAS
    • derniere_version_disponible (Texte) : Dernière version stable publiée
    • ecart (Texte) : Statut de l'écart (0, Installée: ... ➔ Dispo: ...)
    • criticite (Single select) : Critique, Important, Mineur
    • date_derniere_verification (Date) : Date du dernier passage de veille
    • date_derniere_maj_effective (Date) : Date de la dernière MAJ appliquée
    • statut (Single select) : À jour, Retard mineur, Retard à traiter, En pause
    • lien_runbook (URL) : Lien vers le guide d'exploitation / runbook
    • notes (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 (UID 1041, membre du groupe docker 65538).
  • 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_COMMAND contre une whitelist stricte des 9 conteneurs.
    • Toute commande arbitraire (rm -rf /, sh, etc.) est rejetée avec un code d'erreur 1.

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 ID 2084513684.
  • 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

  1. 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"}
    
  2. 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)