align for IA agents + grafana

This commit is contained in:
LeCoffre Deployment 2025-09-22 11:53:28 +00:00
parent 378337d9cc
commit be5b64475f
4 changed files with 102 additions and 36 deletions

View File

@ -5,23 +5,25 @@
## Todo ## Todo
* [ ] Soit très explicite dans tes commandes pour ne pas entrainer de confusions entre **tag** et **branche** de même nom. * [ ] Soit très explicite dans tes commandes pour ne pas entrainer de confusions entre **tag** et **branche** de même nom.
* [ ] Vérifie qu'il n'y a pas de `.github/` * [ ] Vérifie qu'il n'y a pas de `.github/`.
* [ ] Vérifie qu'il y a un `.gitea/` * [ ] Vérifie qu'il y a un `.gitea/`.
* [ ] Vérifie que le repos **git** est sur `git.4nkweb.com` * [ ] Vérifie que le repos **git** est sur `git.4nkweb.com`.
* [ ] Vérifie que le repos **docker** est sur `git.4nkweb.com` * [ ] Vérifie que le repos **docker** est sur `git.4nkweb.com`.
* [ ] Vérifie l'exhaustivité de .dockerignore * [ ] Vérifie l'exhaustivité de .dockerignore.
* [ ] Vérifie l'exhaustivité de .gitignore * [ ] Vérifie l'exhaustivité de .gitignore.
* [ ] Vérifie l'exhaustivité de .cursorignore * [ ] Vérifie l'exhaustivité de .cursorignore.
* [ ] Vérifie que l'auth se fait par `secrets.USER` et `secrets.TOKEN` * [ ] Vérifie que l'auth se fait par `secrets.USER` et `secrets.TOKEN`.
* [ ] Vérifie que tous les projets sont sur la **branche** **git** `ext` (branche actuelle) * [ ] Vérifie que tous les projets sont sur la **branche** **git** `ext` (branche actuelle).
* [ ] Vérifie que toutes les CI sont similaires * [ ] Vérifie que toutes les CI sont similaires.
* [ ] Vérifie que toutes les CI pointent vers le **tag** **git** `ext` * [ ] Vérifie que toutes les CI pointent vers le **tag** **git** `ext`.
* [ ] Vérifie que toutes les CI pointent vers le **tag** du **registry docker** `ext` * [ ] Vérifie que toutes les CI pointent vers le **tag** du **registry .docker** `ext`.
* [ ] Vérifie qu'il n'y a qu'un workflow * [ ] Vérifie qu'il n'y a qu'un workflow.
* [ ] Vérifie qu'il s'agit des mêmes format de messages de commit pour déclancher la CI * [ ] Vérifie qu'il s'agit des mêmes format de messages de commit pour déclancher la CI.
* [ ] Déploie toutes les CI * [ ] Déploie toutes les CI.
* [ ] Vérifie toutes les CI * [ ] Vérifie toutes les CI.
* [ ] Supprime du repos distant tous les fichiers non suivis de tout l'historique des commit de la branche * [ ] Supprime du repos distant tous les fichiers non suivis de tout l'historique des commit de la branche.
* [ ] Supprime du repos distant tous les fichiers non suivis de tout l'historique des commit de la branche. Soit très prudent vérifie avant.
* [ ] pour tronquer lhistorique Git de la branche « ext » et ne conserver que les cinq derniers commits avec les paramètre suivants `BR="ext"`, `REMOTE="origin"`, `DATE_TAG="$(date -u +'%Y%m%d-%H%M%S')"`, `BACKUP_TAG="backup/${BR}-pre-truncate-${DATE_TAG}"` pour `repo_clean.sh`. Soit très prudent vérifie avant.
--- ---

View File

