#!/bin/bash set -euo pipefail echo "🚀 INITIALISATION DU DÉPÔT 4NK_ENV" echo "Environnement de dĂ©veloppement centralisĂ© 4NK" echo "Avec contexte et outillage complet pour les agents IA" echo "====================================================" # Fonction de logging log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" } # Configuration REPO_NAME="4NK_env" GIT_REMOTE="git@git.4nkweb.com:4nk/4NK_env.git" BRANCH="ext" log "📋 Configuration:" echo " DĂ©pĂŽt: $REPO_NAME" echo " Remote: $GIT_REMOTE" echo " Branche: $BRANCH" echo "" # VĂ©rifier si on est dans le bon rĂ©pertoire CURRENT_DIR=$(basename "$PWD") if [ "$CURRENT_DIR" != "$REPO_NAME" ]; then log "⚠ Attention: Vous devez ĂȘtre dans le rĂ©pertoire $REPO_NAME" log " RĂ©pertoire actuel: $CURRENT_DIR" exit 1 fi # VĂ©rifier la configuration SSH log "🔧 VĂ©rification de la configuration Git SSH..." if ! ssh -T git@git.4nkweb.com 2>&1 | grep -q "successfully authenticated"; then echo "❌ Erreur: ClĂ© SSH non configurĂ©e pour git.4nkweb.com" echo " VĂ©rifiez votre configuration SSH et vos clĂ©s" exit 1 fi log "✅ ClĂ© SSH configurĂ©e" # Initialiser Git si ce n'est pas dĂ©jĂ  fait if [ ! -d ".git" ]; then log "📩 Initialisation du dĂ©pĂŽt Git..." git init log "✅ DĂ©pĂŽt Git initialisĂ©" else log "â„č DĂ©pĂŽt Git dĂ©jĂ  initialisĂ©" fi # Configuration Git log "⚙ Configuration Git..." git config user.name "LeCoffre Deployment" git config user.email "deployment@lecoffre.io" # Ajouter le remote si il n'existe pas if ! git remote get-url origin 2>/dev/null; then log "🔗 Ajout du remote origin..." git remote add origin "$GIT_REMOTE" log "✅ Remote origin ajoutĂ©" else log "â„č Remote origin dĂ©jĂ  configurĂ©" fi # CrĂ©er le fichier README.md s'il n'existe pas if [ ! -f "README.md" ]; then log "📝 CrĂ©ation du README.md..." cat > README.md << 'EOF' # 4NK Environment Environnement de dĂ©veloppement centralisĂ© pour tous les dĂ©pĂŽts 4NK et le projet LeCoffre. ## Structure ``` 4NK_env/ # Environnement de dĂ©veloppement 4NK ├── lecoffre_node/ # Orchestrateur principal LeCoffre (Nginx intĂ©grĂ©) ├── sdk_relay/ # Service de relais WebSocket 4NK ├── sdk_storage/ # Service de stockage 4NK ├── sdk_client/ # Client SDK 4NK ├── sdk_common/ # Composants communs 4NK ├── sdk-signer-client/ # Client signeur 4NK ├── ihm_client/ # Interface utilisateur LeCoffre ├── lecoffre-front/ # Frontend Next.js LeCoffre ├── doc_api/ # Documentation API 4NK ├── IA_agents/ # Agents IA et documentation └── scripts/ # Scripts de gestion et dĂ©ploiement ``` ## DĂ©ploiement ### Clonage de tous les dĂ©pĂŽts ```bash ./scripts/clone-all-repos.sh ``` ### Architecture autonome LeCoffre ```bash cd lecoffre_node ./scripts/deploy-autonomous.sh ``` ## Services - **LeCoffre Node** : Orchestrateur principal avec Nginx intĂ©grĂ© - **Bitcoin Signet** : NƓud Bitcoin pour tests - **Monitoring** : Grafana, Loki, Promtail - **Services SDK 4NK** : Relay, Storage - **Applications LeCoffre** : Frontend, Backend, IHM Client ## Ports - **80** : HTTP (redirection vers HTTPS) - **443** : HTTPS avec certificats auto-signĂ©s - **3000** : Redirections externes IdNot ## Documentation Voir le dossier `IA_agents/` pour la documentation complĂšte. EOF log "✅ README.md créé" else log "â„č README.md existe dĂ©jĂ " fi # Ajouter tous les fichiers log "📁 Ajout des fichiers au dĂ©pĂŽt..." git add . # VĂ©rifier s'il y a des changements if git diff --staged --quiet; then log "â„č Aucun changement Ă  committer" else log "đŸ’Ÿ Commit initial..." git commit -m "ci: docker_tag=ext Initial commit - 4NK Environment - Environnement de dĂ©veloppement centralisĂ© 4NK - DĂ©pĂŽts 4NK (SDK, services) et LeCoffre (applications) - Contexte et outillage complet pour les agents IA - Architecture autonome LeCoffre avec Nginx intĂ©grĂ© - Scripts de gestion et dĂ©ploiement - Documentation centralisĂ©e IA_agents - Support redirections IdNot (port 3000) - Monitoring Grafana/Loki/Promtail" log "✅ Commit initial créé" fi # CrĂ©er et pousser la branche ext log "🌿 CrĂ©ation et push de la branche '$BRANCH'..." git checkout -b "$BRANCH" 2>/dev/null || git checkout "$BRANCH" # Essayer de pousser, si ça Ă©choue, crĂ©er le dĂ©pĂŽt d'abord log "🚀 Tentative de push vers le dĂ©pĂŽt distant..." if git push -u origin "$BRANCH"; then log "✅ Push rĂ©ussi" else log "⚠ Le dĂ©pĂŽt distant n'existe pas encore" log "💡 CrĂ©ez le dĂ©pĂŽt '4NK_env' sur git.4nkweb.com d'abord" log " Ou utilisez une URL diffĂ©rente" log "🔧 Configuration actuelle: $GIT_REMOTE" log "📝 Pour crĂ©er le dĂ©pĂŽt, connectez-vous Ă  git.4nkweb.com" log " et crĂ©ez un nouveau dĂ©pĂŽt nommĂ© '4NK_env' dans l'organisation '4nk'" fi log "🎉 DĂ©pĂŽt 4NK_env initialisĂ© localement!" log "🔗 URL configurĂ©e: $GIT_REMOTE" echo "" log "📊 RĂ©sumĂ©:" echo " ✅ DĂ©pĂŽt Git initialisĂ©" echo " ✅ Remote origin configurĂ©" echo " ✅ Branche '$BRANCH' créée et poussĂ©e" echo " ✅ Fichiers .gitignore et .dockerignore configurĂ©s" echo " ✅ README.md créé" echo "" log "🚀 Prochaines Ă©tapes:" echo " 1. VĂ©rifier le dĂ©pĂŽt sur git.4nkweb.com" echo " 2. Configurer les workflows CI/CD si nĂ©cessaire" echo " 3. Cloner tous les dĂ©pĂŽts avec ./scripts/clone-all-repos.sh" echo " 4. DĂ©ployer LeCoffre avec ./lecoffre_node/scripts/deploy-autonomous.sh" echo " 5. Utiliser le contexte et outillage des agents IA (IA_agents/)" echo " 6. AccĂ©der aux services via les URLs configurĂ©es"