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
* [ ] 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 y a un `.gitea/`
* [ ] Vérifie que le repos **git** 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 .gitignore
* [ ] Vérifie l'exhaustivité de .cursorignore
* [ ] 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 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** du **registry docker** `ext`
* [ ] 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
* [ ] Déploie 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
* [ ] Vérifie qu'il n'y a pas de `.github/`.
* [ ] Vérifie qu'il y a un `.gitea/`.
* [ ] Vérifie que le repos **git** 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 .gitignore.
* [ ] Vérifie l'exhaustivité de .cursorignore.
* [ ] 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 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** du **registry .docker** `ext`.
* [ ] 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.
* [ ] Déploie 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. 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 pour l'Agent IA
```
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.
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.
Ne modifie pas les valeurs des conf, demande toujours avant.
---
## Contexte obligatoire
- Consulte attentivement et chacun des documents de `IA_agents/`
- 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
---
## Objectifs de déploiement
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
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
---
## Procédure de déploiement
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
- [ ] 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 les tests
- [ ] Mettre à jour les scripts
- [ ] Vérifier les fichiers .gitignore, .dockerignore, .cursorignore
- [ ] Vérifier les fichiers `.gitignore`, `.dockerignore`, `.cursorignore`
### 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`
- [ ] 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é
- [ ] 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é
### Phase 5: Gestion Git
- [ ] Pousser toutes les modifications sur la branche Git `ext`
- [ ] Supprimer les fichiers distants non suivis par Git
- [ ] Pousser toutes les modifications sur la branche Git `ext`.
- [ ] Suit les consignes de `IA_agents/prompts/prompt-CI_all.md`.
### Phase 6: Tests et corrections
- [ ] 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
- [ ] **Utiliser les outils de monitoring** pour suivre la progression et diagnostiquer les problèmes
---
## Variables d'environnement centralisées (2024-09-21)
Utilise TOUJOURS le fichier `.env.master` centralisé :
```bash
@ -117,13 +128,15 @@ Variables disponibles :
- MAILCHIMP_* : Configuration des emails
- OVH_* : Configuration des SMS
---
## Architecture Docker optimisée
- Base standardisée : `debian:bookworm-slim` pour tous les services
- Packages minimaux : ca-certificates, curl, jq, git
- Utilisateurs non-root : appuser (UID 1000)
- Images optimisées : 120-300MB selon le service
- Tag Docker : `ext` pour tous les déploiements
---
## Tests fonctionnels obligatoires
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
@ -131,13 +144,13 @@ Variables disponibles :
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)
6. **Accès dossier** : Accéder au dossier en tant que client
---
## Tests techniques obligatoires
1. **Page de statut** : https://dev4.4nkweb.com/status/
2. **Dashboard Grafana** : https://dev4.4nkweb.com/grafana/
3. **Connectivité WebSocket** : Test spécifique des WebSockets
4. **Services HTTP(S)** : Test spécifique des services HTTP(S)
---
## Commandes essentielles
### 🚫 INTERDIT - Ne jamais utiliser ces commandes
@ -174,7 +187,7 @@ docker compose start
# Synchronisation config
./scripts/sync-monitoring-config.sh
```
---
## Points d'attention critiques
- N'attends pas infiniment le résultat des curls
- 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
- **Attends la synchronisation Bitcoin** avant de démarrer SDK Relay
- **Vérifie les dépendances** avant de démarrer les services LeCoffre
---
## Architecture de déploiement (CRITIQUE)
### 🏗️ Ordre de démarrage par phases
@ -224,7 +237,7 @@ docker compose start
- **Services de monitoring** : Observent sans impacter les applications
- **Dépendances** : Seules les dépendances métier sont respectées
- **Scripts spécialisés** : Chaque phase utilise le script approprié
---
## Validation finale
- [ ] Tous les services démarrés et fonctionnels
- [ ] Toutes les URLs publiques accessibles depuis l'extérieur
@ -240,7 +253,7 @@ docker compose start
- [ ] Progression BlindBit visible
- [ ] Progression SDK Relay visible
- [ ] Tous les services démarrés et fonctionnels sur leurs addresses externes
---
## En cas de problème
1. Arrête-toi pour corriger chaque problème rencontré avant de passer à la suite
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
2. Colle-le dans votre conversation avec l'agent IA
3. L'agent suivra automatiquement la procédure de déploiement
---
### Pour l'utilisateur
1. Assure-toi que tous les prérequis sont remplis
2. Vérifie que la branche `ext` est active
3. Lance le prompt de déploiement
4. Suis l'exécution étape par étape
---
## 🔧 Personnalisation
Ce prompt peut être adapté selon les besoins :
- Modifier les phases selon l'environnement
- Ajouter des tests spécifiques
- Personnaliser les commandes selon l'infrastructure
---
## 📊 Suivi
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