# Modules Docker (4NK_dev) ## 4NK_node Infrastructure Docker complète pour l'écosystème 4NK avec Bitcoin, Tor, et services 4NK. ### Services inclus - **bitcoin-signet** : Nœud Bitcoin testnet - **tor-proxy** : Proxy Tor pour l'anonymat - **blindbit-oracle** : Oracle pour les transactions confidentielles - **sdk-storage** : Service de stockage distribué - **sdk_relay_1/2/3** : Services de relais P2P - **4nk-ihm-client** : Interface utilisateur web - **4nk-reverse-proxy** : Proxy inverse pour les services ### Scripts de gestion - `4NK_node/scripts/manage_services.sh` : Script principal de gestion - `start` : Démarre tous les services - `stop` : Arrête tous les services - `clean` : Nettoie conteneurs, images, volumes - `restart` : Redémarre tous les services - `status` : Affiche le statut des services - `logs` : Affiche les logs des services ### Scripts legacy (modules/) - `modules/4NK_node/build.sh` : construit les services avec `docker compose build` - `modules/4NK_node/up.sh` : démarre les services en détaché - `modules/4NK_node/down.sh` : arrête et nettoie les services - `modules/4NK_node/logs.sh` : affiche les logs (suivi) - `modules/4NK_node/clean.sh` : down -v + prune d'images ### Version/tag Lit `4NK_node/VERSION` si présent, sinon utilise `git describe` pour définir `COMPOSE_PROJECT_NAME`. ## 4NK_template Template Docker multi-stage Node.js pour les nouveaux projets 4NK. ### Dockerfile - Multi-stage build optimisé - Support pour Node.js et Rust - Configuration automatique des hooks Git ### Scripts - `modules/4NK_template/build.sh` : build de l'image à partir de `4NK_template/` - `modules/4NK_template/run.sh` : exécute l'image, mappe le port 3000 - `modules/4NK_template/clean.sh` : supprime l'image construite et fait un prune ### Version/tag Lit `4NK_template/VERSION` si présent, sinon `git describe`. ## Prérequis - Docker et Docker Compose v2 (plugin) installés - Rust (latest stable) pour les projets SDK - Node.js 18+ pour les clients ## Utilisation (recommandée) ### Gestion moderne avec manage_services.sh ```bash # Démarrer l'infrastructure complète cd 4NK_node ./scripts/manage_services.sh start # Vérifier le statut ./scripts/manage_services.sh status # Arrêter et nettoyer ./scripts/manage_services.sh clean ``` ### Utilisation séquentielle (legacy) 1. Construire 4NK_node - `bash modules/4NK_node/build.sh` 2. Démarrer 4NK_node - `bash modules/4NK_node/up.sh` 3. Construire 4NK_template - `bash modules/4NK_template/build.sh` 4. Lancer 4NK_template - `bash modules/4NK_template/run.sh` 5. Logs 4NK_node - `bash modules/4NK_node/logs.sh` 6. Arrêt 4NK_node - `bash modules/4NK_node/down.sh` ## Configuration ### Variables d'environnement - `COMPOSE_PROJECT_NAME` : Nom du projet Docker (auto-détecté) - `DOCKER_BUILDKIT` : Active BuildKit pour des builds plus rapides ### Ports exposés - **9050-9051** : Tor proxy - **18443** : Bitcoin RPC - **29000** : Bitcoin P2P - **8000** : Blindbit oracle - **8081** : SDK Storage - **8090-8091** : SDK Relays ## Troubleshooting ### Problèmes courants 1. **Ports déjà utilisés** : Vérifier avec `netstat -tulpn | grep ` 2. **Images corrompues** : Utiliser `./scripts/manage_services.sh clean` 3. **Services qui ne démarrent pas** : Vérifier les logs avec `./scripts/manage_services.sh logs` ### Logs et debugging ```bash # Logs de tous les services ./scripts/manage_services.sh logs # Logs d'un service spécifique docker compose logs # Shell dans un conteneur docker compose exec /bin/bash ```