lecoffre_node/docs/REX_Redéploiement_Complet.md

5.7 KiB

REX - Redéploiement Complet LeCoffre avec Accessibilité Externe

Date

21 septembre 2025

Contexte

Redéploiement complet de l'écosystème LeCoffre selon les consignes mises à jour, en s'assurant que tous les services écoutent sur 0.0.0.0 et sont accessibles depuis l'extérieur via le nom de domaine.

Corrections Apportées

1. Correction des Ports Docker Compose

Problème identifié : Les services écoutaient sur 127.0.0.1 au lieu de 0.0.0.0, les rendant inaccessibles depuis l'extérieur.

Solution appliquée : Modification du fichier docker-compose.yml pour tous les services :

# Avant
ports:
  - "127.0.0.1:8090:8090"
  - "127.0.0.1:8091:8091"

# Après
ports:
  - "0.0.0.0:8090:8090"
  - "0.0.0.0:8091:8091"

Services corrigés :

  • blindbit-oracle : 0.0.0.0:8000
  • sdk_relay : 0.0.0.0:8090-8091
  • lecoffre-back : 0.0.0.0:8080
  • lecoffre-front : 0.0.0.0:3004
  • ihm_client : 0.0.0.0:3003
  • sdk_signer : 0.0.0.0:3001
  • sdk_storage : 0.0.0.0:8081
  • grafana : 0.0.0.0:3005
  • loki : 0.0.0.0:3100
  • status-api : 0.0.0.0:3006

2. Correction de la Configuration Nginx

Problème identifié : La configuration nginx utilisait 127.0.0.1 dans les proxy_pass, causant des erreurs 502.

Solution appliquée : Mise à jour des fichiers de configuration nginx :

  • dev4.4nkweb.com-https.conf
  • dev4.4nkweb.com.conf
# Avant
proxy_pass http://127.0.0.1:8090/;

# Après
proxy_pass http://localhost:8090/;

3. Correction du Service IHM Client

Problème identifié : Erreurs Vite : Failed to resolve import "../pkg/sdk_client.js"

Solution appliquée : Rebuild de l'image ihm_client avec les fichiers correctement copiés.

Tests de Connectivité Externe

Services Accessibles via HTTPS

  • Frontend LeCoffre : https://dev4.4nkweb.com/lecoffre → HTTP 200
  • IHM Client : https://dev4.4nkweb.com/ → HTTP 200
  • Grafana : https://dev4.4nkweb.com/grafana/ → HTTP 302 (redirection login)
  • Page de Statut : https://dev4.4nkweb.com/status/ → HTTP 200

⚠️ Services avec Problèmes

  • API Backend : https://dev4.4nkweb.com/api/health → HTTP 404 (endpoint manquant)
  • WebSocket Relay : https://dev4.4nkweb.com/ws/ → HTTP 502 (configuration WebSocket)

🔧 Services Internes Fonctionnels

  • sdk_relay : Health check OK, répond sur port 8091
  • sdk_storage : Health check OK
  • lecoffre-back : Health check OK
  • ihm_client : Démarre correctement

Architecture de Déploiement

Services Docker Opérationnels

NAME              STATUS                    PORTS
bitcoin-signet    Up (healthy)
blindbit-oracle   Up (healthy)             0.0.0.0:8000->8000/tcp
sdk_relay         Up (healthy)             0.0.0.0:8090-8091->8090-8091/tcp
sdk_signer        Up                       0.0.0.0:3001->9090/tcp
sdk_storage       Up (healthy)             0.0.0.0:8081->8080/tcp
lecoffre-back     Up (healthy)             0.0.0.0:8080->8080/tcp
lecoffre-front    Up (healthy)             0.0.0.0:3004->3000/tcp
ihm_client        Up (healthy)             0.0.0.0:3003->3003/tcp
grafana           Up                       0.0.0.0:3005->3000/tcp
loki              Up                       0.0.0.0:3100->3100/tcp
status-api        Up                       0.0.0.0:3006->3006/tcp

Configuration Nginx

  • HTTPS actif sur port 443
  • Redirection HTTP → HTTPS
  • Certificats SSL valides (expire le 15 déc 2025)
  • Configuration centralisée dans lecoffre_node/conf/nginx/

Points d'Attention Identifiés

1. Endpoint API Backend

  • Problème : /api/health retourne 404
  • Cause : Endpoint de santé manquant dans le backend
  • Action : Vérifier les routes disponibles dans le backend

2. WebSocket Relay

  • Problème : /ws/ retourne 502
  • Cause : Configuration WebSocket ou service non accessible
  • Action : Vérifier la configuration WebSocket dans nginx

3. Monitoring

  • Grafana : Accessible mais nécessite authentification
  • Loki : Accessible en interne
  • Promtail : Collecte des logs active

Validation Finale

Critères Respectés

  1. Services sur 0.0.0.0 : Tous les services écoutent sur toutes les interfaces
  2. Accessibilité externe : Services accessibles via nom de domaine
  3. HTTPS fonctionnel : Certificats valides et redirection active
  4. Services principaux : Frontend, IHM, Grafana accessibles
  5. Configuration centralisée : Nginx configuré correctement

🔧 Améliorations Nécessaires

  1. Corriger l'endpoint API /api/health
  2. Résoudre le WebSocket /ws/ (502)
  3. Vérifier les routes API du backend
  4. Tester les WebSockets avec un client approprié

Leçons Apprises

Docker Compose

  1. Ports 0.0.0.0 vs 127.0.0.1 : Crucial pour l'accessibilité externe
  2. Redémarrage nécessaire après modification des ports
  3. Health checks : Vérifier que les services répondent correctement

Nginx

  1. Configuration proxy_pass : Utiliser localhost pour les services locaux
  2. Test de configuration : nginx -t avant reload
  3. Logs d'erreur : Consulter /var/log/nginx/error.log pour diagnostiquer

Services

  1. Ordre de démarrage : Respecter les dépendances entre services
  2. Logs Docker : Utiliser docker compose logs pour diagnostiquer
  3. Tests de connectivité : Tester depuis l'intérieur et l'extérieur

Statut Final

🎉 REDÉPLOIEMENT RÉUSSI - Services accessibles depuis l'extérieur

Services opérationnels : 8/10 Accessibilité externe : Fonctionnelle Configuration : Complète et centralisée