feat: UI vue Review + backend sert le SPA, fin Phase 4 v1 (v0.24.0)

Vue Review (liste assets, approuver/refuser + confirm, refresh, 401→logout).
Backend sert le SPA same-origin (@fastify/static + fallback) si CHLOVA_WEB_ROOT.
Dockerfile multi-stage build web+API (contexte racine), image embarque /app/web.
Compose contexte .., image chlova/backend:0.2.0. 65 tests, 0 vuln, compose OK.

Palier de risque : privilégié (surface exposée complète) — non déployée ;
auth + CHLOVA_PHASE requis pour activer.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kantin-Petit
2026-06-23 05:56:01 +02:00
parent aee86b811e
commit e6edf1a8bc
9 changed files with 324 additions and 14 deletions
+2
View File
@@ -52,6 +52,8 @@ CHLOVA_TOTP_SECRET= # SECRET — secret TOTP (2FA)
CHLOVA_JWT_SECRET= # SECRET — clé de signature JWT
# Origine CORS autorisée en DEV (Vite). En prod le SPA est servi same-origin.
CHLOVA_WEB_ORIGIN= # ex. http://localhost:5173 (dev uniquement)
# Racine du SPA buildé servi same-origin. Défaut image = /app/web. Vide = pas de SPA.
CHLOVA_WEB_ROOT= # laisser vide en conteneur (défaut /app/web)
# Domaine public derrière Traefik (label compose).
CHLOVA_DOMAIN=chlova.example.com
# Phase 1 : aucun port publié (Telegram en long-polling). Renseigné en P3+ si API/UI.