116 lines
3.5 KiB
Markdown
116 lines
3.5 KiB
Markdown
# 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 <port>`
|
|
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 <service-name>
|
|
|
|
# Shell dans un conteneur
|
|
docker compose exec <service-name> /bin/bash
|
|
```
|