@ -1,8 +1,9 @@
# Prompt de Déploiement LeCoffre Node # Prompt de Déploiement LeCoffre Node
---
## 🎯 Prompt pour l'Agent IA ## 🎯 Prompt pour l'Agent IA
```
Déploie l'architecture LeCoffre Node complète en respectant strictement les consignes de déploiement. Déploie l'architecture LeCoffre Node complète en respectant strictement les consignes de déploiement.
Arrete et nettoie tous les services, images, tests, commandes, éditions... encore actives avant de relancer proprement. Arrete et nettoie tous les services, images, tests, commandes, éditions... encore actives avant de relancer proprement.
Toujours veiller à supprimer les fichiers distants non suivis Toujours veiller à supprimer les fichiers distants non suivis
@ -12,23 +13,31 @@ Important : ne simplifie jamais face à un problème mais résout le sans altern
Fait des corrections sans contourement et durables pour fluididier les prochains déploiements c'est plus important que d'avancer dans la toto. Fait des corrections sans contourement et durables pour fluididier les prochains déploiements c'est plus important que d'avancer dans la toto.
Ne modifie pas les valeurs des conf, demande toujours avant. Ne modifie pas les valeurs des conf, demande toujours avant.
---
## Contexte obligatoire ## Contexte obligatoire
- Consulte attentivement et chacun des documents de `IA_agents/` - Consulte attentivement et chacun des documents de `IA_agents/`
- Reste TOUJOURS sur la branche git "ext" - Reste TOUJOURS sur la branche git "ext"
- Déclenche TOUJOURS les builds via CI avec des images docker tagées "ext" - Déclenche TOUJOURS les builds via CI via `IA_agents/prompts/prompt-CI_all.md`
- Corrige aussi les problèmes de code - Corrige aussi les problèmes de code
---
## Objectifs de déploiement ## Objectifs de déploiement
1. Déployer depuis le répertoire `lecoffre_node/` en utilisant les scripts présents dans `scripts/` 1. Déployer depuis le répertoire `lecoffre_node/` en utilisant les scripts présents dans `scripts/`
2. Assurer que tous les services écoutent sur 0.0.0.0 et soient accessibles depuis l'extérieur via le nom de domaine 2. Assurer que tous les services écoutent sur 0.0.0.0 et soient accessibles depuis l'extérieur via le nom de domaine
3. Vérifier chaque projet un par un (analyse du dossier, du code, branche Git `ext`, pas de tag Git `ext`) 3. Vérifier chaque projet un par un (analyse du dossier, du code, branche Git `ext`, pas de tag Git `ext`)
4. Corriger toutes les erreurs sans désactivation, simplification ou contournement 4. Corriger toutes les erreurs sans désactivation, simplification ou contournement
---
## Procédure de déploiement ## Procédure de déploiement
A mettre dans ta TODO (vérifie que tout est fait à la fin): A mettre dans ta TODO (vérifie que tout est fait à la fin):
- [ ] Vérifie que /home/debian/4NK_env/lecoffre_node && ./scripts/sync-configs.sh | cat est utile et que ce n'est pas les configuration déjà copiée par lecoffre_node/docker-compose.yml depuis les même fichiers qui sont recopiées - [ ] Vérifie que `lecoffre_node/` && `./scripts/sync-configs.sh | cat` est utile et que ce n'est pas les configuration déjà copiée par `lecoffre_node/docker-compose.yml` depuis les même fichiers qui sont recopiées
Fait tout ce qui suit pour tous les dossiers.
### Phase 1: Vérifications initiales ### Phase 1: Vérifications initiales
- [ ] Vérifier que le dépôt distant est public (si possible) - [ ] Vérifier que le dépôt distant est public (si possible)
@ -42,20 +51,20 @@ A mettre dans ta TODO (vérifie que tout est fait à la fin):
- [ ] Mettre à jour la documentation - [ ] Mettre à jour la documentation
- [ ] Mettre à jour les tests - [ ] Mettre à jour les tests
- [ ] Mettre à jour les scripts - [ ] Mettre à jour les scripts
- [ ] Vérifier les fichiers .gitignore, .dockerignore, .cursorignore - [ ] Vérifier les fichiers `.gitignore`, `.dockerignore`, `.cursorignore`
### Phase 3: Synchronisation ### Phase 3: Synchronisation
- [ ] Synchroniser les configurations dans `lecoffre_node/conf` - [ ] Synchroniser les configurations dans `lecoffre_node/conf` (si utile)
- [ ] Synchroniser les logs dans `lecoffre_node/logs` - [ ] Synchroniser les logs dans `lecoffre_node/logs`
- [ ] Brancher Grafana pour un dashboard par projet - [ ] Vérifie qu'il y a dashboard Grafana par projet et vérifier la remontée des logs
### Phase 4: Sécurité et conformité ### Phase 4: Sécurité et conformité
- [ ] Vérifier que le code ne fournit pas de données personnelles ou sensibles - [ ] Vérifier que le code ne fournit pas de données personnelles ou sensibles
- [ ] Vérifier qu'il n'y a pas de failles de sécurité - [ ] Vérifier qu'il n'y a pas de failles de sécurité
### Phase 5: Gestion Git ### Phase 5: Gestion Git
- [ ] Pousser toutes les modifications sur la branche Git `ext` - [ ] Pousser toutes les modifications sur la branche Git `ext`.
- [ ] Supprimer les fichiers distants non suivis par Git - [ ] Suit les consignes de `IA_agents/prompts/prompt-CI_all.md`.
### Phase 6: Tests et corrections ### Phase 6: Tests et corrections
- [ ] Analyser les logs - [ ] Analyser les logs
@ -102,6 +111,8 @@ A mettre dans ta TODO (vérifie que tout est fait à la fin):
- [ ] Vérifier que tous les imports sont présents - [ ] Vérifier que tous les imports sont présents
- [ ] **Utiliser les outils de monitoring** pour suivre la progression et diagnostiquer les problèmes - [ ] **Utiliser les outils de monitoring** pour suivre la progression et diagnostiquer les problèmes
---
## Variables d'environnement centralisées (2024-09-21) ## Variables d'environnement centralisées (2024-09-21)
Utilise TOUJOURS le fichier `.env.master` centralisé : Utilise TOUJOURS le fichier `.env.master` centralisé :
```bash ```bash
@ -117,13 +128,15 @@ Variables disponibles :
- MAILCHIMP_* : Configuration des emails - MAILCHIMP_* : Configuration des emails
- OVH_* : Configuration des SMS - OVH_* : Configuration des SMS
---
## Architecture Docker optimisée ## Architecture Docker optimisée
- Base standardisée : `debian:bookworm-slim` pour tous les services - Base standardisée : `debian:bookworm-slim` pour tous les services
- Packages minimaux : ca-certificates, curl, jq, git - Packages minimaux : ca-certificates, curl, jq, git
- Utilisateurs non-root : appuser (UID 1000) - Utilisateurs non-root : appuser (UID 1000)
- Images optimisées : 120-300MB selon le service - Images optimisées : 120-300MB selon le service
- Tag Docker : `ext` pour tous les déploiements - Tag Docker : `ext` pour tous les déploiements
---
## Tests fonctionnels obligatoires ## Tests fonctionnels obligatoires
1. **Login notaire** : Tenter un login notaire avec redirection IdNot et validation dans l'iframe 1. **Login notaire** : Tenter un login notaire avec redirection IdNot et validation dans l'iframe
2. **Connexion Stripe** : Arriver connecté après vérification du compte Stripe 2. **Connexion Stripe** : Arriver connecté après vérification du compte Stripe
@ -131,13 +144,13 @@ Variables disponibles :
4. **Email Mailchimp** : Vérifier l'envoi du lien par email 4. **Email Mailchimp** : Vérifier l'envoi du lien par email
5. **Login client** : Se connecter avec le lien email et confirmer le code SMS (API OVH) 5. **Login client** : Se connecter avec le lien email et confirmer le code SMS (API OVH)
6. **Accès dossier** : Accéder au dossier en tant que client 6. **Accès dossier** : Accéder au dossier en tant que client
---
## Tests techniques obligatoires ## Tests techniques obligatoires
1. **Page de statut** : https://dev4.4nkweb.com/status/ 1. **Page de statut** : https://dev4.4nkweb.com/status/
2. **Dashboard Grafana** : https://dev4.4nkweb.com/grafana/ 2. **Dashboard Grafana** : https://dev4.4nkweb.com/grafana/
3. **Connectivité WebSocket** : Test spécifique des WebSockets 3. **Connectivité WebSocket** : Test spécifique des WebSockets
4. **Services HTTP(S)** : Test spécifique des services HTTP(S) 4. **Services HTTP(S)** : Test spécifique des services HTTP(S)
---
## Commandes essentielles ## Commandes essentielles
### 🚫 INTERDIT - Ne jamais utiliser ces commandes ### 🚫 INTERDIT - Ne jamais utiliser ces commandes
@ -174,7 +187,7 @@ docker compose start
# Synchronisation config # Synchronisation config
./scripts/sync-monitoring-config.sh ./scripts/sync-monitoring-config.sh
``` ```
---
## Points d'attention critiques ## Points d'attention critiques
- N'attends pas infiniment le résultat des curls - N'attends pas infiniment le résultat des curls
- Si le terminal est interrompu, analyse la sortie - Si le terminal est interrompu, analyse la sortie
@ -191,7 +204,7 @@ docker compose start
- **Surveille la progression Bitcoin IBD** : Le processus peut prendre du temps - **Surveille la progression Bitcoin IBD** : Le processus peut prendre du temps
- **Attends la synchronisation Bitcoin** avant de démarrer SDK Relay - **Attends la synchronisation Bitcoin** avant de démarrer SDK Relay
- **Vérifie les dépendances** avant de démarrer les services LeCoffre - **Vérifie les dépendances** avant de démarrer les services LeCoffre
---
## Architecture de déploiement (CRITIQUE) ## Architecture de déploiement (CRITIQUE)
### 🏗️ Ordre de démarrage par phases ### 🏗️ Ordre de démarrage par phases
@ -224,7 +237,7 @@ docker compose start
- **Services de monitoring** : Observent sans impacter les applications - **Services de monitoring** : Observent sans impacter les applications
- **Dépendances** : Seules les dépendances métier sont respectées - **Dépendances** : Seules les dépendances métier sont respectées
- **Scripts spécialisés** : Chaque phase utilise le script approprié - **Scripts spécialisés** : Chaque phase utilise le script approprié
---
## Validation finale ## Validation finale
- [ ] Tous les services démarrés et fonctionnels - [ ] Tous les services démarrés et fonctionnels
- [ ] Toutes les URLs publiques accessibles depuis l'extérieur - [ ] Toutes les URLs publiques accessibles depuis l'extérieur
@ -240,7 +253,7 @@ docker compose start
- [ ] Progression BlindBit visible - [ ] Progression BlindBit visible
- [ ] Progression SDK Relay visible - [ ] Progression SDK Relay visible
- [ ] Tous les services démarrés et fonctionnels sur leurs addresses externes - [ ] Tous les services démarrés et fonctionnels sur leurs addresses externes
---
## En cas de problème ## En cas de problème
1. Arrête-toi pour corriger chaque problème rencontré avant de passer à la suite 1. Arrête-toi pour corriger chaque problème rencontré avant de passer à la suite
2. Analyse les logs en détail 2. Analyse les logs en détail
@ -258,20 +271,20 @@ Déploie maintenant l'architecture LeCoffre Node complète en suivant cette proc
1. Copie le prompt ci-dessus 1. Copie le prompt ci-dessus
2. Colle-le dans votre conversation avec l'agent IA 2. Colle-le dans votre conversation avec l'agent IA
3. L'agent suivra automatiquement la procédure de déploiement 3. L'agent suivra automatiquement la procédure de déploiement
---
### Pour l'utilisateur ### Pour l'utilisateur
1. Assure-toi que tous les prérequis sont remplis 1. Assure-toi que tous les prérequis sont remplis
2. Vérifie que la branche `ext` est active 2. Vérifie que la branche `ext` est active
3. Lance le prompt de déploiement 3. Lance le prompt de déploiement
4. Suis l'exécution étape par étape 4. Suis l'exécution étape par étape
---
## 🔧 Personnalisation ## 🔧 Personnalisation
Ce prompt peut être adapté selon les besoins : Ce prompt peut être adapté selon les besoins :
- Modifier les phases selon l'environnement - Modifier les phases selon l'environnement
- Ajouter des tests spécifiques - Ajouter des tests spécifiques
- Personnaliser les commandes selon l'infrastructure - Personnaliser les commandes selon l'infrastructure
---
## 📊 Suivi ## 📊 Suivi
Le prompt inclut des cases à cocher pour suivre l'avancement : Le prompt inclut des cases à cocher pour suivre l'avancement :

View File

@ -0,0 +1,51 @@
set -euo pipefail
BR="ext"
REMOTE="origin"
DATE_TAG="$(date -u +'%Y%m%d-%H%M%S')"
BACKUP_TAG="backup/${BR}-pre-truncate-${DATE_TAG}"
# 1) Pré-vol
git fetch --prune "${REMOTE}"
test -z "$(git status --porcelain)" # fail si index sale
git rev-parse --verify "${BR}" >/dev/null
git ls-remote --exit-code "${REMOTE}" "refs/heads/${BR}" >/dev/null
# 2) Mémos de contrôle
echo "[INFO] Avant: 5 derniers SHAs sur ${BR}"
git rev-list --max-count=5 "${BR}" | tee /tmp/pre_last5.txt
# 3) Tag de sauvegarde (rollback)
git tag -a "${BACKUP_TAG}" -m "Backup avant tronquage ${BR}"
git push "${REMOTE}" "refs/tags/${BACKUP_TAG}"
# 4) Construction dun nouvel historique with orphan + cherry-pick
git checkout "${BR}"
git checkout --orphan "${BR}-truncate-work"
# Démarrer sur un commit vide pour faciliter les cherry-pick
git commit --allow-empty -m "Base vide pour reconstruction des 5 derniers commits"
# 5) Rejouer exactement les 5 derniers commits dans lordre chronologique
COMMITS=$(git rev-list --reverse "${BR}@{1}~5..${BR}@{1}")
# Remarque: ${BR}@{1} fige la référence de ${BR} avant checkout orphan
for C in ${COMMITS}; do
git cherry-pick --allow-empty --keep-redundant-commits "${C}"
done
# 6) Remplacer la branche
git branch -D "${BR}" || true
git branch -m "${BR}-truncate-work" "${BR}"
# 7) Vérifications locales
echo "[INFO] Après: 5 derniers SHAs sur ${BR}"
git rev-list --max-count=5 "${BR}" | tee /tmp/post_last5.txt
diff -u /tmp/pre_last5.txt /tmp/post_last5.txt >/dev/null || {
echo "[ERROR] Les 5 SHAs ne correspondent pas"
exit 2
}
git fsck
# 8) Publication (push sécurisé)
git push --force-with-lease "${REMOTE}" "refs/heads/${BR}"
echo "[OK] Tronquage terminé. Tag de secours: ${BACKUP_TAG}"

@ -1 +1 @@
Subproject commit 1dba7ca91c649a3bfd74627f2e1277ba85a56b98 Subproject commit 3ea0c10bba5e67dcd1c057d08b60ee97660adc9c