# 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