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:
parent
aad486cf54
commit
b3f31d6b5b
@ -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).
|
||||||
|
@ -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
309
docs/INSTALLATION.md
Normal 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
|
@ -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`
|
||||||
|
Loading…
x
Reference in New Issue
Block a user