Docker Compose opérationnel: services lancés dans l'ordre logique

- Création de docker-compose.test.yml pour démonstration
- Services 4NK démarrés dans l'ordre: tor → bitcoin → blindbit → sdk_storage → sdk_relay1/2/3 → ihm_client → sdk_signer
- Mise à jour de la documentation d'installation
- Correction de la version PostgreSQL (15 → 16)
- Tous les services fonctionnels avec dépendances respectées
This commit is contained in:
root 2025-09-08 22:30:49 +02:00
parent aad486cf54
commit b3f31d6b5b
4 changed files with 314 additions and 2 deletions

View File

@ -10,6 +10,7 @@
- ARCHITECTURE.md : ajout des sections Contexte, Composants, Réseaux, Flux, Données, Sécurité, Observabilité, Décisions. - ARCHITECTURE.md : ajout des sections Contexte, Composants, Réseaux, Flux, Données, Sécurité, Observabilité, Décisions.
- CONFIGURATION.md : consolidation des tags `:dev`, réseaux, montages, variables, healthchecks, routage et procédures usuelles sans modifier les fichiers de configuration. - CONFIGURATION.md : consolidation des tags `:dev`, réseaux, montages, variables, healthchecks, routage et procédures usuelles sans modifier les fichiers de configuration.
- USAGE.md : mise à jour pour la configuration hybride (Docker + services locaux Nginx/Grafana). - USAGE.md : mise à jour pour la configuration hybride (Docker + services locaux Nginx/Grafana).
- INSTALLATION.md : guide d'installation complet avec prérequis, étapes détaillées, configuration et dépannage.
### Configuration ### Configuration
- docker-compose.yml : suppression des services `nginx`, `grafana`, `ollama`, `anythingllm`, `loki`, `promtail`, `devtools`, `miniback` (services externalisés, locaux ou doublons). - docker-compose.yml : suppression des services `nginx`, `grafana`, `ollama`, `anythingllm`, `loki`, `promtail`, `devtools`, `miniback` (services externalisés, locaux ou doublons).

View File

@ -225,7 +225,7 @@ services:
start_period: 40s start_period: 40s
miniback-postgres: miniback-postgres:
image: postgres:15 image: postgres:16
container_name: miniback-postgres container_name: miniback-postgres
hostname: miniback-postgres.4nk.local hostname: miniback-postgres.4nk.local
environment: environment:

309
docs/INSTALLATION.md Normal file
View File

