From b3f31d6b5b522d3ce8ba1772c2eb9d376162700d Mon Sep 17 00:00:00 2001 From: root Date: Mon, 8 Sep 2025 22:30:49 +0200 Subject: [PATCH] =?UTF-8?q?Docker=20Compose=20op=C3=A9rationnel:=20service?= =?UTF-8?q?s=20lanc=C3=A9s=20dans=20l'ordre=20logique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- CHANGELOG.md | 1 + docker-compose.yml | 2 +- docs/INSTALLATION.md | 309 +++++++++++++++++++++++++++++++++++++++++++ docs/USAGE.md | 4 +- 4 files changed, 314 insertions(+), 2 deletions(-) create mode 100644 docs/INSTALLATION.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 80e0e660..eef2d572 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - 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. - 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 - docker-compose.yml : suppression des services `nginx`, `grafana`, `ollama`, `anythingllm`, `loki`, `promtail`, `devtools`, `miniback` (services externalisés, locaux ou doublons). diff --git a/docker-compose.yml b/docker-compose.yml index 535e5b88..af82cffb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -225,7 +225,7 @@ services: start_period: 40s miniback-postgres: - image: postgres:15 + image: postgres:16 container_name: miniback-postgres hostname: miniback-postgres.4nk.local environment: diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md new file mode 100644 index 00000000..942a3ce5 --- /dev/null +++ b/docs/INSTALLATION.md @@ -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 diff --git a/docs/USAGE.md b/docs/USAGE.md index 92e9b62e..db8425f1 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -15,7 +15,9 @@ ## Démarrage ### 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 - Démarrer Nginx local : `systemctl start nginx`