5.4 KiB
agent_deploy.md
Informations critiques à respecter totalement et impérativemment.
Contexte
Consulte attentivement lecoffre_node/IA_agents/context.md
.
Consulte attentivement lecoffre_node/IA_agents/flux.md
.
Objectifs
Le déploiement se fait depuis le répertoire lecoffre_node/
, en utilisant les scripts présents dans scripts/
.
Ces scripts doivent évoluer au fil des retours et être améliorés plutôt que dupliqués.
Dans tous les projets :
- Analyse le dossier pour bien le comprendre
- Analyse le code pour bien le comprendre
- Une branche Git dédiée
ext
existe. - Aucun tag Git nommé
ext
n’existe. - Des images Docker avec le tag
ext
existent. - Les images Docker ne sont build que via CI qui est la seule à pousser sur le registry ou pour test localement.
- Aucun Dockerfile ne doit utiliser de clés ssh car aucun repos n'est privé, utiliser HTTPS.
- Les services doivent écouter sur 0.0.0.0 (et non sur 127.0.0.1).
- Corrige aussi les erreurs non critiques.
Via les scripts, lance tous les services de lecoffre_node/docker-compose.yml
.
Procédure générale
Vérifications initiales
- Vérifier que le dépôt distant est public (si possible).
- Vérifier l’utilisation des clés SSH pour le déploiement Git (idéalement ~/.ssh/id_ed25519)
- Vérifier que la branche courante est bien
ext
. - Mettre à jour les dépendances et les langages
- Vérifier les variables d’environnement.
Mise à jour et construction
- Optimise le build du projet et build le projet.
- Mettre à jour la documentation.
- Mettre à jour les tests.
- Mettre à jour les scripts.
- Vérifier que la présence et le contenu exhaustif et spécifique de :
.gitignore
.dockerignore
.cursorignore
Synchronisations
- Synchroniser les configurations dans
lecoffre_node/conf
. - Synchroniser les logs dans
lecoffre_node/logs
(brancher grafana pour un dashboard par projet)
Sécurité et conformité
- Vérifier que le code ne fournit pas :
- de données personnelles,
- de données sensibles exploitables,
- de failles de sécurité.
Gestion Git
- Pousser toutes les modifications sur la branche Git
ext
. - Supprimer les fichiers distants non suivis par Git.
Analyse et correction
- Analyser les logs.
- Corriger toutes les erreurs, petites et grosses, sans désactivation, sans simplification, sans contournement.
- Tester.
- Analyser de nouveau les logs.
- Vérifier que les logs ne contiennent pas de données personnelles ou sensibles.
- Corriger à nouveau si nécessaire (jusqu'à l'absence totale d'erreurs)
Boucle d’amélioration
- Ne pas créer de nouvelles versions de scripts : améliorer et tester ceux existants.
- Mettre à jour la documentation avec le retour d’expérience à chaque fois par une mise à jour de
docs/REX.md
. - Recommencer si nécessaire pour obtenir un déploiement fluide et parfait.
- Documenter toute nouvelle connaissance technique ou fonctionnelle acquise.
- Répéter la synchronisation des confs et logs.
- Pousser toutes les modifications sur la branche
ext
. - Supprimer à nouveau les fichiers distants non suivis.
- Répéter anal
Lancement des services
- Via les scripts, lance tous les services de
lecoffre_node/docker-compose.yml
. - Corriger toutes les erreurs, petites et grosses, sans désactivation, sans simplification, sans contournement.
- Tester.
- Analyser de nouveau les logs.
- Vérifier que les logs ne contiennent pas de données personnelles ou sensibles.
- Corriger à nouveau si nécessaire (jusqu'à l'absence totale d'erreurs)
- Mettre à jour la documentation avec le retour d’expérience à chaque fois par une mise à jour de
docs/REX.md
. - Recommencer si nécessaire pour obtenir un déploiement fluide et parfait.
- Assures toi d'être à jour pour le service grafana
- Assures toi d'avoir bien synchroniser la conf ngnix et relance le serveur ngnix
- Vérifie que Loki, Promtail et Grafana sont ok avec des dashboard alimentés
- Vérifie qu'il n'y a aucun conflit de ports
Spécificités Dockerfile
Pour tous les projets contenant un Dockerfile, avant de pousser sur la branche ext
:
- Mettre à jour le Dockerfile pour maîtriser les prérequis :
- inclure
sudo apt update && sudo apt upgrade
, - installer
build-essential
,autoconf
,automake
,libtool
,pkg-config
,cmake
,ninja-build
,clang
,lldb
,lld
,make
,tree
,ncdu
,mc
,exuberant-ctags
,cscope
,vim
,emacs
,jq
,curl
,sed
,gawk
,inetutils-tools
,iputils-*
,net-tools
,iproute2
- installer python3 (dernière version) et mettre à jour
- installer go (dernière version) et mettre à jour
- installer rust (dernière version) et mettre à jour
- installer
npm
(dernière version), instalerwscat
(dernière version) et mettre à jour
- inclure
- Optimise le build
- Construire l’image pour test.
- Vérifier
.dockerignore
. - Vérifier à l'absence de dépendances croisées ou dupliquée entre les projets, sinon mutualiser via d'autres projets/docker
Après le push sur la branche Git ext
:
- Pousser l’image sur le tag Docker
ext
via la CI.
Met à jour ce document si tu détectes des incohérences ou pose des questions pour confirmer. Propose des améliorations dans un document lecoffre_node/IA_agents/todo.md