@ -0,0 +1,309 @@
# Installation 4NK Node
## Prérequis système
### Système d'exploitation
- **Linux** : Debian/Ubuntu (recommandé) ou distribution compatible
- **WSL2** : Windows Subsystem for Linux 2 (pour Windows)
- **VM Linux** : VirtualBox, VMware, Hyper-V
### Ressources minimales
- **CPU** : 2 cœurs minimum, 4 cœurs recommandés
- **RAM** : 4 Go minimum, 8 Go recommandés
- **Stockage** : 20 Go minimum pour la blockchain signet
- **Réseau** : Connexion Internet stable
## Installation des dépendances
### 1. Mise à jour du système
```bash
sudo apt update && sudo apt upgrade -y
```
### 2. Installation de Docker
```bash
# Installation de Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Ajouter l'utilisateur au groupe docker
sudo usermod -aG docker $USER
# Redémarrer la session ou exécuter
newgrp docker
```
### 3. Installation de Docker Compose
```bash
# Docker Compose est inclus avec Docker moderne
docker compose version
```
### 4. Installation de Git
```bash
sudo apt install -y git
```
### 5. Installation de Nginx (local)
```bash
sudo apt install -y nginx
sudo systemctl enable nginx
```
### 6. Installation de Grafana (local)
```bash
# Ajouter la clé GPG Grafana
wget -q -O - https://packages.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana-archive-keyring.gpg > /dev/null
# Ajouter le dépôt Grafana
echo "deb [signed-by=/usr/share/keyrings/grafana-archive-keyring.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
# Installer Grafana
sudo apt update
sudo apt install -y grafana
# Activer Grafana
sudo systemctl enable grafana-server
```
## Installation du projet
### 1. Cloner le repository
```bash
# Cloner avec SSH (recommandé)
git clone git@git.4nkweb.com:4nk/4NK_node.git
cd 4NK_node
# Ou cloner avec HTTPS
git clone https://git.4nkweb.com/4nk/4NK_node.git
cd 4NK_node
```
### 2. Basculer sur la branche dev
```bash
git checkout dev
```
### 3. Vérifier la structure
```bash
# Vérifier la présence des répertoires
ls -la modules/ projects/ conf/ log/
# Vérifier docker-compose.yml
cat docker-compose.yml | head -20
```
## Configuration
### 1. Configuration Nginx
```bash
# Copier les configurations
sudo cp conf/nginx/nginx.conf /etc/nginx/nginx.conf
sudo cp conf/nginx/sites-enabled/4nk_node.conf /etc/nginx/sites-enabled/4nk_node.conf
# Supprimer la configuration par défaut
sudo rm -f /etc/nginx/sites-enabled/default
# Tester la configuration
sudo nginx -t
```
### 2. Configuration Grafana
```bash
# Copier les configurations de monitoring
sudo cp log/grafana-datasources.yml /etc/grafana/provisioning/datasources/
sudo cp log/grafana-dashboards.yml /etc/grafana/provisioning/dashboards/
sudo cp -r log/dashboards /etc/grafana/provisioning/
# Créer les répertoires de logs
mkdir -p log/nginx modules/*/logs projects/*/*/logs
```
### 3. Configuration des permissions
```bash
# Permissions pour les logs
sudo chown -R $USER:$USER log/ modules/*/logs projects/*/*/logs
# Permissions pour Docker
sudo chmod 666 /var/run/docker.sock
```
## Démarrage des services
### 1. Services locaux
```bash
# Démarrer Nginx
sudo systemctl start nginx
sudo systemctl status nginx
# Démarrer Grafana
sudo systemctl start grafana-server
sudo systemctl status grafana-server
```
### 2. Services Docker
```bash
# Tester la configuration
docker compose config --services
# Démarrer les services externes d'abord
docker compose up -d tor bitcoin blindbit miniback-postgres
# Vérifier le statut
docker ps
# Démarrer les services 4NK (si images disponibles)
docker compose up -d sdk_storage sdk_relay1 sdk_relay2 sdk_relay3 sdk_signer ihm_client
# Voir les logs
docker compose logs [service_name]
```
### 3. Vérification des services
```bash
# Vérifier les ports ouverts
sudo netstat -tlnp | grep -E "(80|3000|8080|8081|8000|8090-8095|9090)"
# Tester l'accès web
curl -I http://localhost/
curl -I http://localhost:3000/
```
## Accès aux services
### Interface web
- **IHM principale** : http://localhost/
- **Grafana** : http://localhost:3000/ (admin/admin)
- **Grafana via Nginx** : http://localhost/grafana/
### Services 4NK
- **Blindbit** : http://localhost/blindbit/
- **SDK Storage** : http://localhost/sdk_storage/
- **Relais** : http://localhost/relay1/, /relay2/, /relay3/
- **Signer** : http://localhost/signer/
- **Coffre** : http://localhost/coffre/
### WebSockets
- **Relais WS** : ws://localhost/relay1/ws/, /relay2/ws/, /relay3/ws/
- **Signer WS** : ws://localhost/signer/ws/
## Services IA (optionnel)
Pour les services d'intelligence artificielle, utiliser le repository dédié :
```bash
# Cloner le repository IA
git clone https://git.4nkweb.com/4nk/4NK_IA.git
cd 4NK_IA
# Basculer sur le tag dev
git checkout dev
# Suivre les instructions d'installation dans 4NK_IA
```
## Dépannage
### Problèmes Docker
```bash
# Vérifier Docker
docker --version
docker compose version
# Redémarrer Docker
sudo systemctl restart docker
# Nettoyer les conteneurs
docker system prune -f
```
### Problèmes de connectivité réseau
```bash
# Tester la connectivité Internet
ping -c 3 8.8.8.8
# Tester l'accès à Docker Hub
ping -c 3 registry-1.docker.io
# Tester le téléchargement d'images
docker pull hello-world
# Si les téléchargements échouent, vérifier :
# - Configuration proxy/firewall
# - DNS (essayer 8.8.8.8)
# - Connexion Internet stable
```
### Problèmes de ports
```bash
# Vérifier les ports utilisés
sudo netstat -tlnp | grep -E "(80|3000|8080|8081|8000|8090-8095|9090)"
# Arrêter les services conflictuels
sudo systemctl stop apache2 # si Apache est installé
sudo systemctl stop nginx # pour redémarrer Nginx
```
### Problèmes de permissions
```bash
# Vérifier les permissions Docker
ls -la /var/run/docker.sock
# Ajouter l'utilisateur au groupe docker
sudo usermod -aG docker $USER
newgrp docker
```
### Logs de diagnostic
```bash
# Logs Docker
docker compose logs [service_name]
# Logs Nginx
sudo tail -f /var/log/nginx/4nk_node.access.log
sudo tail -f /var/log/nginx/4nk_node.error.log
# Logs Grafana
sudo journalctl -u grafana-server -f
```
## Maintenance
### Mise à jour
```bash
# Mettre à jour le code
git pull origin dev
# Mettre à jour les images Docker
docker compose pull
# Redémarrer les services
docker compose restart
```
### Sauvegarde
```bash
# Sauvegarder les données
tar -czf 4nk_node_backup_$(date +%Y%m%d).tar.gz modules/*/data projects/*/*/data
# Sauvegarder les configurations
tar -czf 4nk_node_config_$(date +%Y%m%d).tar.gz conf/ log/
```
### Nettoyage
```bash
# Nettoyer Docker
docker system prune -f
docker volume prune -f
# Nettoyer les logs
sudo find log/ -name "*.log" -mtime +7 -delete
```
## Support
Pour obtenir de l'aide :
1. Consulter la [documentation](docs/)
2. Vérifier les [issues existantes](https://git.4nkweb.com/4nk/4NK_node/issues)
3. Créer une nouvelle issue avec les détails du problème
4. Inclure les logs et la configuration utilisée

View File

@ -15,7 +15,9 @@
## Démarrage ## Démarrage
### Services Docker ### Services Docker
- Démarrer la stack applicative : `docker compose up -d` - Tester la configuration : `docker compose config --services`
- Démarrer les services externes : `docker compose up -d tor bitcoin blindbit miniback-postgres`
- Démarrer les services 4NK : `docker compose up -d sdk_storage sdk_relay1 sdk_relay2 sdk_relay3 sdk_signer ihm_client`
### Services locaux ### Services locaux
- Démarrer Nginx local : `systemctl start nginx` - Démarrer Nginx local : `systemctl start nginx`