6.5 KiB
agent_deploy.md
Respecte totalement et impérativemment les informations de ce document.
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.
Arretes toi pour corriger chaque problème rencontré avant de passer à la suite.
C'est une VM dont assures toi que tous les services écoutent et soient accessible de l'exétieure à son nom de domaine.
Dans tous les projets à vérifier un par un dont lecoffre_node:
- 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. - Les services doivent écouter sur 0.0.0.0 (et non sur 127.0.0.1).
- Le serveur ngnix gère les url d'accès extérieurs
- 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 par projet
- 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 par projet
- Supprime les caches, 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 par projet
- Synchroniser les configurations dans
lecoffre_node/conf
. Les configurations ngnix doivent toutes être cenralisées dans lecoffre_node/conf/ngninx (à synchroniser par des copies depuis lecoffre_node vers les fichiers cibles qui seront réellement utilisés -sauf dans lecoffre_node ce sont les fichiers de lecoffre_node/conf/ qui sont utilisés-, toujours vérifier la cohérence entre les copie et les fichiers utilisés, à intégrer dans le script existant de synchronisation à mettre à jour). Ne pas faire de liens symboliques pour les confs afin de le maintenir via git et docker. - Synchroniser les logs dans
lecoffre_node/logs
(brancher grafana pour un dashboard par projet)
Sécurité et conformité par projet
- Vérifier que le code ne fournit pas :
- de données personnelles,
- de données sensibles exploitables,
- de failles de sécurité.
Gestion Git par projet
- Pousser toutes les modifications sur la branche Git
ext
. - Supprimer les fichiers distants non suivis par Git.
Analyse et correction par projet
- 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 par projet
- 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 par projet
Pour tous les projets contenant un Dockerfile, avant de pousser sur la branche ext
:
- Supprime les caches
- 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.
- 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
avec --fix-missing - 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.
Autres
N'attend pas infiniment le résultat des curls. Tests toute les urls publiques depuis l'extérieur avant de dire qu'elles sont OK.
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