align for IA agents + grafana
This commit is contained in:
parent
378337d9cc
commit
be5b64475f
@ -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 l’historique 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.
|
||||
|
||||
---
|
||||
|
||||
|
@ -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 :
|
||||
|
51
IA_agents/prompts/repo_clean.sh
Normal file
51
IA_agents/prompts/repo_clean.sh
Normal 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 d’un 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 l’ordre 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
|
Loading…
x
Reference in New Issue
Block a user