feat: exposition Traefik + provisioning auth (v0.21.0)
Backend exposé via Traefik+TLS (réseau traefik-public externe, labels, CHLOVA_DOMAIN) — surface unique. Script provision-auth (hash scrypt + TOTP otpauth + JWT). .env.example section API/UI. security.md : surface exposée Phase 4. Compose revalidé. Palier de risque : privilégié (exposition réseau) — non déployé ; auth requise pour activer l'API. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -42,5 +42,17 @@ CHLOVA_DB_PATH=./data/chlova.db # SQLite : table assets (need-review, Phase
|
||||
# workflows-n8n/chlova-alerts.v1.0.0.json). Vide = alertes log-only (fail-safe).
|
||||
# Peut contenir un token de chemin → secret, jamais commité.
|
||||
ALERT_WEBHOOK_URL= # ex. http://n8n:5678/webhook/chlova-alert
|
||||
|
||||
# ── API/UI (Phase 4) — surface exposée, login fort ─────────────────────
|
||||
# L'API/UI n'est ACTIVE que si les 4 valeurs ci-dessous sont présentes.
|
||||
# Générer hash + secrets : `npm run provision-auth -- <user> <password>`.
|
||||
CHLOVA_ADMIN_USER=
|
||||
CHLOVA_ADMIN_PASSWORD_HASH= # SECRET — hash scrypt
|
||||
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)
|
||||
# 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.
|
||||
# CHLOVA_HTTP_PORT=8080
|
||||
|
||||
Reference in New Issue
Block a user