配置¶
配置分为 服务端环境变量(密钥、速率限制、翻译)与 浏览器 localStorage(栈、UI 偏好、扫描缓存)。
服务端环境¶
将 .env.example 复制为 .env。Express 进程通过 dotenv 读取密钥。
| 变量 | 默认值 | 说明 |
|---|---|---|
PORT |
3001 |
HTTP 监听端口 |
SCAN_DAYS |
60 |
源回溯窗口 |
API_SECRET |
— | 可选共享密钥;设置后除 health 外 /api/* 需 X-Api-Key 或 Bearer |
VITE_API_KEY |
— | 客户端构建时密钥(单租户 UI 与 API_SECRET 相同) |
NVD_API_KEY |
— | NVD 密钥(详见 GET /api/health?detailed=true → feeds.nvd) |
GITHUB_TOKEN |
— | GitHub advisory — 经典 PAT,建议 public_repo scope |
OSV_TIMEOUT_MS |
15000 |
OSV 查询超时(毫秒);429/503 时重试 |
GITHUB_MAX_PAGES |
3 |
Advisory 预取深度 |
TRANSLATE_ENABLED |
true |
翻译总开关 |
TRANSLATE_MAX_ITEMS |
50 |
每次扫描翻译上限 |
TRANSLATE_BATCH_MAX |
40 |
每次 /api/translate 请求 |
TRANSLATE_CONCURRENCY |
3 |
并行翻译 worker |
MYMEMORY_EMAIL |
— | MyMemory 身份 |
LIBRETRANSLATE_URL |
— | 可选 LibreTranslate |
OLLAMA_URL |
— | 本地 Ollama 端点 |
OLLAMA_MODEL |
llama3.2 |
Ollama 模型 |
RATE_LIMIT_SCAN_PER_MIN |
12 |
每 IP 每分钟最多 POST /scan 请求数 |
RATE_LIMIT_WATCH_PER_MIN |
120 |
每 IP 每分钟最多 POST /watch 请求数 |
SCAN_TIMEOUT_MS |
— | 中止长时间 scan/watch 请求(见 .env.example) |
运维变量¶
完整表格见 Configuration(英文):API_ROLE、DATABASE_URL、REDIS_URL、AIRGAPPED、K8S_*、METRICS_*。
服务端通知环境¶
监视发现新 CVE 时的可选出站告警(见 告警)。仍支持旧版 Slack webhook 变量。
| 变量 | 说明 |
|---|---|
ALERT_WEBHOOK_URL / ALERT_WEBHOOK_URL_FILE |
旧版 Slack 兼容 webhook |
ALERT_MIN_SEVERITY |
旧版 webhook 最低严重程度 |
ALERT_WEBHOOK_FORMAT |
slack 或 generic JSON |
NOTIFICATION_MIN_SEVERITY |
全局最低严重程度(默认 ALERT_MIN_SEVERITY 或 HIGH) |
NOTIFICATION_DEDUP_MS |
每通道抑制重复推送(默认 15 分钟) |
NOTIFICATION_SLACK_WEBHOOK_URL |
专用 Slack webhook |
NOTIFICATION_DISCORD_WEBHOOK_URL |
Discord webhook URL |
NOTIFICATION_TELEGRAM_BOT_TOKEN |
Telegram bot token |
NOTIFICATION_TELEGRAM_CHAT_ID |
Telegram chat id |
NOTIFICATION_WEBHOOK_URL |
通用 JSON webhook(Teams 兼容信封) |
NOTIFICATION_SMTP_HOST |
邮件告警 SMTP 主机 |
NOTIFICATION_SMTP_PORT |
SMTP 端口(默认 587) |
NOTIFICATION_SMTP_USER / NOTIFICATION_SMTP_PASS |
SMTP 认证(可选) |
NOTIFICATION_SMTP_FROM / NOTIFICATION_SMTP_TO |
发件人与收件人 |
客户端 localStorage¶
| 键 | 用途 |
|---|---|
cve-radar:stack |
监控的工具名 |
cve-radar:settings |
告警、监控、翻译、间隔 |
cve-radar:setup-complete |
首次向导已完成(v1.1.0+) |
cve-radar:theme |
light / dark / system |
cve-radar:locale |
UI 语言代码 |
cve-radar:font-scale |
85–140 文本缩放 |
cve-radar:sidebar-collapsed |
SubNav 窄模式 |
cve-radar:last-scan |
缓存的 vuln + summary(scanCache.ts,按栈键) |
cve-radar:known-ids |
watch 去重用 CVE id |
cve-radar:sources-updated-at |
各源时间戳 |
cve-radar:source-config |
内置与自定义 feed 开关 |
切勿提交含真实 token 的 .env。
API 发现 URL¶
服务运行时,集成方可直接读取限制与契约:
| URL | 用途 |
|---|---|
GET /api/health |
存活与环境标志 |
GET /api/capabilities |
数值限制与功能标志 |
GET /api/sources |
内置源目录 |
GET /api/openapi.json |
OpenAPI 3.1 文档 |
版本化路径:/api/v1/health 等。见 API 参考。
下一章:架构