6.9 KiB
6.9 KiB
Veille Versions Stack NAS & VPS — 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 et du VPS Contabo.
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 --> SSHNAS["SSH Restreint NAS (n8n-versions-ro @ 192.168.100.33:22222)"]
SSHNAS --> SSHVPS["SSH Restreint VPS (n8n-versions-ro @ tailscale-nyora-bridge:22223)"]
SSHVPS --> MapItems["Préparer Mapping & Éléments (Fusion NAS & VPS)"]
MapItems --> Registries["API Registres (Docker Hub & npm registry)"]
Registries --> Analyze["Analyser Écarts & Versions (Boucle 11 items)"]
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) - Database :
Infra Stack(ID317) - Table :
infra_versions(ID1097) - URL :
https://baserow.bolbol.tn/database/317/table/1097 - Token API dédié :
n8n-infra-versions(Token ID32, scopé Workspace 187 Perso) - Champs suivis :
conteneur(Texte, clé primaire) : Nom du conteneurimage_repo(Texte) : Repository Docker Hub ou nom de package npm (ex:@deepseek-ai/dsh)methode_verif(Single select) :image_tag,exec_versionounpm_registryemplacement(Single select) :NASouVPSversion_installee(Texte) : Version réelle active sur l'hôtederniere_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)
- 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 AAAAC3NzaC1lZDI1NTE5AAAAIKDwuAwKnKiKskL+Vr4WYhn/uySlk5jyOHPh1R/P/9K0 n8n-versions-ro - Script exécutable :
/volume1/docker/scripts/versions-check.sh(mode 755)
C. Accès SSH Restreint VPS (n8n-versions-ro)
- Compte VPS :
n8n-versions-ro(UID1002, GID1002, membre du groupedocker). - Clé SSH dédiée :
/volume1/docker/scripts/id_ed25519_n8n_versions_vps- Fingerprint réel :
256 SHA256:fTDnqFouAhwApAsnQjuLoGjvZCNoHAwYC4gpGqRvygY n8n-versions-ro@vps (ED25519) - Clé publique :
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFdwCzUBTsBKNSRxhjwU82o9T2VbQn4HKbp+3mFyIQTq n8n-versions-ro@vps
- Fingerprint réel :
- Restriction
authorized_keysVPS (/home/n8n-versions-ro/.ssh/authorized_keys) :command="/home/n8n-versions-ro/versions-check-vps.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFdwCzUBTsBKNSRxhjwU82o9T2VbQn4HKbp+3mFyIQTq n8n-versions-ro@vps - Script exécutable VPS :
/home/n8n-versions-ro/versions-check-vps.sh(mode 755) - Relais Réseau n8n ➔ VPS :
- OpenSSH standard écoute sur le port
22222sur l'interfacetailscale0du VPS (100.94.90.119:22222). - Sur le NAS, le conteneur
tailscale-vps-ssh-relay(partageant l'espace réseau detailscale-nyora-bridge) relaie le port22223vers100.94.90.119:22222. - Le conteneur
n8ninterroge directementtailscale-nyora-bridge:22223.
- OpenSSH standard écoute sur le port
D. 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 11 Conteneurs Suivis
| Conteneur | Emplacement | Image Repo / Package | Méthode | Criticité | Particularités |
|---|---|---|---|---|---|
n8n |
NAS | n8nio/n8n |
exec_version |
Important | Image custom (docx, exceljs) |
bifrost |
NAS | maximhq/bifrost |
image_tag |
Critique | Pin image, backup config.db/config.json |
gitea |
NAS | gitea/gitea |
image_tag |
Important | Pin rootless, backup natif gitea dump |
portainer |
NAS | portainer/portainer-ce |
image_tag |
Mineur | Pilote stacks, MAJ en priorité |
vaultwarden |
NAS | vaultwarden/server |
image_tag |
Mineur | Pin alpine, backup db.sqlite3 |
baserow |
NAS | baserow/baserow |
exec_version |
Important | Mode minimal, DNS dynamique Nginx |
crowdsec |
NAS | crowdsecurity/crowdsec |
exec_version |
Important | Sécurité IDS/IPS DSM |
tailscale-nyora-bridge |
NAS | tailscale/tailscale |
image_tag |
Mineur | Bridge HTTP/SOCKS5 |
trilium |
NAS | triliumnext/trilium |
image_tag |
Mineur | En pause (exclu des alertes actives) |
dsh-vps |
VPS | @deepseek-ai/dsh |
npm_registry |
Important | Build custom, version npm pinnée, patch binding startup.js |
dsh-vps-filebrowser |
VPS | filebrowser/filebrowser |
image_tag |
Mineur | Compagnon Web UI, entrypoint /bin/filebrowser |
4. Procédure de Test et Validation
-
Test d'exécution manuelle globale via webhook :
curl -s http://192.168.100.33:5678/webhook/test-veille-versions -H "Host: n8n.bolbol.tn" # Réponse attendue si tout est à jour : {"no_alert": true, "message": "Aucun nouvel ecart"} -
Test d'interrogation SSH unitaire NAS :
ssh -p 22222 -i /volume1/docker/scripts/id_ed25519_n8n_versions -o BatchMode=yes n8n-versions-ro@127.0.0.1 "all" -
Test d'interrogation SSH unitaire VPS (depuis le conteneur
n8n) :docker exec n8n ssh -p 22223 -i /tmp/id_vps_n8n -o BatchMode=yes n8n-versions-ro@tailscale-nyora-bridge "all"