Séparation de la génération du docker-compose et empêcher la copie dans storage/
- Créé generate_docker_compose.sh pour générer uniquement docker-compose.yml.auto
- Refactorisé generate_variables.sh pour générer uniquement .env.auto
- Mis à jour replace_variables_and_copy.sh pour ne pas copier docker-compose.yml.auto dans storage/
- Mis à jour generate.sh pour orchestrer 7 étapes au lieu de 6
- Mis à jour la documentation README.md pour refléter les changements
- docker-compose.yml.auto et .env.auto restent dans templates/dev/ pour le traitement mais ne sont plus déployés dans storage/
- Ajout de la génération dynamique des ports pour Nginx dans docker-compose.yml.auto
- Nginx a maintenant accès à tous les ports de tous les services pour le routage
- Correction de la génération de la variable HOST dans generate_variables.sh
- Amélioration du nettoyage des ports vides dans docker-compose.yml.auto
- Génération automatique de toutes les configurations Nginx (upstreams, internes, HTTPS)
- Nginx traité comme un module dans _4NK_modules/nginx/
- Tous les ports de tous les services ajoutés aux configurations Nginx
- Correction des chemins relatifs dans les scripts de génération
- Système de templates complètement fonctionnel avec remplacement des variables
- Correction complète du script generate_nginx_configs.sh
- Tous les fichiers nginx sont maintenant générés dans _4NK_modules/nginx/
- Désactivation du traitement du répertoire nginx/ dans replace_variables_and_copy.sh
- Mise à jour des messages d'affichage dans generate.sh
- Cohérence avec la structure des modules 4NK
- Nginx traité comme un module 4NK standard dans _4NK_modules/
- Correction des scripts generate_grafana_dashboards.sh et generate_promtail_config.sh
- Les dashboards Grafana sont maintenant générés dans _4NK_modules/grafana/dashboards/
- La configuration Promtail est maintenant générée dans _4NK_modules/promtail/
- Désactivation du traitement du répertoire 4NK_modules dans replace_variables_and_copy.sh
- Mise à jour des messages d'affichage dans generate.sh
- Cohérence avec la structure existante _4NK_modules/
- Modification du script replace_variables_and_copy.sh pour traiter TOUS les types de fichiers
- Exclusion explicite du répertoire _keys (répertoire sensible)
- Ajout du traitement des répertoires: git, monitoring, projects, supervisor
- Suppression des fichiers _keys précédemment copiés par erreur
- Vérification: tous les fichiers templates/dev/ sont maintenant copiés vers storage/dev/ sauf _keys
- Correction du script replace_variables_and_copy.sh pour traiter TOUS les fichiers
- Ajout de tous les fichiers .env, .gitkeep, .toml, torrc manquants
- Vérification: 39 fichiers templates -> 55 fichiers storage (tous copiés)
- Tous les modules 4NK maintenant présents dans storage/dev/_4NK_modules/
- Régénération de tous les fichiers dans storage/dev/ avec variables remplacées
- Mise à jour des dashboards Grafana avec variables d'environnement
- Configuration Promtail mise à jour avec paths et services
- Configurations logrotate mises à jour pour tous les services
- Configurations Nginx (upstreams, ports internes, HTTPS) mises à jour
- bitcoin.conf avec ZMQ host:port correctement résolus
- .env.auto et docker-compose.yml.auto avec toutes les variables
- Templates nginx mis à jour avec dernières modifications
- Remplacement des références ${VARIABLE} par des valeurs directes
- Correction des variables Docker et URLs pour éviter les erreurs de résolution
- Amélioration de la génération des ports Bitcoin spécifiques
- Correction du template bitcoin.conf pour inclure le nom du conteneur Docker
- Introduction du système de templates avec séparation templates/storage
- Scripts de génération automatisée pour toutes les configurations
- Résolution multi-passes des variables imbriquées
- API simplifiée qui lit uniquement storage/ (plus de traitement de variables)
- Documentation complète du nouveau système
- Support des services externes (BOOTSTRAP, LECOFFRE_BACK_MINI)
- Protection des templates sources et isolation des environnements
Séparation des scripts de génération et amélioration de l'architecture
- Séparé generate_grafana_dashboards.sh en 3 scripts distincts :
* generate_grafana_dashboards.sh (dashboards uniquement)
* generate_promtail_config.sh (configuration Promtail)
* generate_logrotate_configs.sh (configurations Logrotate)
- Supprimé generate_docker_compose.sh et generate_docker_variables.sh
- Centralisé la génération des variables dans generate_variables.sh
- Mis à jour generate.sh pour une architecture en 5 étapes
- Corrigé les chemins de sortie et les références de variables
- Ajouté la gestion d'erreurs pour les fichiers .env problématiques
- Généré toutes les configurations Nginx, Grafana, Promtail et Logrotate
- Amélioré la modularité et la maintenabilité du code
- Restructuration des modules 4NK vers storage/dev/4NK_modules/
* 4NK_certificator, 4NK_miner, 4NK_web_status
* bitcoin, blindbit-oracle, grafana, ihm_client
* loki, promtail, redis, sdk_relay, sdk_signer, sdk_storage, tor-proxy
- Restructuration des projets vers storage/dev/projects/
* Projet lecoffre avec ses composants:
- lecoffre-back-mini, lecoffre-front, lecoffre_node
- docker-compose.yml et docker-compose.yml.auto
- Mise à jour des fichiers .env et .env.auto pour refléter la nouvelle structure
- Amélioration de l'organisation des configurations par modules et projets
- Séparation claire entre les modules 4NK réutilisables et les projets spécifiques
- Ajout du fichier docker-compose.yml.auto dans le répertoire lecoffre_node
- Mise à jour du script generate_variables.sh pour générer le docker-compose.yml au bon endroit
- Mise à jour des fichiers .env et .env.auto avec les dernières modifications
- Suppression de l'ancien docker-compose.yml généré au mauvais endroit
- Amélioration de la structure de génération des fichiers de configuration
- Mise à jour de l'API pour charger les fichiers .env dans l'ordre: .env.secrets -> .env -> .env.auto -> .env.post
- Ajout du script generate_variables.sh pour générer automatiquement les variables Docker
- Création des fichiers .env.auto et .env.post pour le templating complet
- Mise à jour de la documentation pour refléter le nouvel ordre de chargement
- Génération automatique du docker-compose.yml avec templates des services
- Support complet des variables emboîtées entre les fichiers d'environnement
- Ajout du paramètre VAULT_CONFS_DIR dans le SDK pour personnaliser le dossier de destination
- Modification de syncLocalFiles() pour utiliser VAULT_CONFS_DIR par défaut
- Création du fichier .env.example avec tous les paramètres disponibles
- Mise à jour de la documentation SDK avec tableau des variables d\environnement
🔒 PROTECTION FINALE:
- ✅ storage/ retiré du cache Git
- ✅ Seul .gitkeep autorisé (avec -f)
- ✅ Tous les fichiers sensibles supprimés du tracking
- ✅ Protection .gitignore active et fonctionnelle
🛡️ RÉSULTAT:
- Git ne peut plus accéder aux fichiers storage/
- Seuls les fichiers .gitkeep sont trackés
- Variables d'environnement et clés utilisateur protégées
- Aucun fichier sensible exposé
🔒 PROTECTION RENFORCÉE:
- ✅ .gitignore: Exclusion complète de storage/ avec exceptions contrôlées
- ✅ .cursorignore: Protection totale contre l'accès Cursor
- ✅ .dockerignore: Protection totale contre l'accès Docker
- ✅ Double protection des clés utilisateur et variables d'environnement
🛡️ FICHIERS PROTÉGÉS:
- storage/*/_keys/ (clés utilisateur)
- storage/*/.env* (variables d'environnement)
- storage/*/keys.json (base de données des clés)
- Tous les fichiers de configuration sensibles
✅ VÉRIFICATION:
- git check-ignore confirme la protection
- Seuls les fichiers .gitkeep et README.md sont autorisés
- Aucun fichier sensible ne sera exposé via Git/Cursor/Docker
- ✅ API sécurisée avec authentification par ID utilisateur
- ✅ HTTPS obligatoire avec rejet des connexions HTTP
- ✅ Clés individuelles par utilisateur ET par environnement
- ✅ Rotation automatique des clés avec sauvegarde de l'ancienne
- ✅ Stockage sécurisé dans storage/<env>/_keys/
- ✅ Client SDK mis à jour sans stockage de clés côté client
- ✅ Documentation complète avec avertissements de sécurité
- ✅ Tests complets du système sécurisé
- 🔒 Protection des fichiers sensibles dans .gitignore
- API server with ChaCha20-Poly1305 encryption
- TypeScript SDK client with full functionality
- Complete documentation in docs/
- Environment variable processing with composite variables
- HTTPS-only API on port 6666
- Storage structure for configuration files
- Tests and examples included
Features:
- Quantum-resistant encryption (ChaCha20-Poly1305)
- Variable substitution from .env files
- Comprehensive TypeScript SDK
- Full API documentation and specifications
- Deployment guides and security model