4NK_node/docs/INSTALLATION.md
root b3f31d6b5b 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
2025-09-08 22:30:49 +02:00

6.9 KiB

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

sudo apt update && sudo apt upgrade -y

2. Installation de Docker

# 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

# Docker Compose est inclus avec Docker moderne
docker compose version

4. Installation de Git

sudo apt install -y git

5. Installation de Nginx (local)

sudo apt install -y nginx
sudo systemctl enable nginx

6. Installation de Grafana (local)

# 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

# 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

git checkout dev

3. Vérifier la structure

# 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

# 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

# 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

# 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

# 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

# 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

# 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

Services 4NK

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é :

# 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

# 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

# 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

# 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

# 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

# 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

# Mettre à jour le code
git pull origin dev

# Mettre à jour les images Docker
docker compose pull

# Redémarrer les services
docker compose restart

Sauvegarde

# 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

# 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
  2. Vérifier les issues existantes
  3. Créer une nouvelle issue avec les détails du problème
  4. Inclure les logs et la configuration utilisée