Skip to content

配置

配置分为 服务端环境变量(密钥、速率限制、翻译)与 浏览器 localStorage(栈、UI 偏好、扫描缓存)。

服务端环境

.env.example 复制为 .env。Express 进程通过 dotenv 读取密钥。

变量 默认值 说明
PORT 3001 HTTP 监听端口
SCAN_DAYS 60 源回溯窗口
API_SECRET 可选共享密钥;设置后除 health 外 /api/*X-Api-Key 或 Bearer
API_SECRET_PREVIOUS 轮换期间仍接受的旧密钥(可选;见 SECRETS.md)
VITE_API_KEY 客户端构建时密钥(单租户 UI 与 API_SECRET 相同)
NVD_API_KEY NVD 密钥(详见 GET /api/health?detailed=truefeeds.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_ROLEDATABASE_URLREDIS_URLJOB_QUEUE_ENABLEDWORKER_CONCURRENCYJOB_RESULT_TTL_SECAIRGAPPEDK8S_*METRICS_*

数据、缓存与多租户

变量 默认值 说明
DATABASE_URL PostgreSQL:扫描历史、租户、已保存技术栈
DATA_DIR ./data 服务端数据目录(Docker:/app/data
REDIS_URL 跨实例共享响应缓存;worker 运行时还启用 BullMQ 扫描任务
JOB_QUEUE_ENABLED REDIS_URL 启用 设为 false 则 Redis 仅作缓存(无队列)
WORKER_CONCURRENCY 1 每个 worker 进程的并行扫描任务数
JOB_RESULT_TTL_SEC 3600 已完成任务结果 payload 的 Redis TTL
CACHE_MAX_ENTRIES 2000 未设置 Redis 时的内存缓存上限

使用 Postgres 时在 /api/v1/* 上发送 X-Tenant-Id — 见 自托管租户

服务端通知环境

监视发现新 CVE 时的可选出站告警(见 告警)。仍支持旧版 Slack webhook 变量。

变量 说明
ALERT_WEBHOOK_URL / ALERT_WEBHOOK_URL_FILE 旧版 Slack 兼容 webhook
ALERT_MIN_SEVERITY 旧版 webhook 最低严重程度
ALERT_WEBHOOK_FORMAT slackgeneric JSON
NOTIFICATION_MIN_SEVERITY 全局最低严重程度(默认 ALERT_MIN_SEVERITYHIGH
NOTIFICATION_SLACK_MIN_SEVERITY Slack 专用覆盖(回退到全局)
NOTIFICATION_DISCORD_MIN_SEVERITY Discord 专用覆盖
NOTIFICATION_TEAMS_MIN_SEVERITY Teams 专用覆盖
NOTIFICATION_TELEGRAM_MIN_SEVERITY Telegram 专用覆盖
NOTIFICATION_EMAIL_MIN_SEVERITY Email 专用覆盖
NOTIFICATION_WEBHOOK_MIN_SEVERITY 通用 webhook 覆盖
NOTIFICATION_DEDUP_MS 每通道抑制重复推送(默认 15 分钟)
NOTIFICATION_RATE_LIMIT_PER_HOUR 全局每通道每小时成功发送上限(0 = 不限)
NOTIFICATION_SLACK_RATE_LIMIT_PER_HOUR Slack 每小时上限(回退到全局)
NOTIFICATION_DISCORD_RATE_LIMIT_PER_HOUR Discord 每小时上限
NOTIFICATION_TEAMS_RATE_LIMIT_PER_HOUR Teams 每小时上限
NOTIFICATION_TELEGRAM_RATE_LIMIT_PER_HOUR Telegram 每小时上限
NOTIFICATION_EMAIL_RATE_LIMIT_PER_HOUR Email 每小时上限
NOTIFICATION_WEBHOOK_RATE_LIMIT_PER_HOUR 通用 webhook 每小时上限
NOTIFICATION_SLACK_WEBHOOK_URL 专用 Slack webhook
NOTIFICATION_DISCORD_WEBHOOK_URL Discord webhook URL
NOTIFICATION_TEAMS_WEBHOOK_URL Microsoft Teams Incoming Webhook (MessageCard)
NOTIFICATION_TELEGRAM_BOT_TOKEN Telegram bot token
NOTIFICATION_TELEGRAM_CHAT_ID Telegram chat id
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 通用 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 参考

下一章:架构