Files
apxtri/setup/README_SETUP.md
T

2.9 KiB
Executable File

Documentation Setup

Structure des fichiers de documentation

⚠️ IMPORTANT : Tous les fichiers de documentation (sauf README.md à la racine) se trouvent dans le répertoire /documents.

Fichiers de documentation existants

Tous les fichiers suivants se trouvent dans /documents :

  • SETUP.md - Guide d'installation complet ✅ MAJ (init.sh)
  • EXAMPLE_INSTALL.md - Exemples d'installation ✅ MAJ (init.sh)
  • CHANGELOG_INIT.md - Journal des changements de init.sh
  • QUICKSTART_CONSENSUS.md
  • BLOCKCHAIN_USAGE.md
  • CONSENSUS_DESIGN.md
  • MULTI_BLOCKCHAIN_DESIGN.md
  • APX3_DESIGN.md
  • WHITEPAPER.md

Scripts d'installation

Dans /setup :

  • init.sh - Script d'installation unifié (remplace launch.sh)
  • backup.sh - Script de sauvegarde
  • update.sh - Script de mise à jour
  • launch.sh - SUPPRIMÉ, remplacé par init.sh

Convention pour l'avenir

  • ✅ Documentation générale → /documents
  • ✅ README principal → /README.md (racine)
  • ✅ Scripts d'installation → /setup
  • ❌ Ne pas créer de nouveaux fichiers .md dans /setup
  • ⚠️ Lors de modifications du code, mettre à jour la documentation dans /documents

Variable d'environnement spéciales : TRUSTEDPROXYIPS

Utilisée quand le serveur Caddy (dans un LXC) est derrière un reverse proxy (nginx/haproxy) qui utilise PROXY protocol v2 (send-proxy-v2).

Rôle

  • Indique à Caddy quelles IPs de proxies sont autorisées à envoyer du PROXY protocol
  • Active le parser PROXY protocol v2 pour récupérer l'IP réelle du client
  • Empêche Caddy de voir l'IP du proxy comme IP source

Configuration dans le .env

# IP(s) du/des reverse proxy(s) amont (séparées par des virgules si plusieurs)
TRUSTEDPROXYIPS="192.168.1.3"
# ou pour plusieurs proxies :
TRUSTEDPROXYIPS="192.168.1.3,10.31.251.1"

Conséquence dans la config Caddy générée

Quand TRUSTEDPROXYIPS est défini, la config Caddy générée par models/Caddy.js contient :

{
  "listen": [":80"],
  "listener_wrappers": [{
    "wrapper": "proxy_protocol",
    "allow": ["192.168.1.3/32"]
  }]
}
  • listener_wrappers[].wrapper: "proxy_protocol" → active le parseur PROXY protocol v2
  • listener_wrappers[].allow → IPs autorisées à envoyer du PROXY protocol (format CIDR). Les IPs simples sont automatiquement converties en /32 par le code.

Note: Le format Caddy 2.11+ utilise allow dans listener_wrappers, pas trusted_proxies au niveau racine. Les IPs doivent être en notation CIDR.

Cas typique d'utilisation

Internet → HAProxy (send-proxy-v2) → Host → LXC → Caddy (:80, proxy_protocol) → Node.js (:3000)

Sans TRUSTEDPROXYIPS, Caddy reçoit PROXY TCP4 192.168.1.3 ... comme requête HTTP invalide → 400 Bad Request.

Avec TRUSTEDPROXYIPS → Caddy parse le header PROXY protocol → IP réelle du client conservée.