ci: docker_tag=ext - Fix sdk_relay healthcheck with curl installation
This commit is contained in:
parent
a5b8f1a2db
commit
77cb87b518
102
.env.bak
Normal file
102
.env.bak
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
# Variables d'environnement pour l'application back-end
|
||||||
|
NODE_OPTIONS=--max-old-space-size=2048
|
||||||
|
NODE_ENV=production
|
||||||
|
|
||||||
|
# Configuration IDNOT
|
||||||
|
IDNOT_ANNUARY_BASE_URL=https://qual-api.notaires.fr/annuaire
|
||||||
|
# IDNOT_REDIRECT_URI=http://local.4nkweb.com:3004/authorized-client
|
||||||
|
IDNOT_REDIRECT_URI=http://local.4nkweb.com:3000/authorized-client
|
||||||
|
IDNOT_TOKEN_URL=https://qual-connexion.idnot.fr/user/IdPOAuth2/token/idnot_idp_v1
|
||||||
|
IDNOT_API_BASE_URL=https://qual-api.notaires.fr
|
||||||
|
|
||||||
|
# Configuration serveur
|
||||||
|
APP_HOST=dev4.4nkweb.com
|
||||||
|
# API_BASE_URL=https://demo.4nkweb.com/back
|
||||||
|
API_BASE_URL=https://dev4.4nkweb.com/back
|
||||||
|
# DEFAULT_STORAGE=https://demo.4nkweb.com/storage
|
||||||
|
DEFAULT_STORAGE=https://dev4.4nkweb.com/storage
|
||||||
|
|
||||||
|
# Variables d'environnement pour l'application front-end
|
||||||
|
# NEXT_PUBLIC_4NK_URL=http://demo.4nkweb.com/
|
||||||
|
NEXT_PUBLIC_4NK_URL=https://dev4.4nkweb.com
|
||||||
|
# NEXT_PUBLIC_FRONT_APP_HOST=https://demo.4nkweb.com
|
||||||
|
NEXT_PUBLIC_FRONT_APP_HOST=https://dev4.4nkweb.com/lecoffre
|
||||||
|
NEXT_PUBLIC_IDNOT_BASE_URL=https://qual-connexion.idnot.fr
|
||||||
|
NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT=/IdPOAuth2/authorize/idnot_idp_v1
|
||||||
|
NEXT_PUBLIC_BACK_API_PROTOCOL=https
|
||||||
|
NEXT_PUBLIC_BACK_API_HOST=dev4.4nkweb.com
|
||||||
|
NEXT_PUBLIC_BACK_API_PORT=443
|
||||||
|
NEXT_PUBLIC_BACK_API_ROOT_URL=/api
|
||||||
|
NEXT_PUBLIC_BACK_API_VERSION=v1
|
||||||
|
# NEXT_PUBLIC_ANK_BASE_REDIRECT_URI='http://local.4nkweb.com:3004/authorized-client'
|
||||||
|
NEXT_PUBLIC_ANK_BASE_REDIRECT_URI=https://dev4.4nkweb.com/lecoffre/authorized-client
|
||||||
|
NEXT_PUBLIC_TARGET_ORIGIN=https://dev4.4nkweb.com/lecoffre
|
||||||
|
NEXT_PUBLIC_4NK_IFRAME_URL=https://dev4.4nkweb.com
|
||||||
|
NEXT_PUBLIC_IDNOT_REDIRECT_URI=https://dev4.4nkweb.com/lecoffre/authorized-client
|
||||||
|
|
||||||
|
NEXT_PUBLIC_DOCAPOSTE_API_URL=
|
||||||
|
NEXT_PUBLIC_API_URL=https://dev4.4nkweb.com/api
|
||||||
|
NEXT_PUBLIC_DEFAULT_VALIDATOR_ID=28c9a3a8151bef545ebf700ca5222c63d0031ad593097e95c1de202464304a99
|
||||||
|
NEXT_PUBLIC_DEFAULT_STORAGE_URLS=https://dev4.4nkweb.com/storage
|
||||||
|
|
||||||
|
# WS
|
||||||
|
# RELAY_URLS=wss://demo.4nkweb.com/ws
|
||||||
|
RELAY_URLS=wss://dev4.4nkweb.com/ws
|
||||||
|
|
||||||
|
# SIGNER_WS_URL=ws://dev4.4nkweb.com/signer/
|
||||||
|
SIGNER_WS_URL=ws://dev3.4nkweb.com
|
||||||
|
SIGNER_BASE_URL=https://dev3.4nkweb.com
|
||||||
|
|
||||||
|
# IHM URLS
|
||||||
|
# VITE_BOOTSTRAPURL=http://sdk_relay:8090/
|
||||||
|
VITE_BOOTSTRAPURL=https://dev4.4nkweb.com/ws/
|
||||||
|
|
||||||
|
# Cartes de test Stripe
|
||||||
|
SUCCES='4242 4242 4242 4242'
|
||||||
|
DECLINED='4000 0025 0000 3155'
|
||||||
|
ENABLE_SUBSCRIPTION_STUB=true
|
||||||
|
CORS_ALLOWED_ORIGINS=http://local.4nkweb.com:3000,https://dev4.4nkweb.com
|
||||||
|
|
||||||
|
core_url="http://bitcoin:38332"
|
||||||
|
ws_url="0.0.0.0:8090"
|
||||||
|
wallet_name="default"
|
||||||
|
network="signet"
|
||||||
|
blindbit_url="http://blindbit:8000"
|
||||||
|
zmq_url="tcp://bitcoin:29000"
|
||||||
|
storage="https://dev4.4nkweb.com/storage"
|
||||||
|
data_dir="/home/bitcoin/.4nk"
|
||||||
|
bitcoin_data_dir="/home/bitcoin/.bitcoin"
|
||||||
|
|
||||||
|
|
||||||
|
# ================== /!\ sensible =========================
|
||||||
|
|
||||||
|
# Configuration IDNOT
|
||||||
|
IDNOT_API_KEY=ba557f84-0bf6-4dbf-844f-df2767555e3e
|
||||||
|
IDNOT_CLIENT_ID=B3CE56353EDB15A9
|
||||||
|
IDNOT_CLIENT_SECRET=3F733549E879878344B6C949B366BB5CDBB2DB5B7F7AB7EBBEBB0F0DD0776D1C
|
||||||
|
NEXT_PUBLIC_IDNOT_CLIENT_ID=B3CE56353EDB15A9
|
||||||
|
|
||||||
|
# Configuration OVH
|
||||||
|
OVH_APP_KEY=5ab0709bbb65ef26
|
||||||
|
OVH_APP_SECRET=de1fac1779d707d263a611a557cd5766
|
||||||
|
OVH_CONSUMER_KEY=5fe817829b8a9c780cfa2354f8312ece
|
||||||
|
OVH_SMS_SERVICE_NAME=sms-tt802880-1
|
||||||
|
|
||||||
|
# Configuration SMS Factor
|
||||||
|
SMS_FACTOR_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI4NzgzNiIsImlhdCI6MTcwMTMzOTY1Mi45NDUzOH0.GNoqLb5MDBWuniNlQjbr1PKolwxGqBZe_tf4IMObvHw
|
||||||
|
|
||||||
|
# Configuration Mailchimp
|
||||||
|
MAILCHIMP_API_KEY=md-VVfaml-ApIV4nsGgaJKl0A
|
||||||
|
MAILCHIMP_KEY=3fa54304bc766dfd0b8043a827b28a3a-us17
|
||||||
|
MAILCHIMP_LIST_ID=a48d9ad852
|
||||||
|
|
||||||
|
# Configuration Stripe
|
||||||
|
STRIPE_SECRET_KEY=sk_test_51OwKmMP5xh1u9BqSeFpqw0Yr15hHtFsh0pvRGaE0VERhlYtvw33ND1qiGA6Dy1DPmmV61B6BqIimlhuv7bwElhjF00PLQwD60n
|
||||||
|
STRIPE_WEBHOOK_SECRET=
|
||||||
|
STRIPE_STANDARD_SUBSCRIPTION_PRICE_ID=price_1P66fuP5xh1u9BqSHj0O6Uy3
|
||||||
|
STRIPE_STANDARD_ANNUAL_SUBSCRIPTION_PRICE_ID=price_1P9NsRP5xh1u9BqSFgkUDbQY
|
||||||
|
STRIPE_UNLIMITED_SUBSCRIPTION_PRICE_ID=price_1P66RqP5xh1u9BqSuUzkQNac
|
||||||
|
STRIPE_UNLIMITED_ANNUAL_SUBSCRIPTION_PRICE_ID=price_1P9NpKP5xh1u9BqSApFogvUB
|
||||||
|
|
||||||
|
SIGNER_API_KEY=your-api-key-change-this
|
||||||
|
VITE_JWT_SECRET_KEY=52b3d77617bb00982dfee15b08effd52cfe5b2e69b2f61cc4848cfe1e98c0bc9
|
@ -59,7 +59,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
sdk_relay:
|
sdk_relay:
|
||||||
image: git.4nkweb.com/4nk/sdk_relay:dev
|
image: git.4nkweb.com/4nk/sdk_relay:ext
|
||||||
container_name: sdk_relay
|
container_name: sdk_relay
|
||||||
depends_on:
|
depends_on:
|
||||||
blindbit:
|
blindbit:
|
||||||
@ -70,6 +70,7 @@ services:
|
|||||||
- bitcoin_data:/home/bitcoin/.bitcoin
|
- bitcoin_data:/home/bitcoin/.bitcoin
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:8090:8090"
|
- "127.0.0.1:8090:8090"
|
||||||
|
- "127.0.0.1:8091:8091"
|
||||||
networks:
|
networks:
|
||||||
btcnet:
|
btcnet:
|
||||||
aliases:
|
aliases:
|
||||||
@ -89,7 +90,7 @@ services:
|
|||||||
exec /usr/local/bin/sdk_relay --config /home/bitcoin/.conf 2>&1 | tee -a /home/bitcoin/.4nk/logs/sdk_relay.log
|
exec /usr/local/bin/sdk_relay --config /home/bitcoin/.conf 2>&1 | tee -a /home/bitcoin/.4nk/logs/sdk_relay.log
|
||||||
'
|
'
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:8090/health"]
|
test: ["CMD", "curl", "-f", "http://localhost:8091/health"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
|
73
docs/ANALYSE.md
Normal file
73
docs/ANALYSE.md
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
## Analyse détaillée
|
||||||
|
|
||||||
|
### Périmètre
|
||||||
|
|
||||||
|
Analyse du nœud d’orchestration `lecoffre_node` et de son `docker-compose.yml` (services, images, ports, volumes, dépendances inter‑services).
|
||||||
|
|
||||||
|
### Stack et orchestration
|
||||||
|
|
||||||
|
- **Compose**: `version: "3.9"`
|
||||||
|
- **Services**: `tor`, `bitcoin`, `blindbit`, `sdk_relay`, `lecoffre-back` (ext), `lecoffre-front` (ext), `ihm_client` (ext), `sdk_signer`, `sdk_storage`, `watchtower`.
|
||||||
|
- **Réseau**: bridge `4nk_node_btcnet` (subnet 172.20.0.0/16).
|
||||||
|
- **Volumes**:
|
||||||
|
- `4nk_node_bitcoin_data` → `/home/bitcoin/.bitcoin`
|
||||||
|
- `blindbit_data` → `/root/.blindbit-oracle`
|
||||||
|
- `sdk_data` → `/home/bitcoin/.4nk`
|
||||||
|
|
||||||
|
### Ordre de démarrage et dépendances
|
||||||
|
|
||||||
|
- `tor` → `bitcoin` (healthcheck) → `blindbit` (healthcheck) → `sdk_relay` (healthcheck)
|
||||||
|
- Services applicatifs (`lecoffre-back`, `lecoffre-front`, `ihm_client`) démarrent ensuite.
|
||||||
|
- `sdk_signer` et `sdk_storage` sont indépendants du pipeline Bitcoin/Blindbit.
|
||||||
|
|
||||||
|
### Images et tags
|
||||||
|
|
||||||
|
- `tor`: `btcpayserver/tor:0.4.8.10`
|
||||||
|
- `bitcoin`: `git.4nkweb.com/4nk/bitcoin:latest`
|
||||||
|
- `blindbit`: `git.4nkweb.com/4nk/blindbit-oracle:dev`
|
||||||
|
- `sdk_relay`: `git.4nkweb.com/4nk/sdk_relay:dev`
|
||||||
|
- `lecoffre-back`: `git.4nkweb.com/4nk/lecoffre-back-mini:ext`
|
||||||
|
- `lecoffre-front`: `git.4nkweb.com/4nk/lecoffre-front:ext`
|
||||||
|
- `ihm_client`: `git.4nkweb.com/4nk/ihm_client:ext`
|
||||||
|
- `sdk_signer`: `git.4nkweb.com/4nk/sdk_signer:latest`
|
||||||
|
- `sdk_storage`: `git.4nkweb.com/4nk/sdk_storage:latest`
|
||||||
|
- `watchtower`: `containrrr/watchtower`
|
||||||
|
|
||||||
|
### Ports exposés (localhost)
|
||||||
|
|
||||||
|
- `blindbit`: 8000
|
||||||
|
- `sdk_relay`: 8090
|
||||||
|
- `lecoffre-back`: 8080
|
||||||
|
- `lecoffre-front`: 3004→3000 (127.0.0.2)
|
||||||
|
- `ihm_client`: 3003
|
||||||
|
- `sdk_signer`: 3001
|
||||||
|
- `sdk_storage`: 8081
|
||||||
|
|
||||||
|
### Configuration et logs
|
||||||
|
|
||||||
|
- `bitcoin`: monte `./bitcoin/bitcoin.conf` en lecture seule.
|
||||||
|
- `blindbit`: copie `./blindbit/blindbit.toml` vers `$HOME/.blindbit-oracle/blindbit.toml`.
|
||||||
|
- `sdk_relay`: `./relay/sdk_relay.conf` monté en lecture seule; sortie multiplexée vers `/home/bitcoin/.4nk/logs/sdk_relay.log`.
|
||||||
|
|
||||||
|
### Healthchecks
|
||||||
|
|
||||||
|
- `bitcoin`: `bitcoin-cli getblockchaininfo`
|
||||||
|
- `blindbit`: sondage HTTP `GET /tweaks/1`
|
||||||
|
- `sdk_relay`: `GET /health`
|
||||||
|
|
||||||
|
### Risques et incohérences relevés
|
||||||
|
|
||||||
|
- Tags d’images hétérogènes (`latest`, `dev`, `ext`). Préférer une convention unique et traçable.
|
||||||
|
- Contrainte interne: usage recommandé du tag `docker-support-v2` au lieu de `latest`. Harmonisation à planifier.
|
||||||
|
- `sdk_signer` listé alors qu’il n’est pas utilisé sur la machine. Éviter son démarrage par défaut pour réduire l’empreinte.
|
||||||
|
- Exposition multi‑IP (`127.0.0.2` pour `lecoffre-front`). Vérifier la résolution locale et la compatibilité outillage.
|
||||||
|
|
||||||
|
### Actions proposées
|
||||||
|
|
||||||
|
- Normaliser les tags d’images (`dev-test` pour branches de test; `docker-support-v2` pour releases) et documenter la politique.
|
||||||
|
- Paramétrer le démarrage conditionnel de `sdk_signer` (profil/override compose).
|
||||||
|
- Centraliser les variables d’environnement communes dans `.env` et documenter leurs valeurs attendues.
|
||||||
|
- Aligner la rotation des logs et vérifier la capacité des volumes (`sdk_data`, `bitcoin_data`).
|
||||||
|
|
||||||
|
|
||||||
|
|
42
docs/ENV-RESUME.md
Normal file
42
docs/ENV-RESUME.md
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
## Résumé des environnements (plateforme)
|
||||||
|
|
||||||
|
### Contexte fonctionnel
|
||||||
|
|
||||||
|
- **Site principal**: `https://dev4.4nkweb.com/lecoffre`
|
||||||
|
- **Intégration Iframe**: hôte `https://dev4.4nkweb.com`
|
||||||
|
- **Service Signer**: utilisé depuis `https://dev3.4nkweb.com`
|
||||||
|
|
||||||
|
### Cartographie (compose et apps)
|
||||||
|
|
||||||
|
- `lecoffre-front` (Next.js): basePath `/lecoffre`; variables `NEXT_PUBLIC_*` orientées vers `dev4.4nkweb.com` et services backend.
|
||||||
|
- `lecoffre-back-mini` (Express): exposé en interne sur 8080; consommé par le front via `NEXT_PUBLIC_API_URL`.
|
||||||
|
- `sdk_relay`: exposé sur 8090; consommé par les clients qui en ont besoin.
|
||||||
|
- `ihm_client`: exposé sur 3003; intégré/embarqué si nécessaire.
|
||||||
|
- `sdk_signer`: non utilisé localement sur la machine, signer consommé depuis `dev3.4nkweb.com`.
|
||||||
|
|
||||||
|
### Valeurs attendues (synthèse)
|
||||||
|
|
||||||
|
- Front (Next.js):
|
||||||
|
- `NEXT_PUBLIC_FRONT_APP_HOST=dev4.4nkweb.com`
|
||||||
|
- `NEXT_PUBLIC_FRONT_APP_PORT` (selon déploiement; non nécessaire en prod si 443)
|
||||||
|
- `NEXT_PUBLIC_4NK_URL=https://dev4.4nkweb.com`
|
||||||
|
- `NEXT_PUBLIC_4NK_IFRAME_URL=https://dev4.4nkweb.com`
|
||||||
|
- `NEXT_PUBLIC_API_URL` pointant vers l’API (`lecoffre-back-mini`) accessible depuis le navigateur
|
||||||
|
- `NEXT_PUBLIC_BACK_API_*` si utilisés pour construire l’URL back (protocol/host/port/root/version)
|
||||||
|
- `NEXT_PUBLIC_IDNOT_*`, `NEXT_PUBLIC_DOCAPOSTE_API_URL` selon intégrations
|
||||||
|
- `NEXT_PUBLIC_DEFAULT_*` (validator, storages) selon besoins
|
||||||
|
|
||||||
|
- Back (`lecoffre-back-mini`):
|
||||||
|
- Variables DB, clés Stripe/Mail, endpoints externes (non détaillés ici; `.env` validés)
|
||||||
|
|
||||||
|
- Signer (externe):
|
||||||
|
- Ciblage de `dev3.4nkweb.com` côté front/back pour les opérations de signature.
|
||||||
|
|
||||||
|
### Remarques
|
||||||
|
|
||||||
|
- Les fichiers `.env` existants sont validés OK.
|
||||||
|
- S’assurer de la cohérence entre `basePath` `/lecoffre` et les URLs publiques (liens, redirections, assets).
|
||||||
|
- Documenter un `.env.example` à jour dans chaque projet pour reproduire la configuration.
|
||||||
|
|
||||||
|
|
||||||
|
|
8
log/ihm_client.log
Normal file
8
log/ihm_client.log
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2025-09-19T13:07:01
|
||||||
|
2025-09-19T13:07:01 WARN Files in the public directory are served at the root path.
|
||||||
|
2025-09-19T13:07:01 Instead of /public/style/4nk.css, use /style/4nk.css.
|
||||||
|
2025-09-19T13:07:01
|
||||||
|
2025-09-19T13:23:38
|
||||||
|
2025-09-19T13:23:38 WARN Files in the public directory are served at the root path.
|
||||||
|
2025-09-19T13:23:38 Instead of /public/style/4nk.css, use /style/4nk.css.
|
||||||
|
2025-09-19T13:23:38
|
0
log/lecoffre-back.log
Normal file
0
log/lecoffre-back.log
Normal file
24
log/lecoffre-front.log
Normal file
24
log/lecoffre-front.log
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
2025-09-19T13:06:59 targetOrigin is already set
|
||||||
|
2025-09-19T13:06:59 iframeUrl is already set
|
||||||
|
2025-09-19T13:06:59 targetOrigin is already set
|
||||||
|
2025-09-19T13:06:59 iframeUrl is already set
|
||||||
|
2025-09-19T13:06:59 targetOrigin is already set
|
||||||
|
2025-09-19T13:06:59 iframeUrl is already set
|
||||||
|
2025-09-19T13:06:59 targetOrigin is already set
|
||||||
|
2025-09-19T13:06:59 iframeUrl is already set
|
||||||
|
2025-09-19T13:06:59 targetOrigin is already set
|
||||||
|
2025-09-19T13:06:59 iframeUrl is already set
|
||||||
|
2025-09-19T13:06:59 targetOrigin is already set
|
||||||
|
2025-09-19T13:06:59 iframeUrl is already set
|
||||||
|
2025-09-19T13:23:05 targetOrigin is already set
|
||||||
|
2025-09-19T13:23:05 iframeUrl is already set
|
||||||
|
2025-09-19T13:23:11 targetOrigin is already set
|
||||||
|
2025-09-19T13:23:12 iframeUrl is already set
|
||||||
|
2025-09-19T13:23:25 targetOrigin is already set
|
||||||
|
2025-09-19T13:23:25 iframeUrl is already set
|
||||||
|
2025-09-19T13:23:27 targetOrigin is already set
|
||||||
|
2025-09-19T13:23:27 iframeUrl is already set
|
||||||
|
2025-09-19T13:23:36 targetOrigin is already set
|
||||||
|
2025-09-19T13:23:36 iframeUrl is already set
|
||||||
|
2025-09-19T13:23:37 targetOrigin is already set
|
||||||
|
2025-09-19T13:23:37 iframeUrl is already set
|
0
log/sdk_relay.log
Normal file
0
log/sdk_relay.log
Normal file
@ -26,3 +26,7 @@
|
|||||||
- Journaux Nginx (`error.log`) sans erreurs après reload
|
- Journaux Nginx (`error.log`) sans erreurs après reload
|
||||||
- Logs `sdk_relay` présents dans `/home/bitcoin/.4nk/logs/sdk_relay.log`
|
- Logs `sdk_relay` présents dans `/home/bitcoin/.4nk/logs/sdk_relay.log`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user