202 lines
7.9 KiB
Markdown
202 lines
7.9 KiB
Markdown
# 4NK Environment
|
||
|
||
Environnement de développement centralisé pour tous les dépôts 4NK et le projet LeCoffre, incluant le contexte et l'outillage complet pour les agents IA.
|
||
|
||
## 🏗️ Architecture
|
||
|
||
### Environnement de développement centralisé avec agents IA
|
||
```
|
||
4NK_env/ # Environnement de développement 4NK + Agents IA
|
||
├── 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 - Contexte et outillage complet
|
||
│ ├── context.md # Contexte général des projets
|
||
│ ├── deploy.md # Procédures de déploiement
|
||
│ ├── flux.md # Architecture des flux
|
||
│ └── todo.md # Liste des tâches et améliorations
|
||
└── scripts/ # Scripts de gestion et déploiement (centralisés)
|
||
├── clone-all-repos.sh # Clonage de tous les dépôts 4NK
|
||
├── init-4nk-env-repo.sh # Initialisation du dépôt 4NK_env
|
||
├── check-repos-status.sh # Vérification du statut des dépôts
|
||
├── push-to-remote.sh # Push vers git.4nkweb.com
|
||
└── setup-complete-env.sh # Configuration complète
|
||
```
|
||
|
||
## 🚀 Déploiement
|
||
|
||
### 1. Clonage de tous les dépôts 4NK (branche ext)
|
||
```bash
|
||
cd /home/debian/4NK_env
|
||
./scripts/clone-all-repos.sh
|
||
```
|
||
|
||
### 2. Initialisation du dépôt 4NK_env
|
||
```bash
|
||
./scripts/init-4nk-env-repo.sh
|
||
```
|
||
|
||
### 3. Déploiement LeCoffre (architecture autonome)
|
||
```bash
|
||
cd lecoffre_node
|
||
./scripts/deploy-autonomous.sh
|
||
```
|
||
|
||
### 4. Configuration complète de l'environnement
|
||
```bash
|
||
./scripts/setup-complete-env.sh
|
||
```
|
||
|
||
## 🌐 Services et Ports
|
||
|
||
| Service | URL | Description |
|
||
|---------|-----|-------------|
|
||
| **LeCoffre Front** | http://localhost/lecoffre/ | Application principale |
|
||
| **IHM Client** | http://localhost/ | Interface client |
|
||
| **API Backend** | http://localhost/api/ | API REST |
|
||
| **WebSocket** | ws://localhost/ws/ | Communication temps réel |
|
||
| **Status Page** | http://localhost/status/ | Tableau de bord |
|
||
| **Grafana** | http://localhost/grafana/ | Monitoring |
|
||
| **Redirections IdNot** | `<IDNOT_BASE_URL>` | Redirections externes |
|
||
| **HTTPS** | https://localhost/ | Accès sécurisé |
|
||
|
||
### Ports
|
||
- **80** : HTTP (redirection vers HTTPS)
|
||
- **443** : HTTPS avec certificats auto-signés
|
||
- **3000** : Redirections externes IdNot
|
||
|
||
## 🔧 Configuration
|
||
|
||
### Environnement de développement avec agents IA
|
||
- **Dépôts centralisés** : Tous les projets 4NK et LeCoffre dans un seul environnement
|
||
- **Branche unifiée** : `ext` pour tous les dépôts
|
||
- **Scripts de gestion** : Automatisation complète du clonage et déploiement
|
||
- **Agents IA** : Contexte et outillage complet dans IA_agents/
|
||
- **Documentation centralisée** : Toute la documentation technique accessible
|
||
|
||
### Architecture Autonome LeCoffre
|
||
- **Nginx intégré** dans le conteneur `lecoffre_node`
|
||
- **Indépendant du host** (Nginx local supprimé)
|
||
- **Configuration centralisée** dans `lecoffre_node/conf/`
|
||
- **Variables d'environnement** dans `env.master`
|
||
|
||
### Monitoring
|
||
- **Grafana** : Tableaux de bord et visualisation
|
||
- **Loki** : Collecte et stockage des logs
|
||
- **Promtail** : Agent de collecte des logs
|
||
|
||
## 📚 Documentation et Agents IA
|
||
|
||
### Agents IA - Contexte et outillage complet (IA_agents/)
|
||
- **AGENTS_SYNTHESIS.md** : **NOUVEAU** - Synthèse complète pour les agents IA
|
||
- **README.md** : Documentation principale et règles obligatoires
|
||
- **deployment-architecture.md** : Architecture de déploiement par phases
|
||
- **best-practices-deployment.md** : Bonnes pratiques et interdictions
|
||
- **todo.md** : Liste des tâches et améliorations à suivre
|
||
|
||
### Documentation Technique (docs/)
|
||
- **DEEP_ARCHITECTURE_ANALYSIS.md** : **NOUVEAU** - Analyse architecturale approfondie complète
|
||
- **TECHNICAL_REFERENCE.md** : **NOUVEAU** - Référence technique complète
|
||
- **DEPLOYMENT_GUIDE.md** : **NOUVEAU** - Guide de déploiement complet
|
||
- **DOCUMENTATION_SYNTHESIS.md** : **NOUVEAU** - Synthèse de la documentation
|
||
- **ARCHITECTURE_ANALYSIS.md** : Analyse architecturale complète 4NK + LeCoffre
|
||
- **context.md** : Contexte général des projets 4NK et LeCoffre
|
||
- **flux.md** : Architecture des flux et services
|
||
|
||
### Documentation spécifique
|
||
- **lecoffre_node/README-AUTONOMOUS.md** : Architecture autonome LeCoffre
|
||
- **doc_api/** : Documentation API 4NK
|
||
|
||
## 🛠️ Scripts Utiles
|
||
|
||
### Gestion des dépôts
|
||
```bash
|
||
./scripts/check-repos-status.sh # Vérifier le statut de tous les dépôts
|
||
./scripts/clone-all-repos.sh # Cloner tous les dépôts 4NK (branche ext)
|
||
./scripts/init-4nk-env-repo.sh # Initialiser le dépôt 4NK_env
|
||
./scripts/push-to-remote.sh # Pousser vers git.4nkweb.com
|
||
./scripts/setup-complete-env.sh # Configuration complète de l'environnement
|
||
./scripts/push-commit.sh # Forcer travail sur ext (submodules + racine), commit/push si changements
|
||
```
|
||
|
||
### Centralisation des scripts
|
||
- Les scripts des sous‑projets sont centralisés dans `4NK_env/scripts/<projet>/`.
|
||
- Les répertoires `scripts/` à la racine des sous‑projets sont désormais des liens symboliques pointant vers ces emplacements centralisés.
|
||
- Exemples:
|
||
- `lecoffre_node/scripts` → `4NK_env/scripts/lecoffre_node`
|
||
Impact:
|
||
- Aucun changement pour les commandes existantes (`./scripts/...`) dans les projets: les liens symboliques assurent la compatibilité.
|
||
- Référence recommandée dans la documentation: `4NK_env/scripts/<projet>/...`.
|
||
|
||
## 🔐 Sécurité
|
||
|
||
- **Fichiers .env** protégés par `.gitignore`
|
||
- **Certificats SSL** auto-signés générés automatiquement
|
||
- **Utilisateurs non-root** dans tous les conteneurs
|
||
- **Secrets centralisés** dans `env.master`
|
||
|
||
## 🐳 Docker
|
||
|
||
### Images optimisées
|
||
- **Base Debian** `bookworm-slim`
|
||
- **Packages minimaux** pour la sécurité
|
||
- **Utilisateurs non-root** (`appuser`, `lecoffreuser`)
|
||
- **Tag unique** : `ext`
|
||
|
||
### Architecture
|
||
- **Conteneur master** : `lecoffre_node` avec Nginx intégré
|
||
- **Services autonomes** : Chaque service dans son conteneur
|
||
- **Réseau Docker** : Communication interne sécurisée
|
||
|
||
## 📊 Monitoring
|
||
|
||
### Dashboards Grafana
|
||
- Bitcoin Miner
|
||
- Backend Services
|
||
- SDK Services
|
||
- Frontend Services
|
||
- Bitcoin Services
|
||
- Vue d'ensemble
|
||
|
||
### Logs centralisés
|
||
- **Loki** : Stockage des logs
|
||
- **Promtail** : Collecte des logs
|
||
- **LogQL** : Requêtes de logs
|
||
|
||
## 🔄 CI/CD
|
||
|
||
### Environnement de développement avec agents IA
|
||
- **Branche unifiée** : `ext` pour tous les dépôts
|
||
- **Dépôt central** : `4NK_env` sur git.4nkweb.com
|
||
- **Scripts automatisés** : Clonage et déploiement
|
||
- **Agents IA** : Contexte et outillage toujours à jour
|
||
|
||
### LeCoffre
|
||
- **Tag Docker** : `ext`
|
||
- **Déclenchement** : Push sur `ext`
|
||
- **Build** : Automatique via Gitea CI
|
||
|
||
## 📞 Support
|
||
|
||
Pour toute question ou problème :
|
||
1. Vérifier les logs : `docker logs <container>`
|
||
2. Consulter la documentation des agents IA : `4NK_env/IA_agents/`
|
||
3. Vérifier le statut : `./scripts/check-repos-status.sh`
|
||
4. Utiliser l'outillage complet : Scripts et documentation centralisés
|
||
|
||
## 📋 Fichiers centralisés
|
||
|
||
Les fichiers suivants sont centralisés dans le dépôt principal `4NK_env` :
|
||
- `CODE_OF_CONDUCT.md` - Code de conduite
|
||
- `CODEOWNERS` - Propriétaires du code
|
||
- `CONTRIBUTING.md` - Guide de contribution
|
||
- `LICENSE` - Licence du projet
|
||
|
||
Voir : [`4NK_env/CODE_OF_CONDUCT.md`](../../CODE_OF_CONDUCT.md), [`4NK_env/CODEOWNERS`](../../CODEOWNERS), [`4NK_env/CONTRIBUTING.md`](../../CONTRIBUTING.md), [`4NK_env/LICENSE`](../../LICENSE)
|