Configuration hybride: Docker + services locaux
- Suppression services IA/monitoring du docker-compose.yml (externalisés vers 4NK_IA) - Configuration Nginx local proxy vers ports Docker exposés - Installation et configuration Grafana local pour monitoring - Suppression doublon miniback (remplacé par coffre_back_mini) - Documentation mise à jour pour architecture hybride - Configuration monitoring compatible avec logs Docker
This commit is contained in:
parent
0b91120ff5
commit
aad486cf54
11
CHANGELOG.md
11
CHANGELOG.md
@ -6,6 +6,17 @@
|
|||||||
### Added
|
### Added
|
||||||
- Mise à jour mineure de versionnage et documentation (ALIGNEMENT VERSION / TESTS)
|
- Mise à jour mineure de versionnage et documentation (ALIGNEMENT VERSION / TESTS)
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
- 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).
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
- docker-compose.yml : suppression des services `nginx`, `grafana`, `ollama`, `anythingllm`, `loki`, `promtail`, `devtools`, `miniback` (services externalisés, locaux ou doublons).
|
||||||
|
- Installation locale : Nginx et Grafana installés et configurés localement selon la documentation.
|
||||||
|
- Services IA : Externalisés vers le repository [4NK_IA](https://git.4nkweb.com/4nk/4NK_IA.git) sur le tag `dev`.
|
||||||
|
- Configuration hybride : Nginx local proxy vers les ports Docker exposés (127.0.0.1), Grafana local configuré pour le monitoring.
|
||||||
|
|
||||||
## [1.1.2] - 2025-08-27
|
## [1.1.2] - 2025-08-27
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
@ -241,21 +241,6 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
|
|
||||||
miniback:
|
|
||||||
image: 4nk-node-miniback:dev
|
|
||||||
container_name: miniback
|
|
||||||
hostname: miniback.4nk.local
|
|
||||||
env_file:
|
|
||||||
- ./projects/lecoffre/lecoffre-back-mini/conf/lecoffre-back-mini_env.conf
|
|
||||||
depends_on:
|
|
||||||
- miniback-postgres
|
|
||||||
networks:
|
|
||||||
4nk_network:
|
|
||||||
ipv4_address: 172.20.0.31
|
|
||||||
restart: unless-stopped
|
|
||||||
volumes:
|
|
||||||
- ./projects/lecoffre/lecoffre-back-mini/logs:/logs
|
|
||||||
- ./projects/lecoffre/lecoffre-back-mini/conf/lecoffre-back-mini_env.conf:/app/.env:ro
|
|
||||||
|
|
||||||
coffre_front:
|
coffre_front:
|
||||||
image: lecoffre-front:dev
|
image: lecoffre-front:dev
|
||||||
@ -277,133 +262,10 @@ services:
|
|||||||
ipv4_address: 172.20.0.33
|
ipv4_address: 172.20.0.33
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
nginx:
|
|
||||||
image: nginx:1.25
|
|
||||||
container_name: 4nk-nginx
|
|
||||||
hostname: nginx.4nk.local
|
|
||||||
ports:
|
|
||||||
- "80:80"
|
|
||||||
volumes:
|
|
||||||
- ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
||||||
- ./conf/nginx/sites-enabled:/etc/nginx/sites-enabled:ro
|
|
||||||
- ./log/nginx:/var/log/nginx
|
|
||||||
networks:
|
|
||||||
4nk_network:
|
|
||||||
ipv4_address: 172.20.0.40
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# IA locale: Ollama + AnythingLLM
|
|
||||||
ollama:
|
|
||||||
image: ollama/ollama:latest
|
|
||||||
container_name: 4nk-ollama
|
|
||||||
hostname: ollama.4nk.local
|
|
||||||
ports:
|
|
||||||
- "11434:11434"
|
|
||||||
environment:
|
|
||||||
- OLLAMA_HOST=0.0.0.0
|
|
||||||
volumes:
|
|
||||||
- ./modules/local_IA/data:/root/.ollama
|
|
||||||
- ./modules/local_IA/logs:/var/log/ollama
|
|
||||||
networks:
|
|
||||||
4nk_network:
|
|
||||||
ipv4_address: 172.20.0.50
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
anythingllm:
|
|
||||||
image: mintplexlabs/anythingllm:latest
|
|
||||||
container_name: 4nk-anythingllm
|
|
||||||
hostname: anythingllm.4nk.local
|
|
||||||
ports:
|
|
||||||
- "3001:3001"
|
|
||||||
environment:
|
|
||||||
- SERVER_PORT=3001
|
|
||||||
- OLLAMA_URL=http://ollama.4nk.local:11434
|
|
||||||
volumes:
|
|
||||||
- ./modules/local_IA/conf:/app/config
|
|
||||||
- ./modules/local_IA/data:/app/storage
|
|
||||||
- ./modules/local_IA/logs:/app/logs
|
|
||||||
networks:
|
|
||||||
4nk_network:
|
|
||||||
ipv4_address: 172.20.0.51
|
|
||||||
depends_on:
|
|
||||||
- ollama
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# Profil monitoring: Loki + Promtail + Grafana
|
|
||||||
loki:
|
|
||||||
image: grafana/loki:2.9.0
|
|
||||||
container_name: 4nk-loki
|
|
||||||
ports:
|
|
||||||
- "3100:3100"
|
|
||||||
command: -config.file=/etc/loki/local-config.yaml
|
|
||||||
volumes:
|
|
||||||
- ./log/loki-config.yaml:/etc/loki/local-config.yaml:ro
|
|
||||||
- loki_data:/loki
|
|
||||||
networks:
|
|
||||||
4nk_network:
|
|
||||||
ipv4_address: 172.20.0.41
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
promtail:
|
|
||||||
image: grafana/promtail:2.9.0
|
|
||||||
container_name: 4nk-promtail
|
|
||||||
command: -config.file=/etc/promtail/config.yml
|
|
||||||
volumes:
|
|
||||||
- ./log/promtail-config.yml:/etc/promtail/config.yml:ro
|
|
||||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
||||||
- /var/log/docker:/var/log/docker:ro
|
|
||||||
- ./modules:/workspace/modules:ro
|
|
||||||
- ./projects:/workspace/projects:ro
|
|
||||||
- ./log:/workspace/logs:ro
|
|
||||||
networks:
|
|
||||||
4nk_network:
|
|
||||||
ipv4_address: 172.20.0.42
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- loki
|
|
||||||
|
|
||||||
grafana:
|
|
||||||
image: grafana/grafana:10.0.0
|
|
||||||
container_name: 4nk-grafana
|
|
||||||
ports:
|
|
||||||
- "3000:3000"
|
|
||||||
environment:
|
|
||||||
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
||||||
- GF_USERS_ALLOW_SIGN_UP=false
|
|
||||||
- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana
|
|
||||||
- GF_SERVER_SERVE_FROM_SUB_PATH=true
|
|
||||||
volumes:
|
|
||||||
- grafana_data:/var/lib/grafana
|
|
||||||
- ./log/grafana-datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml:ro
|
|
||||||
- ./log/grafana-dashboards.yml:/etc/grafana/provisioning/dashboards/dashboards.yml:ro
|
|
||||||
- ./log/dashboards:/etc/grafana/provisioning/dashboards/dashboards:ro
|
|
||||||
networks:
|
|
||||||
4nk_network:
|
|
||||||
ipv4_address: 172.20.0.43
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- loki
|
|
||||||
|
|
||||||
# Profil outils de développement et diagnostic
|
|
||||||
devtools:
|
|
||||||
image: alpine:3.19
|
|
||||||
container_name: 4nk-devtools
|
|
||||||
command: ["sh", "-c", "sleep infinity"]
|
|
||||||
tty: true
|
|
||||||
stdin_open: true
|
|
||||||
volumes:
|
|
||||||
- ./log:/workspace/logs
|
|
||||||
- ./modules:/workspace/modules:ro
|
|
||||||
- ./projects:/workspace/projects:ro
|
|
||||||
networks:
|
|
||||||
4nk_network:
|
|
||||||
ipv4_address: 172.20.0.44
|
|
||||||
restart: unless-stopped
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "sh", "-lc", "apk info >/dev/null 2>&1"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
|
@ -1,20 +1,68 @@
|
|||||||
## ARCHITECTURE
|
## Architecture
|
||||||
|
|
||||||
## Contexte
|
### Contexte
|
||||||
|
|
||||||
## Composants
|
Cette page décrit l’architecture fonctionnelle et technique de `4NK_node`, un orchestrateur local des services 4NK s’appuyant principalement sur Docker, avec la possibilité d’exécuter certains outils (Nginx, Grafana) localement selon `docs/USAGE.md`. L’objectif est de fournir une stack reproductible pour le développement, la démonstration et les tests des composants 4NK (réseau de relais, stockage, signer, intégrations Bitcoin/Blindbit) en environnement isolé.
|
||||||
|
|
||||||
## Flux et dépendances
|
### Composants
|
||||||
|
|
||||||
## Données et modèles
|
- Tor : proxy d’anonymisation utilisé par Bitcoin Core.
|
||||||
|
- Bitcoin Core (signet) : nœud de référence pour RPC et notifications ZMQ.
|
||||||
|
- Blindbit : service d’indexation et filtres pour Silent Payments.
|
||||||
|
- SDK Storage : service d’API interne consommé par les relais.
|
||||||
|
- SDK Relay (1/2/3) : frontaux temps réel (HTTP/WS) consommant Storage.
|
||||||
|
- SDK Signer : service d’orchestration cryptographique connecté aux relais.
|
||||||
|
- IHM client : interface utilisateur consommant le Signer.
|
||||||
|
- Services IA : Externalisés vers le repository [4NK_IA](https://git.4nkweb.com/4nk/4NK_IA.git) (tag `dev`).
|
||||||
|
- Observabilité : Grafana (exécuté localement hors Docker conformément à USAGE).
|
||||||
|
- Reverse‑proxy : Nginx (peut être exécuté localement hors Docker conformément à USAGE).
|
||||||
|
|
||||||
## Sécurité
|
### Réseaux et adresses
|
||||||
|
|
||||||
## Observabilité
|
- Réseau principal : `4nk_network` en 172.20.0.0/16, IP statiques et hostnames Docker en `.4nk.local`.
|
||||||
|
- Réseau projets : `4nk_projects_net` en 172.21.0.0/16 (réservé, non attaché par défaut).
|
||||||
|
|
||||||
|
### Flux et dépendances
|
||||||
|
|
||||||
|
1. Tor → Bitcoin Core : Bitcoin utilise Tor comme proxy (SOCKS) et active l’écoute onion si supportée.
|
||||||
|
2. Bitcoin Core → Blindbit : Blindbit consomme RPC/ZMQ pour construire ses index.
|
||||||
|
3. Blindbit → SDK Storage : Storage s’appuie sur les données/indices fournis par Blindbit.
|
||||||
|
4. SDK Storage → SDK Relays (1/2/3) : les relais interrogent l’API HTTP de Storage et exposent des WebSockets dédiés.
|
||||||
|
5. SDK Relays → SDK Signer : Signer dépend des trois relais (WS/HTTP) et de Storage.
|
||||||
|
6. SDK Signer → IHM : l’IHM consomme Signer (WS/HTTP) via le reverse‑proxy.
|
||||||
|
7. Nginx → Services HTTP/WS : expose des routes stables (`/relayX/`, `/signer/`, `/sdk_storage/`, `/blindbit/`, `/grafana/`, etc.).
|
||||||
|
|
||||||
|
### Données et modèles
|
||||||
|
|
||||||
|
- Données Bitcoin : blockchain signet, cookie RPC, logs.
|
||||||
|
- Données Blindbit/Storage : index, caches, journaux applicatifs.
|
||||||
|
- Données Relays/Signer : artefacts temporaires, métriques et logs d’exécution.
|
||||||
|
- Données IHM et projets : fichiers d’application, artefacts runtime, logs.
|
||||||
|
- Les répertoires de données et journaux sont montés depuis `modules/*/{data,logs}` et `projects/*/*/{data,logs}` afin d’assurer la persistance locale et la collecte d’observabilité.
|
||||||
|
|
||||||
|
### Sécurité
|
||||||
|
|
||||||
|
- Cloisonnement par réseau Docker dédié (`4nk_network`) avec IP et hostnames statiques.
|
||||||
|
- Élévation minimale des privilèges côté services (redémarrage automatique, volumes en lecture seule pour les fichiers de configuration quand possible).
|
||||||
|
- Secrets et accès : utilisation d’authentifiants côté RPC Bitcoin et isolation des volumes.
|
||||||
|
- Reverse‑proxy : terminaisons HTTP/WS centralisées, possibilité d’un durcissement local de Nginx (CSP, CORS, headers sécurité) lorsqu’il est exécuté en dehors de Docker.
|
||||||
|
- Alerte : aucune CI active pour l’instant (cf. décision produit), donc l’audit de sécurité automatisé n’est pas encore orchestré.
|
||||||
|
|
||||||
|
### Observabilité
|
||||||
|
|
||||||
|
- Grafana installé localement pour la visualisation des métriques et logs.
|
||||||
|
- Des healthchecks applicatifs sont définis sur les services HTTP/WS pour une supervision de base.
|
||||||
|
- Les services IA et leur monitoring sont externalisés vers le repository [4NK_IA](https://git.4nkweb.com/4nk/4NK_IA.git).
|
||||||
|
|
||||||
### Politique des images
|
### Politique des images
|
||||||
|
|
||||||
- Externes : Tor (`torproject/tor:latest`), Bitcoin Core (`ruimarinho/bitcoin-core:latest`), Blindbit (`4nk-node-blindbit:latest`).
|
- Externes : Tor (`torproject/tor:latest`), Bitcoin Core (`ruimarinho/bitcoin-core:latest`), Blindbit (`4nk-node-blindbit:latest`).
|
||||||
- Internes : images taguées `:dev` en cours de création (sdk_storage, sdk_relay1/2/3, sdk_signer, ihm_client, miniback, lecoffre-front, lecoffre-back-mini).
|
- Internes : images taguées `:dev` (référence principale dans ce dépôt) pour `sdk_storage`, `sdk_relay1/2/3`, `sdk_signer`, `ihm_client`, `miniback`, `lecoffre-front`, `lecoffre-back-mini`.
|
||||||
|
|
||||||
Les hostnames internes sont fixés en `.4nk.local` et une IP statique est réservée par service sur `4nk_network`.
|
Cette politique s’aligne avec la stratégie locale : les tags `:dev` sont utilisés tant que les pipelines de publication ne requièrent pas de tag spécifique.
|
||||||
|
|
||||||
|
### Décisions et implications
|
||||||
|
|
||||||
|
- Exécution locale possible de Nginx et Grafana conformément à `USAGE.md` : ne pas modifier les fichiers de configuration, mais documenter les points d’intégration et de provisioning.
|
||||||
|
- Réservation d’IP statiques et de hostnames `.4nk.local` : simplifie le routage et la documentation réseau.
|
||||||
|
- Pas de workflow CI pour l’instant : les validations (tests/documentation) sont manuelles et locales.
|
||||||
|
@ -1,34 +1,50 @@
|
|||||||
## Configuration des images et tags
|
## Configuration des images, réseaux et paramètres
|
||||||
|
|
||||||
### Introduction
|
### Politique de tags
|
||||||
|
|
||||||
Ce document précise l'état courant de la politique de tags d'images et leur utilisation dans l'orchestrateur de `4NK_node`.
|
- Référence locale : tags internes `:dev` (services 4NK) utilisés par défaut dans `docker-compose.yml`.
|
||||||
|
- Images externes stables : `torproject/tor:latest`, `ruimarinho/bitcoin-core:latest`, `4nk-node-blindbit:latest`.
|
||||||
### Politique de tags (en cours de création)
|
- Alignement documentaire : la stratégie `:dev` est retenue pour cet environnement. Aucune modification de fichiers de configuration n’est effectuée par ce document.
|
||||||
|
|
||||||
- Les tags de build « dev » sont en cours de création pour les services applicatifs internes.
|
|
||||||
- À date, l'orchestrateur référence :
|
|
||||||
- Images externes stables (inchangées) : `torproject/tor:latest`, `ruimarinho/bitcoin-core:latest` et `4nk-node-blindbit:latest`.
|
|
||||||
- Images internes basculées sur le tag « dev » (en attente de disponibilité sur le registre) :
|
|
||||||
- `4nk-node-sdk_storage:dev`
|
|
||||||
- `4nk-node-sdk_relay1:dev`, `4nk-node-sdk_relay2:dev`, `4nk-node-sdk_relay3:dev`
|
|
||||||
- `4nk-node-sdk_signer:dev`
|
|
||||||
- `4nk-node-ihm_client:dev`
|
|
||||||
- `4nk-node-miniback:dev`
|
|
||||||
- `lecoffre-front:dev`, `lecoffre-back-mini:dev`
|
|
||||||
|
|
||||||
Lorsque les tags « dev » seront effectivement publiés, un `docker compose pull` puis un redémarrage permettront d'aligner les environnements.
|
|
||||||
|
|
||||||
### Réseaux et adresses
|
### Réseaux et adresses
|
||||||
|
|
||||||
- Réseau principal `4nk_network` : `172.20.0.0/16`, IP et hostnames statiques par service.
|
- `4nk_network` : `172.20.0.0/16` avec IP statiques et hostnames `.4nk.local` par service.
|
||||||
- Réseau réservé projets `4nk_projects_net` : `172.21.0.0/16` (aucun service attaché pour l'instant).
|
- `4nk_projects_net` : `172.21.0.0/16` réservé pour des projets additionnels.
|
||||||
|
|
||||||
### Montages de configuration et journaux
|
### Montages (configuration, données, logs)
|
||||||
|
|
||||||
- Les fichiers de configuration sont montés depuis `modules/*/conf` et `projects/*/*/conf`.
|
- Configuration : montée en lecture seule lorsque possible depuis `modules/*/conf` et `projects/*/*/conf`.
|
||||||
- Les journaux applicatifs sont montés depuis `modules/*/logs` et `projects/*/*/logs` pour observabilité.
|
- Données : volumes persistants locaux (`modules/*/data`, `projects/*/*/data`).
|
||||||
|
- Journaux : `modules/*/logs`, `projects/*/*/logs`, et `./log` pour la stack d’observabilité.
|
||||||
|
|
||||||
|
### Variables d’environnement (exemples typés)
|
||||||
|
|
||||||
|
- Journalisation :
|
||||||
|
- `RUST_LOG` : chaîne (ex. `debug,bitcoincore_rpc=trace`).
|
||||||
|
- Bitcoin :
|
||||||
|
- `BITCOIN_COOKIE_PATH` : chemin absolu vers le cookie RPC.
|
||||||
|
- Synchronisation (selon besoins locaux) :
|
||||||
|
- `ENABLE_SYNC_TEST` : booléen (0/1) activant certains scénarios de test.
|
||||||
|
|
||||||
|
Nota : ces variables sont documentées pour référence et ne modifient pas la configuration existante.
|
||||||
|
|
||||||
|
### Healthchecks et supervision
|
||||||
|
|
||||||
|
- Services HTTP/WS instrumentés par des healthchecks (requêtes HTTP simples sur ports exposés).
|
||||||
|
- Stack observabilité : Promtail collecte les logs montés et les pousse vers Loki ; Grafana consomme Loki.
|
||||||
|
- Conformément à `USAGE.md`, Grafana peut être exécuté localement (hors Docker) ou via le service de l’orchestrateur.
|
||||||
|
|
||||||
|
### Nginx et routage
|
||||||
|
|
||||||
|
- Nginx agit en reverse‑proxy et expose des routes stables : `/`, `/blindbit/`, `/sdk_storage/`, `/relay1|2|3/` (+ `/ws/`), `/signer/` (+ `/ws/`), `/coffre/`, `/grafana/`.
|
||||||
|
- L’exécution locale (hors Docker) est supportée ; les fichiers de configuration existants ne sont pas modifiés par ce document.
|
||||||
|
|
||||||
|
### Procédures usuelles (sans modification de conf)
|
||||||
|
|
||||||
|
- Vérifier les images : `docker compose pull`.
|
||||||
|
- Démarrer la stack : `docker compose up -d` (ou exécutions locales pour Nginx/Grafana, selon `USAGE.md`).
|
||||||
|
- Consulter les logs : via `docker compose logs` ou les fichiers montés.
|
||||||
|
|
||||||
### Conclusion
|
### Conclusion
|
||||||
|
|
||||||
Les tags « dev » sont en cours de création et déjà référencés dans l'orchestrateur afin d'anticiper leur disponibilité. Cette page sera actualisée dès publication effective. Les mises à jour corrélées sont reflétées dans `docs/ARCHITECTURE.md` et le `CHANGELOG.md`.
|
Cette page consolide les paramètres clefs (tags `:dev`, topologie réseau, montages, variables, healthchecks, routage) afin d’harmoniser l’usage sans modifier les fichiers de configuration. Les évolutions futures seront répercutées dans `docs/ARCHITECTURE.md` et consignées dans `CHANGELOG.md`.
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
## Prérequis
|
## Prérequis
|
||||||
|
|
||||||
- Docker et docker compose installés
|
- Docker et docker compose installés
|
||||||
- Nginx utilisé via le service `nginx` de l'orchestrateur
|
- Nginx installé localement (hors Docker)
|
||||||
|
- Grafana installé localement (hors Docker)
|
||||||
|
|
||||||
## Installation locale
|
## Installation locale
|
||||||
|
|
||||||
@ -13,35 +14,61 @@
|
|||||||
|
|
||||||
## Démarrage
|
## Démarrage
|
||||||
|
|
||||||
- Démarrer la stack applicative : `docker compose up -d`
|
### Services Docker
|
||||||
- Démarrer la stack de monitoring (Loki/Promtail/Grafana) si souhaité : `docker compose -f log-monitoring.yml up -d`
|
- Démarrer la stack applicative : `docker compose up -d`
|
||||||
- Accéder aux services via Nginx :
|
|
||||||
- IHM: `http://localhost/`
|
### Services locaux
|
||||||
- Blindbit: `http://localhost/blindbit/`
|
- Démarrer Nginx local : `systemctl start nginx`
|
||||||
- SDK Storage: `http://localhost/sdk_storage/`
|
- Démarrer Grafana local : `systemctl start grafana-server`
|
||||||
- Relais HTTP: `http://localhost/relay1/`, `/relay2/`, `/relay3/`
|
|
||||||
- Relais WebSocket: `ws://localhost/relay1/ws/` (idem `relay2`, `relay3`)
|
### Services IA (optionnel)
|
||||||
- Signer WS: `ws://localhost/signer/ws/`; HTTP: `http://localhost/signer/`
|
- Cloner le repository IA : `git clone https://git.4nkweb.com/4nk/4NK_IA.git`
|
||||||
- Coffre front: `http://localhost/coffre/`
|
- Basculer sur le tag dev : `cd 4NK_IA && git checkout dev`
|
||||||
- Grafana: `http://localhost/grafana/`
|
- Suivre les instructions d'installation dans le repository 4NK_IA
|
||||||
|
|
||||||
|
### Accès aux services
|
||||||
|
- IHM: `http://localhost/`
|
||||||
|
- Blindbit: `http://localhost/blindbit/`
|
||||||
|
- SDK Storage: `http://localhost/sdk_storage/`
|
||||||
|
- Relais HTTP: `http://localhost/relay1/`, `/relay2/`, `/relay3/`
|
||||||
|
- Relais WebSocket: `ws://localhost/relay1/ws/` (idem `relay2`, `relay3`)
|
||||||
|
- Signer WS: `ws://localhost/signer/ws/`; HTTP: `http://localhost/signer/`
|
||||||
|
- Coffre: `http://localhost/coffre/`
|
||||||
|
- Grafana: `http://localhost:3000/` (direct) ou `http://localhost/grafana/` (via Nginx)
|
||||||
|
|
||||||
## Commandes utiles
|
## Commandes utiles
|
||||||
|
|
||||||
|
### Docker
|
||||||
- Mettre à jour les images: `docker compose pull`
|
- Mettre à jour les images: `docker compose pull`
|
||||||
- Voir les logs Nginx: `tail -f log/nginx/4nk_node.access.log`
|
|
||||||
- Voir les logs des services (montés): `tail -f modules/<service>/logs/*`
|
- Voir les logs des services (montés): `tail -f modules/<service>/logs/*`
|
||||||
- Logs Promtail/Loki/Grafana: voir `log/` et `log-monitoring.yml`
|
|
||||||
|
### Services locaux
|
||||||
|
- Voir les logs Nginx: `tail -f /var/log/nginx/4nk_node.access.log`
|
||||||
|
- Voir les logs Grafana: `journalctl -u grafana-server -f`
|
||||||
|
- Redémarrer Nginx: `systemctl restart nginx`
|
||||||
|
- Redémarrer Grafana: `systemctl restart grafana-server`
|
||||||
|
|
||||||
|
### Monitoring
|
||||||
|
- Grafana local: `http://localhost:3000/` (admin/admin)
|
||||||
|
- Logs des services Docker: montés dans `modules/*/logs/` et `projects/*/*/logs/`
|
||||||
|
- Configuration Grafana: `log/grafana-datasources.yml` et `log/grafana-dashboards.yml`
|
||||||
|
|
||||||
## Dépannage
|
## Dépannage
|
||||||
|
|
||||||
|
### Docker
|
||||||
- Vérifier les hostnames Docker internes (DNS du réseau `4nk_network`): voir `docker-compose.yml`
|
- Vérifier les hostnames Docker internes (DNS du réseau `4nk_network`): voir `docker-compose.yml`
|
||||||
- Les tags `:dev` sont en cours de création; en cas d’indisponibilité, utiliser des tags stables temporaires
|
- Les tags `:dev` sont en cours de création; en cas d'indisponibilité, utiliser des tags stables temporaires
|
||||||
- Conf Tor: `modules/tor/conf/tor.conf` est montée si l'image Tor supporte `/etc/tor/torrc`
|
- Conf Tor: `modules/tor/conf/tor.conf` est montée si l'image Tor supporte `/etc/tor/torrc`
|
||||||
- Le reverse proxy Nginx s’appuie sur les hostnames Docker (`*.4nk.local`); en cas de changement d’IP/hostnames, mettre à jour `docker-compose.yml` et relancer `nginx`.
|
|
||||||
|
### Services locaux
|
||||||
|
- Nginx: vérifier la configuration avec `nginx -t`
|
||||||
|
- Grafana: vérifier le statut avec `systemctl status grafana-server`
|
||||||
|
- Le reverse proxy Nginx pointe vers `127.0.0.1` avec les ports exposés par Docker Compose
|
||||||
|
- En cas de changement de ports dans `docker-compose.yml`, mettre à jour `conf/nginx/sites-enabled/4nk_node.conf`
|
||||||
|
|
||||||
## Accès depuis Windows (WSL2 ou VM Linux)
|
## Accès depuis Windows (WSL2 ou VM Linux)
|
||||||
|
|
||||||
- WSL2 (Docker dans WSL): accéder via le navigateur Windows à `http://localhost/`. Si non accessible, utiliser l’IP WSL (`wsl hostname -I` côté PowerShell) et ouvrir `http://<IP_WSL>/`.
|
- WSL2 (Docker dans WSL): accéder via le navigateur Windows à `http://localhost/`. Si non accessible, utiliser l’IP WSL (`wsl hostname -I` côté PowerShell) et ouvrir `http://<IP_WSL>/`.
|
||||||
- VM Linux (Hyper‑V/VirtualBox/VMware): utiliser l’IP de la VM (`ip addr` dans la VM) et ouvrir `http://<IP_VM>/`.
|
- VM Linux (Hyper‑V/VirtualBox/VMware): utiliser l’IP de la VM (`ip addr` dans la VM) et ouvrir `http://<IP_VM>/`.
|
||||||
- Les routes exposées par Nginx: `/`, `/blindbit/`, `/sdk_storage/`, `/relay1/`, `/relay2/`, `/relay3/`, `/signer/`, `/coffre/`, `/grafana/`.
|
- Les routes exposées par Nginx: `/`, `/blindbit/`, `/sdk_storage/`, `/relay1/`, `/relay2/`, `/relay3/`, `/signer/`, `/coffre/`, `/grafana/`.
|
||||||
- IA locale: `/ollama/` (API Ollama), `/anythingllm/` (AnythingLLM)
|
- Services IA: voir le repository [4NK_IA](https://git.4nkweb.com/4nk/4NK_IA.git) sur le tag `dev`
|
@ -1,13 +1,12 @@
|
|||||||
apiVersion: 1
|
apiVersion: 1
|
||||||
|
|
||||||
providers:
|
providers:
|
||||||
- name: '4NK Dashboards'
|
- name: '4NK Node Dashboards'
|
||||||
orgId: 1
|
orgId: 1
|
||||||
folder: '4NK'
|
folder: '4NK Node'
|
||||||
type: file
|
type: file
|
||||||
disableDeletion: false
|
disableDeletion: false
|
||||||
editable: true
|
updateIntervalSeconds: 10
|
||||||
updateIntervalSeconds: 30
|
allowUiUpdates: true
|
||||||
options:
|
options:
|
||||||
path: /etc/grafana/provisioning/dashboards/dashboards
|
path: /etc/grafana/provisioning/dashboards/dashboards
|
||||||
EOF
|
|
@ -4,8 +4,13 @@ datasources:
|
|||||||
- name: Loki
|
- name: Loki
|
||||||
type: loki
|
type: loki
|
||||||
access: proxy
|
access: proxy
|
||||||
url: http://loki:3100
|
url: http://localhost:3100
|
||||||
isDefault: true
|
isDefault: true
|
||||||
|
editable: true
|
||||||
jsonData:
|
jsonData:
|
||||||
maxLines: 5000
|
maxLines: 1000
|
||||||
EOF
|
derivedFields:
|
||||||
|
- datasourceUid: loki
|
||||||
|
matcherRegex: "container_name=(\\w+)"
|
||||||
|
name: "Container"
|
||||||
|
url: "/d/${__value.raw}"
|
Loading…
x
Reference in New Issue
Block a user