站点维护

配置与发布下载服务 ​

下载服务默认关闭。安装包、鉴权与真实环境变量准备完成后,按检查结果逐项启用。

准备 GitHub 构建设置 ​

以重构目录作为项目根目录,安装命令 npm ci --include=dev,构建命令 npm run build,静态产物 dist。Node.js 使用项目 .nvmrc 指定的 22 系列。也可以只把重构目录内的文件上传为仓库根目录。

Makers 从 GitHub 自动部署;本项目不需要在浏览器内填写服务器密钥。配置细节见仓库中的 DEPLOYMENT.md 与 .env.example。

配置登录服务 ​

变量用途
NEW_API_ORIGIN固定使用 https://acy7.com
DOC_AUTH_ALLOWED_ORIGINS正式域名 https://ai-doc.6mq.cn;预览域名需明确逐个加入
DOC_AUTH_SECRET至少 32 字节的独立随机密钥,用于加密会话 Cookie
DOC_MIN_BALANCE_USD教程门槛,当前 250,采用严格大于
DOC_SESSION_MAX_AGE_SECONDS会话最长有效期
DOC_BALANCE_CHECK_INTERVAL_MS前端重新核对余额的间隔

不使用通配来源。换 DOC_AUTH_SECRET 会使旧会话失效,安排维护窗口并说明需要重新登录。

准备多线路文件 ​

腾讯云、阿里云与 Cloudflare 各自保留独立的下载域名、签名主密钥与可选备用密钥。对象存储保持私有,只允许对应 CDN 身份或 Worker 访问。不要向客户端下发对象存储凭证。

当前对象路径由服务端固定白名单决定。ChatGPT 产品参数仍为 chatgpt,内部文件路径保留 codex;Claude 为 claude。不要根据显示名称直接批量改对象路径。

每条启用线路都需要对应 manifest 与 checksums,安装包的文件大小、SHA-256、产品、平台和架构必须一致。先校验资源,再打开线路开关。

配置签名参数 ​

变量用途
APP_DOWNLOAD_PUBLIC_SITE_ORIGINhttps://ai-doc.6mq.cn
APP_DOWNLOAD_BALANCE_THRESHOLD_USD250,严格大于
APP_DOWNLOAD_GRANT_DERIVATION_SECRET与登录和 CDN 签名密钥独立的随机密钥
APP_DOWNLOAD_TOKEN_VALIDITY_SECONDS临时签名有效期,默认 1200 秒
APP_DOWNLOAD_TOKEN_BUCKET_SECONDS签发时间桶,默认 300 秒
APP_DOWNLOAD_TOKEN_REFRESH_SKEW_SECONDS刷新余量,默认 120 秒
APP_DOWNLOAD_MANIFEST_CACHE_MS服务端目录缓存,默认 60000 毫秒
TENCENT_DOWNLOAD_BASE_URL腾讯线路 HTTPS 下载域名
ALIYUN_DOWNLOAD_BASE_URL阿里线路 HTTPS 下载域名
CLOUDFLARE_DOWNLOAD_BASE_URLCloudflare Worker 下载域名
CLOUDFLARE_DOWNLOAD_SIGNING_KEY_ID当前签名槽位,默认 p,可选 b
CLOUDFLARE_DOWNLOAD_SIGNING_KEY_PRIMARY与 Worker 主 Secret 对应的 HMAC-SHA256 密钥
CLOUDFLARE_DOWNLOAD_SIGNING_KEY_BACKUP与 Worker 备用 Secret 对应的可选密钥

腾讯默认查询参数 token,阿里默认 auth_key;实际必须与 CDN Type A 鉴权设置一致。Cloudflare 使用 exp、kid、sig 三个参数,签名原文为 GET\n/<object-key>\n<exp>\n<kid>,且有效期不得超过 3600 秒。CLOUDFLARE_DOWNLOAD_SIGNING_KEY_ID 默认为 p,切换为 b 前必须在两端配置对应备用密钥。所有密钥只存在服务端配置中。

逐项启用并验收 ​

初始 APP_DOWNLOADS_ENABLED、TENCENT_DOWNLOAD_ENABLED、ALIYUN_DOWNLOAD_ENABLED、CLOUDFLARE_DOWNLOAD_ENABLED 都为 false。准备好一条线路后启用该线路与总开关,再按合成验证确认。其他线路独立验证后再开启。Cloudflare 自动同步尚未打开时,保持该线路开关为 false。

检查匿名与余额边界拦截、正确签名 GET、HEAD、Range、错误签名、过期签名、缺失 Referer、不同参数组合,以及对象存储源站不能直接公开下载。客户端文件校验值必须来自同一次授权快照。

回退与故障处理 ​

单条线路故障时关闭对应开关,让另一条通过验证的线路继续工作。整体异常时关闭总开关,页面会进入维护状态,登录和公开文档仍可使用。

回退必须保留密钥与当前资源的一致性。不要为了恢复按钮而临时取消余额验证、开放源站或让浏览器自行拼接签名。

日志与敏感信息 ​

记录脱敏的请求 ID、结果码、耗时和线路即可。不得记录密码、两步验证码、Cookie、完整签名 URL 或对象存储密钥。排障报告先检查脱敏再分享。

阅读中遇到问题?联系支持
AI 助手