Skip to content

Configuration

La configuration se divise en variables d'environnement serveur (secrets, limites, traduction) et localStorage navigateur (pile, préférences UI, scan en cache).

Environnement serveur

Copiez .env.example vers .env. Les clés sont lues par dotenv sur le processus Express uniquement.

Variable Défaut Description
PORT 3001 Port d'écoute HTTP
SCAN_DAYS 60 Fenêtre look-back des flux
API_SECRET Secret partagé optionnel ; si défini, X-Api-Key ou Bearer sur /api/* sauf health
API_SECRET_PREVIOUS Ancien secret accepté pendant la rotation (optionnel ; SECRETS.md)
VITE_API_KEY Clé build-time UI (même valeur que API_SECRET en single-tenant)
NVD_API_KEY Clé limite NVD (GET /api/health?detailed=truefeeds.nvd)
GITHUB_TOKEN GitHub advisory — PAT classique public_repo
OSV_TIMEOUT_MS 15000 Délai OSV (ms) ; retry sur 429/503
GITHUB_MAX_PAGES 3 Profondeur prefetch advisory
TRANSLATE_ENABLED true Interrupteur maître traduction
TRANSLATE_MAX_ITEMS 50 Plafond traduction par scan
TRANSLATE_BATCH_MAX 40 Par requête /api/translate
TRANSLATE_CONCURRENCY 3 Workers traduction parallèles
MYMEMORY_EMAIL Identité MyMemory
LIBRETRANSLATE_URL LibreTranslate optionnel
OLLAMA_URL Endpoint Ollama local
OLLAMA_MODEL llama3.2 Modèle Ollama
RATE_LIMIT_SCAN_PER_MIN 12 Max requêtes POST /scan par IP et minute
RATE_LIMIT_WATCH_PER_MIN 120 Max requêtes POST /watch par IP et minute
SCAN_TIMEOUT_MS Abandon des requêtes scan/veille longues (voir .env.example)

Variables ops supplémentaires

Voir Configuration (EN)API_ROLE, DATABASE_URL, REDIS_URL, JOB_QUEUE_ENABLED, WORKER_CONCURRENCY, JOB_RESULT_TTL_SEC, AIRGAPPED, K8S_*, METRICS_*.

Données, cache et multi-tenant

Variable Défaut Description
DATABASE_URL PostgreSQL pour historique scans, tenants, stacks enregistrées
DATA_DIR ./data Répertoire de données serveur (Docker : /app/data)
REDIS_URL Cache de réponse partagé entre instances ; active aussi les jobs BullMQ quand un worker tourne
JOB_QUEUE_ENABLED activé avec REDIS_URL false pour Redis cache uniquement (sans file)
WORKER_CONCURRENCY 1 Jobs de scan parallèles par processus worker
JOB_RESULT_TTL_SEC 3600 TTL Redis pour les payloads de résultats terminés
CACHE_MAX_ENTRIES 2000 Plafond cache mémoire quand Redis est absent

Envoyez X-Tenant-Id sur /api/v1/* avec Postgres — voir Tenants self-hosted.

Environnement de notification serveur

Alertes sortantes optionnelles lorsque la veille détecte de nouveaux CVE (voir Alertes). Les variables webhook Slack legacy restent prises en charge.

Variable Description
ALERT_WEBHOOK_URL / ALERT_WEBHOOK_URL_FILE Webhook compatible Slack (legacy)
ALERT_MIN_SEVERITY Sévérité minimale pour webhook legacy
ALERT_WEBHOOK_FORMAT JSON slack ou generic
NOTIFICATION_MIN_SEVERITY Sévérité min globale (défaut ALERT_MIN_SEVERITY ou HIGH)
NOTIFICATION_SLACK_MIN_SEVERITY Override Slack (repli sur global)
NOTIFICATION_DISCORD_MIN_SEVERITY Override Discord
NOTIFICATION_TEAMS_MIN_SEVERITY Override Teams
NOTIFICATION_TELEGRAM_MIN_SEVERITY Override Telegram
NOTIFICATION_EMAIL_MIN_SEVERITY Override Email
NOTIFICATION_WEBHOOK_MIN_SEVERITY Override webhook générique
NOTIFICATION_DEDUP_MS Suppression des posts dupliqués par canal (défaut 15 min)
NOTIFICATION_RATE_LIMIT_PER_HOUR Plafond global d'envois réussis/heure/canal (0 = illimité)
NOTIFICATION_SLACK_RATE_LIMIT_PER_HOUR Plafond Slack/heure (repli sur global)
NOTIFICATION_DISCORD_RATE_LIMIT_PER_HOUR Plafond Discord/heure
NOTIFICATION_TEAMS_RATE_LIMIT_PER_HOUR Plafond Teams/heure
NOTIFICATION_TELEGRAM_RATE_LIMIT_PER_HOUR Plafond Telegram/heure
NOTIFICATION_EMAIL_RATE_LIMIT_PER_HOUR Plafond Email/heure
NOTIFICATION_WEBHOOK_RATE_LIMIT_PER_HOUR Plafond webhook/heure
NOTIFICATION_SLACK_WEBHOOK_URL Webhook Slack dédié
NOTIFICATION_DISCORD_WEBHOOK_URL URL webhook Discord
NOTIFICATION_TEAMS_WEBHOOK_URL Microsoft Teams Incoming Webhook (MessageCard)
NOTIFICATION_TELEGRAM_BOT_TOKEN Token bot Telegram
NOTIFICATION_TELEGRAM_CHAT_ID Chat id Telegram
SIEM_WEBHOOK_URL / SIEM_FORMAT SIEM JSON/CEF webhook
OPA_URL / OPA_ENFORCE OPA sidecar + watch gate
JIRA_* / SERVICENOW_* ITSM CRITICAL+KEV tickets
NOTIFICATION_WEBHOOK_URL Webhook JSON générique (enveloppe compatible Teams)
NOTIFICATION_SMTP_HOST Hôte SMTP pour alertes email
NOTIFICATION_SMTP_PORT Port SMTP (défaut 587)
NOTIFICATION_SMTP_USER / NOTIFICATION_SMTP_PASS Auth SMTP (optionnel)
NOTIFICATION_SMTP_FROM / NOTIFICATION_SMTP_TO Expéditeur et destinataire email

localStorage client

Clé Rôle
cve-radar:stack Noms d'outils surveillés
cve-radar:settings Alertes, veille, traduction, intervalles
cve-radar:setup-complete Assistant initial terminé (v1.1.0+)
cve-radar:theme light / dark / system
cve-radar:locale Code langue UI
cve-radar:font-scale Échelle texte 85–140
cve-radar:sidebar-collapsed Mode SubNav étroit
cve-radar:last-scan vuln + summary en cache (scanCache.ts, clé pile)
cve-radar:known-ids IDs CVE pour dédup veille
cve-radar:sources-updated-at Horodatages par source
cve-radar:source-config Bascules sources intégrées et flux custom

Ne commitez jamais .env avec de vrais tokens.

URLs de découverte API

Serveur actif : les intégrateurs lisent limites et contrats sans parcourir le code :

URL Rôle
GET /api/health Liveness et flags env
GET /api/capabilities Limites numériques et feature flags
GET /api/sources Catalogue de flux intégrés
GET /api/openapi.json Document OpenAPI 3.1

Équivalents versionnés : /api/v1/health, etc. Voir Référence API.

Suite : Architecture