Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/caomeiyouren_momei.json
T

1 line
451 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"repo": "caomeiyouren/momei", "files": {"docs/design/governance/opencode-codespaces-provider-integration-plan.md": {"9a797673716991b7e3b4b1192ad186ca39e64a6b": {"t": 1785595243.6923313, "n": 6306, "h": "69906f4eb51e367c", "c": "# OpenCode + GitHub Codespaces 提供商收敛集成方案(opencode-go / deepseek / xiaomi)\n\n## 1. 概述 (Overview)\n\n本文档用于把“Hermes + OpenCode + GitHub Codespaces 集成方案”落地为可执行的仓库改动清单,并明确当前模型提供商收敛策略:\n\n- 保留 `opencode-go`、`deepseek`、`xiaomi` 三类模型提供商。\n- 以 `.opencode/configs/` 作为 OpenCode 模型配置的事实源。\n- `opencode.json` 仅作为当前激活配置的派生结果。\n\n该方案聚焦“配置与流程收敛”,不直接包含功能代码实现。\n\n## 2. 准入结论 (Intake Decision)\n\n- 结论:允许作为专项设计文档先落盘,执行时按独立基础设施任务推进。\n- 原因:当前 `todo.md` 主线是缓存架构与治理深化,本事项属于开发工具链集成与运行环境治理,不宜静默插入当前功能主线。\n- 执行建议:以“专项任务”方式推进,先完成最小可运行闭环,再逐步收敛策略。\n\n## 3. 现状基线 (Current Baseline)\n\n当前仓库已具备以下基础:\n\n1. OpenCode 主配置已存在:[opencode.json](../../../opencode.json)\n2. 多个 OpenCode 预设已存在:[.opencode/configs/](../../../.opencode/configs)\n3. 模型切换脚本已存在:[scripts/setup/switch-models.mjs](../../../scripts/setup/switch-models.mjs)\n4. AI 工作树软链接脚本已存在:[scripts/setup/setup-ai.mjs](../../../scripts/setup/setup-ai.mjs)\n5. Codespaces 容器配置存在但位于根目录:[devcontainer.json](../../../devcontainer.json)\n\n已识别差异:\n\n1. 容器镜像版本为 Node 18,而项目 `engines.node` 要求 `>=20`。\n2. `opencode.opencode-go.json` 仍包含 `glm`、`qwen` 等非目标模型,与当前收敛目标不一致。\n3. 尚无“提供商白名单”层面的显式治理规则,切换脚本仍可面向全部预设。\n\n### 3.1 Node 24 镜像可用性核实\n\n核实结论:Node 24 的官方 devcontainer 镜像标签可用,后续可按 Node 24 作为容器默认目标版本。\n\n已核实的公开标签(MCR):\n\n1. `mcr.microsoft.com/devcontainers/typescript-node:24-bookworm`\n2. `mcr.microsoft.com/devcontainers/typescript-node:24`\n3. `mcr.microsoft.com/devcontainers/javascript-node:24-bookworm`\n\n核实方式:通过带超时的 HTTP 请求抓取 MCR 标签列表(`TimeoutSec=15`),避免网络异常导致探测流程长时间阻塞。\n\n## 4. 目标状态 (Target State)\n\n### 4.1 提供商策略\n\n运行链路只允许以下两类提供商:\n\n1. `opencode-go/*`\n2. `deepseek/*`\n3. `xiaomi/*`\n\n### 4.2 执行原则\n\n1. 复用仓库内现有 OpenCode 配置,不在 Codespace 内维护平行的私有配置源。\n2. `.opencode/configs/` 是唯一预设事实源;`opencode.json` 由切换脚本写入。\n3. 统一通过仓库脚本完成模型切换与治理,不依赖人工手改 JSON。\n4. 以最小改动优先,先完成可运行,再做收紧。\n\n### 4.3 Codespaces 手动设置 vs OpenCode 配置文件\n\n当前有两条可行路径:\n\n1. 在 GitHub Codespaces 中手动执行 `/connect`、`/model`,逐个设置提供商与模型。\n2. 在仓库配置(`.opencode/configs/*.json` + `opencode.json`)中声明提供商与模型,通过脚本切换激活态。\n\n对比结论如下:\n\n| 维度 | Codespaces 手动设置 | OpenCode 配置文件声明 |\n| :--- | :--- | :--- |\n| 可复现性 | 低:依赖个人操作顺序与习惯 | 高:配置与脚本可审计、可复用 |\n| 团队一致性 | 低:多人环境容易漂移 | 高:同一分支默认一致 |\n| 治理成本 | 高:需要反复口头同步 | 低:规则集中在仓库文件 |\n| 首次上手速度 | 中:单人试用快 | 中:首次需要理解预设与切换脚本 |\n| 临时调试灵活性 | 高:可即时切换 | 中:推荐通过脚本切换而非手改 |\n\n建议:本项目采用“配置文件优先、手动设置兜底”的策略。\n\n1. 日常开发与协作:以 `.opencode/configs/` 为事实源。\n2. 紧急排障或临时试验:允许在 Codespace 手动切换,但任务结束后必须回到仓库预设并记录原因。\n\n### 4.4 OpenCode Go 为内置提供商时,写入配置会发生什么\n\nOpenCode Go 是 OpenCode 内置 provider。将模型写入配置后,行为是“显式选择内置 provider”,不是“新增自定义 provider”。\n\n1. 当模型写为 `opencode-go/<model-id>`(例如 `opencode-go/deepseek-v4-pro`)时,OpenCode 会按内置 OpenCode Go 路由请求。\n2. 这不会破坏 `/connect` 流程;`/connect` 仍可用于交互式录入凭据。\n3. 在自动化场景(Codespaces / CI)中,推荐通过配置映射环境变量到 `provider.options.apiKey`,避免依赖交互式录入。\n\n补充说明:官方文档明确支持 `{env:VARIABLE}` 通用变量替换机制,但未强制规定 OpenCode Go 必须使用某个固定环境变量名。因此 `OPENCODE_GO_API_KEY` 可作为本仓库约定命名,而非官方硬编码键名。\n\n## 5. 具体改动方案 (File-level Change Plan)\n\n### 5.1 P0:必须改动\n\n| 文件 | 改动类型 | 具体改动 |\n| :--- | :--- | :--- |\n| [devcontainer.json](../../../devcontainer.json) | Update | 基础镜像升级到 Node 24(推荐 `mcr.microsoft.com/devcontainers/typescript-node:24-bookworm`);`postCreateCommand` 中保留 `pnpm install`,并新增 OpenCode 可用性检查(安装或版本检测)。 |\n| [opencode.json](../../../opencode.json) | Update | 默认模型收敛到三提供商之一(`opencode-go/deepseek-v4-pro`、`deepseek/deepseek-v4-pro`、`xiaomi/mimo-v2.5-pro`);`instructions` 继续指向 `AGENTS.md`。 |\n| [.opencode/configs/opencode.opencode-go.json](../../../.opencode/configs/opencode.opencode-go.json) | Update | 所有 agent 模型统一为 `opencode-go/deepseek-v4-pro` 或 `opencode-go/deepseek-v4-flash`,移除 `opencode-go/glm-*` 与 `opencode-go/qwen*`。 |\n| [.opencode/configs/opencode.deepseek.json](../../../.opencode/configs/opencode.deepseek.json) | Verify | 校验所有 agent 仅使用 `deepseek/*`,保持与目标策略一致。 |\n| [.opencode/configs/opencode.xiaomi.json](../../../.opencode/configs/opencode.xiaomi.json) | Verify | 保持 xiaomi 预设可用,并校验模型字段只落在 `xiaomi/*`。 |\n| [scripts/setup/switch-models.mjs](../../../scripts/setup/switch-models.mjs) | Update | 增加 provider allowlist 校验(仅允许 opencode-go / deepseek / xiaomi);保留 `--list`、`--current`。 |\n\n### 5.2 P1:建议改动\n\n| 文件 | 改动类型 | 具体改动 |\n| :--- | :--- | :--- |\n| [scripts/README.md](../../../scripts/README.md) | Update | 在 `setup` 章节新增“模型提供商白名单”说明与标准切换命令。 |\n| [docs/guide/ai-development.md](../../../docs/guide/ai-development.md) | Update | 增补 Codespaces + OpenCode 最小使用流程,强调“.opencode/configs 为事实源,opencode.json 为激活态”。 |\n\n## 6. 预设与映射建议 (Preset Mapping)\n\n### 6.1 推荐保留预设\n\n1. `opencode-go`(执行主力)\n2. `deepseek`(降级与兜底)\n3. `xiaomi`(保留为专项任务备用预设)\n\n### 6.2 推荐默认预设\n\n建议将默认预设设为 `opencode-go`,原因:\n\n1. 与“供应商策略”一致。\n2. 能保持与现有 `opencode-go/deepseek-v4-pro` 配置连续性。\n3. 当 `opencode-go` 不可用时,可快速切换到 `deepseek` 或 `xiaomi` 预设。\n\n## 7. Secrets 与环境变量方案 (Secrets & Env)\n\nGitHub Codespaces Secrets 最小集合:\n\n1. `OPENCODE_GO_API_KEY`(推荐命名;用于 OpenCode Go)\n2. `DEEPSEEK_API_KEY`(若直连 DeepSeek)\n3. `OPENROUTER_API_KEY`(若通过 OpenRouter 调度)\n4. `GITHUB_TOKEN` 或等效 PAT(用于仓库操作与 API 调用)\n\n约束:\n\n1. 不在仓库内提交任何明文密钥。\n2. 不在文档中写入真实密钥示例。\n\n推荐配置写法(示意):\n\n```json\n{\n\t\"provider\": {\n\t\t\"opencode-go\": {\n\t\t\t\"options\": {\n\t\t\t\t\"apiKey\": \"{env:OPENCODE_GO_API_KEY}\",\n\t\t\t\t\"timeout\": 300000\n\t\t\t}\n\t\t}\n\t}\n}\n```\n\n说明:`timeout` 可按任务时延需求调整;抓取或长上下文任务建议提高超时,交互式任务保持默认即可。\n\n## 8. Hermes 编排改动点 (Hermes Orchestration Plan)\n\nHermes Skill(`codespace-coding`)按以下步骤执行:\n\n1. 校验 Codespace 状态(存在且运行)\n2. 进入工作目录并执行预设切换命令\n3. 调用 OpenCode 非交互任务\n4. 拉取 diff 与关键文件内容\n5. 回传结构化结果(改动文件、验证结果、失败原因)\n\n建议命令模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs opencode-go\n```\n\n降级模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs deepseek\n```\n\n备用模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs xiaomi\n```\n\n## 9. 验证矩阵 (Validation Matrix)\n\n| 层级 | 验证项 | 验证方式 |\n| :--- | :--- | :--- |\n| V0 | 变更范围正确 | 对照本方案中的文件级清单 |\n| V1 | 配置语法有效 | JSON 语法检查 + `pnpm typecheck` |\n| V2 | 切换脚本有效 | `switch-models --list` / `--current` / 切换往返测试 |\n| V2 | Codespace 可执行 | 远程执行 `opencode -p` 最小任务 |\n| RG | 审计结论 | Review Gate 输出 Pass / Reject |\n\n## 10. 回滚策略 (Rollback)\n\n若 provider 收敛导致任务失败率明显上升:\n\n1. 先回滚 `opencode.json` 默认预设到上一个可用配置。\n2. 保留 `switch-models` allowlist 逻辑,只临时放开单一候选预设做故障排查。\n3. 在专项文档追加“失败样本 + 根因 + 下一步收敛策略”,避免反复横跳。\n\n## 11. 里程碑与交付 (Milestones)\n\n1. M1(配置收敛):完成 P0 文件改动并通过 V1。\n2. M2(执行打通):Hermes -> Codespace -> OpenCode 最小链路通过。\n3. M3(治理收口):文档、脚本说明、审计证据同步完成。\n\n---\n\n关联文档:\n\n- [CLI / MCP 自动化能力扩展设计](./cli-mcp-automation.md)\n- [AI 协作规范](../../standards/ai-collaboration.md)\n- [安全开发规范](../../standards/security.md)\n"}, "29a79ce94bae97872b989adfbad9fca0409f705b": {"t": 1785749519.7037365, "n": 6306, "h": "69906f4eb51e367c", "c": "# OpenCode + GitHub Codespaces 提供商收敛集成方案(opencode-go / deepseek / xiaomi)\n\n## 1. 概述 (Overview)\n\n本文档用于把“Hermes + OpenCode + GitHub Codespaces 集成方案”落地为可执行的仓库改动清单,并明确当前模型提供商收敛策略:\n\n- 保留 `opencode-go`、`deepseek`、`xiaomi` 三类模型提供商。\n- 以 `.opencode/configs/` 作为 OpenCode 模型配置的事实源。\n- `opencode.json` 仅作为当前激活配置的派生结果。\n\n该方案聚焦“配置与流程收敛”,不直接包含功能代码实现。\n\n## 2. 准入结论 (Intake Decision)\n\n- 结论:允许作为专项设计文档先落盘,执行时按独立基础设施任务推进。\n- 原因:当前 `todo.md` 主线是缓存架构与治理深化,本事项属于开发工具链集成与运行环境治理,不宜静默插入当前功能主线。\n- 执行建议:以“专项任务”方式推进,先完成最小可运行闭环,再逐步收敛策略。\n\n## 3. 现状基线 (Current Baseline)\n\n当前仓库已具备以下基础:\n\n1. OpenCode 主配置已存在:[opencode.json](../../../opencode.json)\n2. 多个 OpenCode 预设已存在:[.opencode/configs/](../../../.opencode/configs)\n3. 模型切换脚本已存在:[scripts/setup/switch-models.mjs](../../../scripts/setup/switch-models.mjs)\n4. AI 工作树软链接脚本已存在:[scripts/setup/setup-ai.mjs](../../../scripts/setup/setup-ai.mjs)\n5. Codespaces 容器配置存在但位于根目录:[devcontainer.json](../../../devcontainer.json)\n\n已识别差异:\n\n1. 容器镜像版本为 Node 18,而项目 `engines.node` 要求 `>=20`。\n2. `opencode.opencode-go.json` 仍包含 `glm`、`qwen` 等非目标模型,与当前收敛目标不一致。\n3. 尚无“提供商白名单”层面的显式治理规则,切换脚本仍可面向全部预设。\n\n### 3.1 Node 24 镜像可用性核实\n\n核实结论:Node 24 的官方 devcontainer 镜像标签可用,后续可按 Node 24 作为容器默认目标版本。\n\n已核实的公开标签(MCR):\n\n1. `mcr.microsoft.com/devcontainers/typescript-node:24-bookworm`\n2. `mcr.microsoft.com/devcontainers/typescript-node:24`\n3. `mcr.microsoft.com/devcontainers/javascript-node:24-bookworm`\n\n核实方式:通过带超时的 HTTP 请求抓取 MCR 标签列表(`TimeoutSec=15`),避免网络异常导致探测流程长时间阻塞。\n\n## 4. 目标状态 (Target State)\n\n### 4.1 提供商策略\n\n运行链路只允许以下两类提供商:\n\n1. `opencode-go/*`\n2. `deepseek/*`\n3. `xiaomi/*`\n\n### 4.2 执行原则\n\n1. 复用仓库内现有 OpenCode 配置,不在 Codespace 内维护平行的私有配置源。\n2. `.opencode/configs/` 是唯一预设事实源;`opencode.json` 由切换脚本写入。\n3. 统一通过仓库脚本完成模型切换与治理,不依赖人工手改 JSON。\n4. 以最小改动优先,先完成可运行,再做收紧。\n\n### 4.3 Codespaces 手动设置 vs OpenCode 配置文件\n\n当前有两条可行路径:\n\n1. 在 GitHub Codespaces 中手动执行 `/connect`、`/model`,逐个设置提供商与模型。\n2. 在仓库配置(`.opencode/configs/*.json` + `opencode.json`)中声明提供商与模型,通过脚本切换激活态。\n\n对比结论如下:\n\n| 维度 | Codespaces 手动设置 | OpenCode 配置文件声明 |\n| :--- | :--- | :--- |\n| 可复现性 | 低:依赖个人操作顺序与习惯 | 高:配置与脚本可审计、可复用 |\n| 团队一致性 | 低:多人环境容易漂移 | 高:同一分支默认一致 |\n| 治理成本 | 高:需要反复口头同步 | 低:规则集中在仓库文件 |\n| 首次上手速度 | 中:单人试用快 | 中:首次需要理解预设与切换脚本 |\n| 临时调试灵活性 | 高:可即时切换 | 中:推荐通过脚本切换而非手改 |\n\n建议:本项目采用“配置文件优先、手动设置兜底”的策略。\n\n1. 日常开发与协作:以 `.opencode/configs/` 为事实源。\n2. 紧急排障或临时试验:允许在 Codespace 手动切换,但任务结束后必须回到仓库预设并记录原因。\n\n### 4.4 OpenCode Go 为内置提供商时,写入配置会发生什么\n\nOpenCode Go 是 OpenCode 内置 provider。将模型写入配置后,行为是“显式选择内置 provider”,不是“新增自定义 provider”。\n\n1. 当模型写为 `opencode-go/<model-id>`(例如 `opencode-go/deepseek-v4-pro`)时,OpenCode 会按内置 OpenCode Go 路由请求。\n2. 这不会破坏 `/connect` 流程;`/connect` 仍可用于交互式录入凭据。\n3. 在自动化场景(Codespaces / CI)中,推荐通过配置映射环境变量到 `provider.options.apiKey`,避免依赖交互式录入。\n\n补充说明:官方文档明确支持 `{env:VARIABLE}` 通用变量替换机制,但未强制规定 OpenCode Go 必须使用某个固定环境变量名。因此 `OPENCODE_GO_API_KEY` 可作为本仓库约定命名,而非官方硬编码键名。\n\n## 5. 具体改动方案 (File-level Change Plan)\n\n### 5.1 P0:必须改动\n\n| 文件 | 改动类型 | 具体改动 |\n| :--- | :--- | :--- |\n| [devcontainer.json](../../../devcontainer.json) | Update | 基础镜像升级到 Node 24(推荐 `mcr.microsoft.com/devcontainers/typescript-node:24-bookworm`);`postCreateCommand` 中保留 `pnpm install`,并新增 OpenCode 可用性检查(安装或版本检测)。 |\n| [opencode.json](../../../opencode.json) | Update | 默认模型收敛到三提供商之一(`opencode-go/deepseek-v4-pro`、`deepseek/deepseek-v4-pro`、`xiaomi/mimo-v2.5-pro`);`instructions` 继续指向 `AGENTS.md`。 |\n| [.opencode/configs/opencode.opencode-go.json](../../../.opencode/configs/opencode.opencode-go.json) | Update | 所有 agent 模型统一为 `opencode-go/deepseek-v4-pro` 或 `opencode-go/deepseek-v4-flash`,移除 `opencode-go/glm-*` 与 `opencode-go/qwen*`。 |\n| [.opencode/configs/opencode.deepseek.json](../../../.opencode/configs/opencode.deepseek.json) | Verify | 校验所有 agent 仅使用 `deepseek/*`,保持与目标策略一致。 |\n| [.opencode/configs/opencode.xiaomi.json](../../../.opencode/configs/opencode.xiaomi.json) | Verify | 保持 xiaomi 预设可用,并校验模型字段只落在 `xiaomi/*`。 |\n| [scripts/setup/switch-models.mjs](../../../scripts/setup/switch-models.mjs) | Update | 增加 provider allowlist 校验(仅允许 opencode-go / deepseek / xiaomi);保留 `--list`、`--current`。 |\n\n### 5.2 P1:建议改动\n\n| 文件 | 改动类型 | 具体改动 |\n| :--- | :--- | :--- |\n| [scripts/README.md](../../../scripts/README.md) | Update | 在 `setup` 章节新增“模型提供商白名单”说明与标准切换命令。 |\n| [docs/guide/ai-development.md](../../../docs/guide/ai-development.md) | Update | 增补 Codespaces + OpenCode 最小使用流程,强调“.opencode/configs 为事实源,opencode.json 为激活态”。 |\n\n## 6. 预设与映射建议 (Preset Mapping)\n\n### 6.1 推荐保留预设\n\n1. `opencode-go`(执行主力)\n2. `deepseek`(降级与兜底)\n3. `xiaomi`(保留为专项任务备用预设)\n\n### 6.2 推荐默认预设\n\n建议将默认预设设为 `opencode-go`,原因:\n\n1. 与“供应商策略”一致。\n2. 能保持与现有 `opencode-go/deepseek-v4-pro` 配置连续性。\n3. 当 `opencode-go` 不可用时,可快速切换到 `deepseek` 或 `xiaomi` 预设。\n\n## 7. Secrets 与环境变量方案 (Secrets & Env)\n\nGitHub Codespaces Secrets 最小集合:\n\n1. `OPENCODE_GO_API_KEY`(推荐命名;用于 OpenCode Go)\n2. `DEEPSEEK_API_KEY`(若直连 DeepSeek)\n3. `OPENROUTER_API_KEY`(若通过 OpenRouter 调度)\n4. `GITHUB_TOKEN` 或等效 PAT(用于仓库操作与 API 调用)\n\n约束:\n\n1. 不在仓库内提交任何明文密钥。\n2. 不在文档中写入真实密钥示例。\n\n推荐配置写法(示意):\n\n```json\n{\n\t\"provider\": {\n\t\t\"opencode-go\": {\n\t\t\t\"options\": {\n\t\t\t\t\"apiKey\": \"{env:OPENCODE_GO_API_KEY}\",\n\t\t\t\t\"timeout\": 300000\n\t\t\t}\n\t\t}\n\t}\n}\n```\n\n说明:`timeout` 可按任务时延需求调整;抓取或长上下文任务建议提高超时,交互式任务保持默认即可。\n\n## 8. Hermes 编排改动点 (Hermes Orchestration Plan)\n\nHermes Skill(`codespace-coding`)按以下步骤执行:\n\n1. 校验 Codespace 状态(存在且运行)\n2. 进入工作目录并执行预设切换命令\n3. 调用 OpenCode 非交互任务\n4. 拉取 diff 与关键文件内容\n5. 回传结构化结果(改动文件、验证结果、失败原因)\n\n建议命令模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs opencode-go\n```\n\n降级模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs deepseek\n```\n\n备用模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs xiaomi\n```\n\n## 9. 验证矩阵 (Validation Matrix)\n\n| 层级 | 验证项 | 验证方式 |\n| :--- | :--- | :--- |\n| V0 | 变更范围正确 | 对照本方案中的文件级清单 |\n| V1 | 配置语法有效 | JSON 语法检查 + `pnpm typecheck` |\n| V2 | 切换脚本有效 | `switch-models --list` / `--current` / 切换往返测试 |\n| V2 | Codespace 可执行 | 远程执行 `opencode -p` 最小任务 |\n| RG | 审计结论 | Review Gate 输出 Pass / Reject |\n\n## 10. 回滚策略 (Rollback)\n\n若 provider 收敛导致任务失败率明显上升:\n\n1. 先回滚 `opencode.json` 默认预设到上一个可用配置。\n2. 保留 `switch-models` allowlist 逻辑,只临时放开单一候选预设做故障排查。\n3. 在专项文档追加“失败样本 + 根因 + 下一步收敛策略”,避免反复横跳。\n\n## 11. 里程碑与交付 (Milestones)\n\n1. M1(配置收敛):完成 P0 文件改动并通过 V1。\n2. M2(执行打通):Hermes -> Codespace -> OpenCode 最小链路通过。\n3. M3(治理收口):文档、脚本说明、审计证据同步完成。\n\n---\n\n关联文档:\n\n- [CLI / MCP 自动化能力扩展设计](./cli-mcp-automation.md)\n- [AI 协作规范](../../standards/ai-collaboration.md)\n- [安全开发规范](../../standards/security.md)\n"}, "e2da73032e3eb8bf346c3b5e750a6ed1cf414b1e": {"t": 1785749520.8083754, "n": 6366, "h": "6d1af20f30ebaac5", "c": "# OpenCode + GitHub Codespaces 提供商收敛集成方案(opencode-go / deepseek / xiaomi-mimo)\n\n## 1. 概述 (Overview)\n\n本文档用于把“Hermes + OpenCode + GitHub Codespaces 集成方案”落地为可执行的仓库改动清单,并明确当前模型提供商收敛策略:\n\n- 保留 `opencode-go`、`deepseek`、`xiaomi-mimo` 三类模型提供商。\n- 以 `.opencode/configs/` 作为 OpenCode 模型配置的事实源。\n- `opencode.json` 仅作为当前激活配置的派生结果。\n\n该方案聚焦“配置与流程收敛”,不直接包含功能代码实现。\n\n## 2. 准入结论 (Intake Decision)\n\n- 结论:允许作为专项设计文档先落盘,执行时按独立基础设施任务推进。\n- 原因:当前 `todo.md` 主线是缓存架构与治理深化,本事项属于开发工具链集成与运行环境治理,不宜静默插入当前功能主线。\n- 执行建议:以“专项任务”方式推进,先完成最小可运行闭环,再逐步收敛策略。\n\n## 3. 现状基线 (Current Baseline)\n\n当前仓库已具备以下基础:\n\n1. OpenCode 主配置已存在:[opencode.json](../../../opencode.json)\n2. 多个 OpenCode 预设已存在:[.opencode/configs/](../../../.opencode/configs)\n3. 模型切换脚本已存在:[scripts/setup/switch-models.mjs](../../../scripts/setup/switch-models.mjs)\n4. AI 工作树软链接脚本已存在:[scripts/setup/setup-ai.mjs](../../../scripts/setup/setup-ai.mjs)\n5. Codespaces 容器配置存在但位于根目录:[devcontainer.json](../../../devcontainer.json)\n\n已识别差异:\n\n1. 容器镜像版本为 Node 18,而项目 `engines.node` 要求 `>=20`。\n2. `opencode.opencode-go.json` 仍包含 `glm`、`qwen` 等非目标模型,与当前收敛目标不一致。\n3. 尚无“提供商白名单”层面的显式治理规则,切换脚本仍可面向全部预设。\n\n### 3.1 Node 24 镜像可用性核实\n\n核实结论:Node 24 的官方 devcontainer 镜像标签可用,后续可按 Node 24 作为容器默认目标版本。\n\n已核实的公开标签(MCR):\n\n1. `mcr.microsoft.com/devcontainers/typescript-node:24-bookworm`\n2. `mcr.microsoft.com/devcontainers/typescript-node:24`\n3. `mcr.microsoft.com/devcontainers/javascript-node:24-bookworm`\n\n核实方式:通过带超时的 HTTP 请求抓取 MCR 标签列表(`TimeoutSec=15`),避免网络异常导致探测流程长时间阻塞。\n\n## 4. 目标状态 (Target State)\n\n### 4.1 提供商策略\n\n运行链路只允许以下两类提供商:\n\n1. `opencode-go/*`\n2. `deepseek/*`\n3. `xiaomi-mimo/*`\n\n### 4.2 执行原则\n\n1. 复用仓库内现有 OpenCode 配置,不在 Codespace 内维护平行的私有配置源。\n2. `.opencode/configs/` 是唯一预设事实源;`opencode.json` 由切换脚本写入。\n3. 统一通过仓库脚本完成模型切换与治理,不依赖人工手改 JSON。\n4. 以最小改动优先,先完成可运行,再做收紧。\n\n### 4.3 Codespaces 手动设置 vs OpenCode 配置文件\n\n当前有两条可行路径:\n\n1. 在 GitHub Codespaces 中手动执行 `/connect`、`/model`,逐个设置提供商与模型。\n2. 在仓库配置(`.opencode/configs/*.json` + `opencode.json`)中声明提供商与模型,通过脚本切换激活态。\n\n对比结论如下:\n\n| 维度 | Codespaces 手动设置 | OpenCode 配置文件声明 |\n| :--- | :--- | :--- |\n| 可复现性 | 低:依赖个人操作顺序与习惯 | 高:配置与脚本可审计、可复用 |\n| 团队一致性 | 低:多人环境容易漂移 | 高:同一分支默认一致 |\n| 治理成本 | 高:需要反复口头同步 | 低:规则集中在仓库文件 |\n| 首次上手速度 | 中:单人试用快 | 中:首次需要理解预设与切换脚本 |\n| 临时调试灵活性 | 高:可即时切换 | 中:推荐通过脚本切换而非手改 |\n\n建议:本项目采用“配置文件优先、手动设置兜底”的策略。\n\n1. 日常开发与协作:以 `.opencode/configs/` 为事实源。\n2. 紧急排障或临时试验:允许在 Codespace 手动切换,但任务结束后必须回到仓库预设并记录原因。\n\n### 4.4 OpenCode Go 为内置提供商时,写入配置会发生什么\n\nOpenCode Go 是 OpenCode 内置 provider。将模型写入配置后,行为是“显式选择内置 provider”,不是“新增自定义 provider”。\n\n1. 当模型写为 `opencode-go/<model-id>`(例如 `opencode-go/deepseek-v4-pro`)时,OpenCode 会按内置 OpenCode Go 路由请求。\n2. 这不会破坏 `/connect` 流程;`/connect` 仍可用于交互式录入凭据。\n3. 在自动化场景(Codespaces / CI)中,推荐通过配置映射环境变量到 `provider.options.apiKey`,避免依赖交互式录入。\n\n补充说明:官方文档明确支持 `{env:VARIABLE}` 通用变量替换机制,但未强制规定 OpenCode Go 必须使用某个固定环境变量名。因此 `OPENCODE_GO_API_KEY` 可作为本仓库约定命名,而非官方硬编码键名。\n\n## 5. 具体改动方案 (File-level Change Plan)\n\n### 5.1 P0:必须改动\n\n| 文件 | 改动类型 | 具体改动 |\n| :--- | :--- | :--- |\n| [devcontainer.json](../../../devcontainer.json) | Update | 基础镜像升级到 Node 24(推荐 `mcr.microsoft.com/devcontainers/typescript-node:24-bookworm`);`postCreateCommand` 中保留 `pnpm install`,并新增 OpenCode 可用性检查(安装或版本检测)。 |\n| [opencode.json](../../../opencode.json) | Update | 默认模型收敛到三提供商之一(`opencode-go/deepseek-v4-pro`、`deepseek/deepseek-v4-pro`、`xiaomi-mimo/mimo-v2.5-pro`);`instructions` 继续指向 `AGENTS.md`。 |\n| [.opencode/configs/opencode.opencode-go.json](../../../.opencode/configs/opencode.opencode-go.json) | Update | 所有 agent 模型统一为 `opencode-go/deepseek-v4-pro` 或 `opencode-go/deepseek-v4-flash`,移除 `opencode-go/glm-*` 与 `opencode-go/qwen*`。 |\n| [.opencode/configs/opencode.deepseek.json](../../../.opencode/configs/opencode.deepseek.json) | Verify | 校验所有 agent 仅使用 `deepseek/*`,保持与目标策略一致。 |\n| [.opencode/configs/opencode.xiaomi-mimo.json](../../../.opencode/configs/opencode.xiaomi-mimo.json) | Verify | 保持 xiaomi-mimo 预设可用,并校验模型字段只落在 `xiaomi-mimo/*`。 |\n| [scripts/setup/switch-models.mjs](../../../scripts/setup/switch-models.mjs) | Update | 增加 provider allowlist 校验(仅允许 opencode-go / deepseek / xiaomi-mimo);保留 `--list`、`--current`。 |\n\n### 5.2 P1:建议改动\n\n| 文件 | 改动类型 | 具体改动 |\n| :--- | :--- | :--- |\n| [scripts/README.md](../../../scripts/README.md) | Update | 在 `setup` 章节新增“模型提供商白名单”说明与标准切换命令。 |\n| [docs/guide/ai-development.md](../../../docs/guide/ai-development.md) | Update | 增补 Codespaces + OpenCode 最小使用流程,强调“.opencode/configs 为事实源,opencode.json 为激活态”。 |\n\n## 6. 预设与映射建议 (Preset Mapping)\n\n### 6.1 推荐保留预设\n\n1. `opencode-go`(执行主力)\n2. `deepseek`(降级与兜底)\n3. `xiaomi-mimo`(保留为专项任务备用预设)\n\n### 6.2 推荐默认预设\n\n建议将默认预设设为 `opencode-go`,原因:\n\n1. 与“供应商策略”一致。\n2. 能保持与现有 `opencode-go/deepseek-v4-pro` 配置连续性。\n3. 当 `opencode-go` 不可用时,可快速切换到 `deepseek` 或 `xiaomi-mimo` 预设。\n\n## 7. Secrets 与环境变量方案 (Secrets & Env)\n\nGitHub Codespaces Secrets 最小集合:\n\n1. `OPENCODE_GO_API_KEY`(推荐命名;用于 OpenCode Go)\n2. `DEEPSEEK_API_KEY`(若直连 DeepSeek)\n3. `OPENROUTER_API_KEY`(若通过 OpenRouter 调度)\n4. `GITHUB_TOKEN` 或等效 PAT(用于仓库操作与 API 调用)\n\n约束:\n\n1. 不在仓库内提交任何明文密钥。\n2. 不在文档中写入真实密钥示例。\n\n推荐配置写法(示意):\n\n```json\n{\n\t\"provider\": {\n\t\t\"opencode-go\": {\n\t\t\t\"options\": {\n\t\t\t\t\"apiKey\": \"{env:OPENCODE_GO_API_KEY}\",\n\t\t\t\t\"timeout\": 300000\n\t\t\t}\n\t\t}\n\t}\n}\n```\n\n说明:`timeout` 可按任务时延需求调整;抓取或长上下文任务建议提高超时,交互式任务保持默认即可。\n\n## 8. Hermes 编排改动点 (Hermes Orchestration Plan)\n\nHermes Skill(`codespace-coding`)按以下步骤执行:\n\n1. 校验 Codespace 状态(存在且运行)\n2. 进入工作目录并执行预设切换命令\n3. 调用 OpenCode 非交互任务\n4. 拉取 diff 与关键文件内容\n5. 回传结构化结果(改动文件、验证结果、失败原因)\n\n建议命令模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs opencode-go\n```\n\n降级模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs deepseek\n```\n\n备用模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs xiaomi-mimo\n```\n\n## 9. 验证矩阵 (Validation Matrix)\n\n| 层级 | 验证项 | 验证方式 |\n| :--- | :--- | :--- |\n| V0 | 变更范围正确 | 对照本方案中的文件级清单 |\n| V1 | 配置语法有效 | JSON 语法检查 + `pnpm typecheck` |\n| V2 | 切换脚本有效 | `switch-models --list` / `--current` / 切换往返测试 |\n| V2 | Codespace 可执行 | 远程执行 `opencode -p` 最小任务 |\n| RG | 审计结论 | Review Gate 输出 Pass / Reject |\n\n## 10. 回滚策略 (Rollback)\n\n若 provider 收敛导致任务失败率明显上升:\n\n1. 先回滚 `opencode.json` 默认预设到上一个可用配置。\n2. 保留 `switch-models` allowlist 逻辑,只临时放开单一候选预设做故障排查。\n3. 在专项文档追加“失败样本 + 根因 + 下一步收敛策略”,避免反复横跳。\n\n## 11. 里程碑与交付 (Milestones)\n\n1. M1(配置收敛):完成 P0 文件改动并通过 V1。\n2. M2(执行打通):Hermes -> Codespace -> OpenCode 最小链路通过。\n3. M3(治理收口):文档、脚本说明、审计证据同步完成。\n\n---\n\n关联文档:\n\n- [CLI / MCP 自动化能力扩展设计](./cli-mcp-automation.md)\n- [AI 协作规范](../../standards/ai-collaboration.md)\n- [安全开发规范](../../standards/security.md)\n"}, "88def9baf257e43e4c4f93e80709b29abd8d0d23": {"t": 1785749522.7926373, "n": 5053, "h": "d6fbe39b17d3f087", "c": "# OpenCode + GitHub Codespaces 提供商收敛集成方案(opencode-go / deepseek / xiaomi-mimo)\n\n## 1. 概述 (Overview)\n\n本文档用于把“Hermes + OpenCode + GitHub Codespaces 集成方案”落地为可执行的仓库改动清单,并明确当前模型提供商收敛策略:\n\n- 保留 `opencode-go`、`deepseek`、`xiaomi-mimo` 三类模型提供商。\n- 以 `.opencode/configs/` 作为 OpenCode 模型配置的事实源。\n- `opencode.json` 仅作为当前激活配置的派生结果。\n\n该方案聚焦“配置与流程收敛”,不直接包含功能代码实现。\n\n## 2. 准入结论 (Intake Decision)\n\n- 结论:允许作为专项设计文档先落盘,执行时按独立基础设施任务推进。\n- 原因:当前 `todo.md` 主线是缓存架构与治理深化,本事项属于开发工具链集成与运行环境治理,不宜静默插入当前功能主线。\n- 执行建议:以“专项任务”方式推进,先完成最小可运行闭环,再逐步收敛策略。\n\n## 3. 现状基线 (Current Baseline)\n\n当前仓库已具备以下基础:\n\n1. OpenCode 主配置已存在:[opencode.json](../../../opencode.json)\n2. 多个 OpenCode 预设已存在:[.opencode/configs/](../../../.opencode/configs)\n3. 模型切换脚本已存在:[scripts/setup/switch-models.mjs](../../../scripts/setup/switch-models.mjs)\n4. AI 工作树软链接脚本已存在:[scripts/setup/setup-ai.mjs](../../../scripts/setup/setup-ai.mjs)\n5. Codespaces 容器配置存在但位于根目录:[devcontainer.json](../../../devcontainer.json)\n\n已识别差异:\n\n1. 容器镜像版本为 Node 18,而项目 `engines.node` 要求 `>=20`。\n2. `opencode.opencode-go.json` 仍包含 `glm`、`qwen` 等非目标模型,与当前收敛目标不一致。\n3. 尚无“提供商白名单”层面的显式治理规则,切换脚本仍可面向全部预设。\n\n### 3.1 Node 24 镜像可用性核实\n\n核实结论:Node 24 的官方 devcontainer 镜像标签可用,后续可按 Node 24 作为容器默认目标版本。\n\n已核实的公开标签(MCR):\n\n1. `mcr.microsoft.com/devcontainers/typescript-node:24-bookworm`\n2. `mcr.microsoft.com/devcontainers/typescript-node:24`\n3. `mcr.microsoft.com/devcontainers/javascript-node:24-bookworm`\n\n核实方式:通过带超时的 HTTP 请求抓取 MCR 标签列表(`TimeoutSec=15`),避免网络异常导致探测流程长时间阻塞。\n\n## 4. 目标状态 (Target State)\n\n### 4.1 提供商策略\n\n运行链路只允许以下两类提供商:\n\n1. `opencode-go/*`\n2. `deepseek/*`\n3. `xiaomi-mimo/*`\n\n### 4.2 执行原则\n\n1. 复用仓库内现有 OpenCode 配置,不在 Codespace 内维护平行的私有配置源。\n2. `.opencode/configs/` 是唯一预设事实源;`opencode.json` 由切换脚本写入。\n3. 统一通过仓库脚本完成模型切换与治理,不依赖人工手改 JSON。\n4. 以最小改动优先,先完成可运行,再做收紧。\n\n## 5. 具体改动方案 (File-level Change Plan)\n\n### 5.1 P0:必须改动\n\n| 文件 | 改动类型 | 具体改动 |\n| :--- | :--- | :--- |\n| [devcontainer.json](../../../devcontainer.json) | Update | 基础镜像升级到 Node 24(推荐 `mcr.microsoft.com/devcontainers/typescript-node:24-bookworm`);`postCreateCommand` 中保留 `pnpm install`,并新增 OpenCode 可用性检查(安装或版本检测)。 |\n| [opencode.json](../../../opencode.json) | Update | 默认模型收敛到三提供商之一(`opencode-go/deepseek-v4-pro`、`deepseek/deepseek-v4-pro`、`xiaomi-mimo/mimo-v2.5-pro`);`instructions` 继续指向 `AGENTS.md`。 |\n| [.opencode/configs/opencode.opencode-go.json](../../../.opencode/configs/opencode.opencode-go.json) | Update | 所有 agent 模型统一为 `opencode-go/deepseek-v4-pro` 或 `opencode-go/deepseek-v4-flash`,移除 `opencode-go/glm-*` 与 `opencode-go/qwen*`。 |\n| [.opencode/configs/opencode.deepseek.json](../../../.opencode/configs/opencode.deepseek.json) | Verify | 校验所有 agent 仅使用 `deepseek/*`,保持与目标策略一致。 |\n| [.opencode/configs/opencode.xiaomi-mimo.json](../../../.opencode/configs/opencode.xiaomi-mimo.json) | Verify | 保持 xiaomi-mimo 预设可用,并校验模型字段只落在 `xiaomi-mimo/*`。 |\n| [scripts/setup/switch-models.mjs](../../../scripts/setup/switch-models.mjs) | Update | 增加 provider allowlist 校验(仅允许 opencode-go / deepseek / xiaomi-mimo);保留 `--list`、`--current`。 |\n\n### 5.2 P1:建议改动\n\n| 文件 | 改动类型 | 具体改动 |\n| :--- | :--- | :--- |\n| [scripts/README.md](../../../scripts/README.md) | Update | 在 `setup` 章节新增“模型提供商白名单”说明与标准切换命令。 |\n| [docs/guide/ai-development.md](../../../docs/guide/ai-development.md) | Update | 增补 Codespaces + OpenCode 最小使用流程,强调“.opencode/configs 为事实源,opencode.json 为激活态”。 |\n\n## 6. 预设与映射建议 (Preset Mapping)\n\n### 6.1 推荐保留预设\n\n1. `opencode-go`(执行主力)\n2. `deepseek`(降级与兜底)\n3. `xiaomi-mimo`(保留为专项任务备用预设)\n\n### 6.2 推荐默认预设\n\n建议将默认预设设为 `opencode-go`,原因:\n\n1. 与“供应商策略”一致。\n2. 能保持与现有 `opencode-go/deepseek-v4-pro` 配置连续性。\n3. 当 `opencode-go` 不可用时,可快速切换到 `deepseek` 或 `xiaomi-mimo` 预设。\n\n## 7. Secrets 与环境变量方案 (Secrets & Env)\n\nGitHub Codespaces Secrets 最小集合:\n\n1. `OPENROUTER_API_KEY`(若通过 OpenRouter 调度)\n2. `DEEPSEEK_API_KEY`(若直连 DeepSeek)\n3. `GITHUB_TOKEN` 或等效 PAT(用于仓库操作与 API 调用)\n\n约束:\n\n1. 不在仓库内提交任何明文密钥。\n2. 不在文档中写入真实密钥示例。\n\n## 8. Hermes 编排改动点 (Hermes Orchestration Plan)\n\nHermes Skill(`codespace-coding`)按以下步骤执行:\n\n1. 校验 Codespace 状态(存在且运行)\n2. 进入工作目录并执行预设切换命令\n3. 调用 OpenCode 非交互任务\n4. 拉取 diff 与关键文件内容\n5. 回传结构化结果(改动文件、验证结果、失败原因)\n\n建议命令模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs opencode-go\n```\n\n降级模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs deepseek\n```\n\n备用模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs xiaomi-mimo\n```\n\n## 9. 验证矩阵 (Validation Matrix)\n\n| 层级 | 验证项 | 验证方式 |\n| :--- | :--- | :--- |\n| V0 | 变更范围正确 | 对照本方案中的文件级清单 |\n| V1 | 配置语法有效 | JSON 语法检查 + `pnpm typecheck` |\n| V2 | 切换脚本有效 | `switch-models --list` / `--current` / 切换往返测试 |\n| V2 | Codespace 可执行 | 远程执行 `opencode -p` 最小任务 |\n| RG | 审计结论 | Review Gate 输出 Pass / Reject |\n\n## 10. 回滚策略 (Rollback)\n\n若 provider 收敛导致任务失败率明显上升:\n\n1. 先回滚 `opencode.json` 默认预设到上一个可用配置。\n2. 保留 `switch-models` allowlist 逻辑,只临时放开单一候选预设做故障排查。\n3. 在专项文档追加“失败样本 + 根因 + 下一步收敛策略”,避免反复横跳。\n\n## 11. 里程碑与交付 (Milestones)\n\n1. M1(配置收敛):完成 P0 文件改动并通过 V1。\n2. M2(执行打通):Hermes -> Codespace -> OpenCode 最小链路通过。\n3. M3(治理收口):文档、脚本说明、审计证据同步完成。\n\n---\n\n关联文档:\n\n- [CLI / MCP 自动化能力扩展设计](./cli-mcp-automation.md)\n- [AI 协作规范](../../standards/ai-collaboration.md)\n- [安全开发规范](../../standards/security.md)\n"}, "f355f030b2b56cd39895a104b9a47880ad9ca4d1": {"t": 1785846944.283913, "n": 6306, "h": "69906f4eb51e367c", "c": "# OpenCode + GitHub Codespaces 提供商收敛集成方案(opencode-go / deepseek / xiaomi)\n\n## 1. 概述 (Overview)\n\n本文档用于把“Hermes + OpenCode + GitHub Codespaces 集成方案”落地为可执行的仓库改动清单,并明确当前模型提供商收敛策略:\n\n- 保留 `opencode-go`、`deepseek`、`xiaomi` 三类模型提供商。\n- 以 `.opencode/configs/` 作为 OpenCode 模型配置的事实源。\n- `opencode.json` 仅作为当前激活配置的派生结果。\n\n该方案聚焦“配置与流程收敛”,不直接包含功能代码实现。\n\n## 2. 准入结论 (Intake Decision)\n\n- 结论:允许作为专项设计文档先落盘,执行时按独立基础设施任务推进。\n- 原因:当前 `todo.md` 主线是缓存架构与治理深化,本事项属于开发工具链集成与运行环境治理,不宜静默插入当前功能主线。\n- 执行建议:以“专项任务”方式推进,先完成最小可运行闭环,再逐步收敛策略。\n\n## 3. 现状基线 (Current Baseline)\n\n当前仓库已具备以下基础:\n\n1. OpenCode 主配置已存在:[opencode.json](../../../opencode.json)\n2. 多个 OpenCode 预设已存在:[.opencode/configs/](../../../.opencode/configs)\n3. 模型切换脚本已存在:[scripts/setup/switch-models.mjs](../../../scripts/setup/switch-models.mjs)\n4. AI 工作树软链接脚本已存在:[scripts/setup/setup-ai.mjs](../../../scripts/setup/setup-ai.mjs)\n5. Codespaces 容器配置存在但位于根目录:[devcontainer.json](../../../devcontainer.json)\n\n已识别差异:\n\n1. 容器镜像版本为 Node 18,而项目 `engines.node` 要求 `>=20`。\n2. `opencode.opencode-go.json` 仍包含 `glm`、`qwen` 等非目标模型,与当前收敛目标不一致。\n3. 尚无“提供商白名单”层面的显式治理规则,切换脚本仍可面向全部预设。\n\n### 3.1 Node 24 镜像可用性核实\n\n核实结论:Node 24 的官方 devcontainer 镜像标签可用,后续可按 Node 24 作为容器默认目标版本。\n\n已核实的公开标签(MCR):\n\n1. `mcr.microsoft.com/devcontainers/typescript-node:24-bookworm`\n2. `mcr.microsoft.com/devcontainers/typescript-node:24`\n3. `mcr.microsoft.com/devcontainers/javascript-node:24-bookworm`\n\n核实方式:通过带超时的 HTTP 请求抓取 MCR 标签列表(`TimeoutSec=15`),避免网络异常导致探测流程长时间阻塞。\n\n## 4. 目标状态 (Target State)\n\n### 4.1 提供商策略\n\n运行链路只允许以下两类提供商:\n\n1. `opencode-go/*`\n2. `deepseek/*`\n3. `xiaomi/*`\n\n### 4.2 执行原则\n\n1. 复用仓库内现有 OpenCode 配置,不在 Codespace 内维护平行的私有配置源。\n2. `.opencode/configs/` 是唯一预设事实源;`opencode.json` 由切换脚本写入。\n3. 统一通过仓库脚本完成模型切换与治理,不依赖人工手改 JSON。\n4. 以最小改动优先,先完成可运行,再做收紧。\n\n### 4.3 Codespaces 手动设置 vs OpenCode 配置文件\n\n当前有两条可行路径:\n\n1. 在 GitHub Codespaces 中手动执行 `/connect`、`/model`,逐个设置提供商与模型。\n2. 在仓库配置(`.opencode/configs/*.json` + `opencode.json`)中声明提供商与模型,通过脚本切换激活态。\n\n对比结论如下:\n\n| 维度 | Codespaces 手动设置 | OpenCode 配置文件声明 |\n| :--- | :--- | :--- |\n| 可复现性 | 低:依赖个人操作顺序与习惯 | 高:配置与脚本可审计、可复用 |\n| 团队一致性 | 低:多人环境容易漂移 | 高:同一分支默认一致 |\n| 治理成本 | 高:需要反复口头同步 | 低:规则集中在仓库文件 |\n| 首次上手速度 | 中:单人试用快 | 中:首次需要理解预设与切换脚本 |\n| 临时调试灵活性 | 高:可即时切换 | 中:推荐通过脚本切换而非手改 |\n\n建议:本项目采用“配置文件优先、手动设置兜底”的策略。\n\n1. 日常开发与协作:以 `.opencode/configs/` 为事实源。\n2. 紧急排障或临时试验:允许在 Codespace 手动切换,但任务结束后必须回到仓库预设并记录原因。\n\n### 4.4 OpenCode Go 为内置提供商时,写入配置会发生什么\n\nOpenCode Go 是 OpenCode 内置 provider。将模型写入配置后,行为是“显式选择内置 provider”,不是“新增自定义 provider”。\n\n1. 当模型写为 `opencode-go/<model-id>`(例如 `opencode-go/deepseek-v4-pro`)时,OpenCode 会按内置 OpenCode Go 路由请求。\n2. 这不会破坏 `/connect` 流程;`/connect` 仍可用于交互式录入凭据。\n3. 在自动化场景(Codespaces / CI)中,推荐通过配置映射环境变量到 `provider.options.apiKey`,避免依赖交互式录入。\n\n补充说明:官方文档明确支持 `{env:VARIABLE}` 通用变量替换机制,但未强制规定 OpenCode Go 必须使用某个固定环境变量名。因此 `OPENCODE_GO_API_KEY` 可作为本仓库约定命名,而非官方硬编码键名。\n\n## 5. 具体改动方案 (File-level Change Plan)\n\n### 5.1 P0:必须改动\n\n| 文件 | 改动类型 | 具体改动 |\n| :--- | :--- | :--- |\n| [devcontainer.json](../../../devcontainer.json) | Update | 基础镜像升级到 Node 24(推荐 `mcr.microsoft.com/devcontainers/typescript-node:24-bookworm`);`postCreateCommand` 中保留 `pnpm install`,并新增 OpenCode 可用性检查(安装或版本检测)。 |\n| [opencode.json](../../../opencode.json) | Update | 默认模型收敛到三提供商之一(`opencode-go/deepseek-v4-pro`、`deepseek/deepseek-v4-pro`、`xiaomi/mimo-v2.5-pro`);`instructions` 继续指向 `AGENTS.md`。 |\n| [.opencode/configs/opencode.opencode-go.json](../../../.opencode/configs/opencode.opencode-go.json) | Update | 所有 agent 模型统一为 `opencode-go/deepseek-v4-pro` 或 `opencode-go/deepseek-v4-flash`,移除 `opencode-go/glm-*` 与 `opencode-go/qwen*`。 |\n| [.opencode/configs/opencode.deepseek.json](../../../.opencode/configs/opencode.deepseek.json) | Verify | 校验所有 agent 仅使用 `deepseek/*`,保持与目标策略一致。 |\n| [.opencode/configs/opencode.xiaomi.json](../../../.opencode/configs/opencode.xiaomi.json) | Verify | 保持 xiaomi 预设可用,并校验模型字段只落在 `xiaomi/*`。 |\n| [scripts/setup/switch-models.mjs](../../../scripts/setup/switch-models.mjs) | Update | 增加 provider allowlist 校验(仅允许 opencode-go / deepseek / xiaomi);保留 `--list`、`--current`。 |\n\n### 5.2 P1:建议改动\n\n| 文件 | 改动类型 | 具体改动 |\n| :--- | :--- | :--- |\n| [scripts/README.md](../../../scripts/README.md) | Update | 在 `setup` 章节新增“模型提供商白名单”说明与标准切换命令。 |\n| [docs/guide/ai-development.md](../../../docs/guide/ai-development.md) | Update | 增补 Codespaces + OpenCode 最小使用流程,强调“.opencode/configs 为事实源,opencode.json 为激活态”。 |\n\n## 6. 预设与映射建议 (Preset Mapping)\n\n### 6.1 推荐保留预设\n\n1. `opencode-go`(执行主力)\n2. `deepseek`(降级与兜底)\n3. `xiaomi`(保留为专项任务备用预设)\n\n### 6.2 推荐默认预设\n\n建议将默认预设设为 `opencode-go`,原因:\n\n1. 与“供应商策略”一致。\n2. 能保持与现有 `opencode-go/deepseek-v4-pro` 配置连续性。\n3. 当 `opencode-go` 不可用时,可快速切换到 `deepseek` 或 `xiaomi` 预设。\n\n## 7. Secrets 与环境变量方案 (Secrets & Env)\n\nGitHub Codespaces Secrets 最小集合:\n\n1. `OPENCODE_GO_API_KEY`(推荐命名;用于 OpenCode Go)\n2. `DEEPSEEK_API_KEY`(若直连 DeepSeek)\n3. `OPENROUTER_API_KEY`(若通过 OpenRouter 调度)\n4. `GITHUB_TOKEN` 或等效 PAT(用于仓库操作与 API 调用)\n\n约束:\n\n1. 不在仓库内提交任何明文密钥。\n2. 不在文档中写入真实密钥示例。\n\n推荐配置写法(示意):\n\n```json\n{\n\t\"provider\": {\n\t\t\"opencode-go\": {\n\t\t\t\"options\": {\n\t\t\t\t\"apiKey\": \"{env:OPENCODE_GO_API_KEY}\",\n\t\t\t\t\"timeout\": 300000\n\t\t\t}\n\t\t}\n\t}\n}\n```\n\n说明:`timeout` 可按任务时延需求调整;抓取或长上下文任务建议提高超时,交互式任务保持默认即可。\n\n## 8. Hermes 编排改动点 (Hermes Orchestration Plan)\n\nHermes Skill(`codespace-coding`)按以下步骤执行:\n\n1. 校验 Codespace 状态(存在且运行)\n2. 进入工作目录并执行预设切换命令\n3. 调用 OpenCode 非交互任务\n4. 拉取 diff 与关键文件内容\n5. 回传结构化结果(改动文件、验证结果、失败原因)\n\n建议命令模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs opencode-go\n```\n\n降级模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs deepseek\n```\n\n备用模板:\n\n```bash\npnpm node scripts/setup/switch-models.mjs xiaomi\n```\n\n## 9. 验证矩阵 (Validation Matrix)\n\n| 层级 | 验证项 | 验证方式 |\n| :--- | :--- | :--- |\n| V0 | 变更范围正确 | 对照本方案中的文件级清单 |\n| V1 | 配置语法有效 | JSON 语法检查 + `pnpm typecheck` |\n| V2 | 切换脚本有效 | `switch-models --list` / `--current` / 切换往返测试 |\n| V2 | Codespace 可执行 | 远程执行 `opencode -p` 最小任务 |\n| RG | 审计结论 | Review Gate 输出 Pass / Reject |\n\n## 10. 回滚策略 (Rollback)\n\n若 provider 收敛导致任务失败率明显上升:\n\n1. 先回滚 `opencode.json` 默认预设到上一个可用配置。\n2. 保留 `switch-models` allowlist 逻辑,只临时放开单一候选预设做故障排查。\n3. 在专项文档追加“失败样本 + 根因 + 下一步收敛策略”,避免反复横跳。\n\n## 11. 里程碑与交付 (Milestones)\n\n1. M1(配置收敛):完成 P0 文件改动并通过 V1。\n2. M2(执行打通):Hermes -> Codespace -> OpenCode 最小链路通过。\n3. M3(治理收口):文档、脚本说明、审计证据同步完成。\n\n---\n\n关联文档:\n\n- [CLI / MCP 自动化能力扩展设计](./cli-mcp-automation.md)\n- [AI 协作规范](../../standards/ai-collaboration.md)\n- [安全开发规范](../../standards/security.md)\n"}}, "devcontainer.json": {"9a797673716991b7e3b4b1192ad186ca39e64a6b": {"t": 1785674053.731034, "n": 2736, "h": "6bf2b199a8b0fbb6", "c": "{\n // 配置名称(可自定义,用于在 Codespaces 中识别)\n \"name\": \"OpenCode Ready Environment\",\n // 基础镜像:选择官方 Node.js 镜像(预装 Node.js/npm,兼容 OpenCode 多种安装方式)\n // Node 24 版本,和项目运行时要求保持一致\n \"image\": \"mcr.microsoft.com/devcontainers/typescript-node:24-bookworm\",\n // 【核心】Codespace 创建完成后自动执行的命令(安装依赖并初始化 OpenCode CLI)\n \"postCreateCommand\": \"bash -c 'sudo apt update && sudo apt install -y curl git && corepack enable && pnpm install && (command -v opencode >/dev/null 2>&1 || npm install -g opencode-ai || true) && (command -v opencode >/dev/null 2>&1 && opencode --version || echo \\\"[devcontainer] opencode CLI 安装失败或不可用,请手动检查 npm registry 与包名\\\")'\",\n // 定制化配置(终端 + VS Code)\n \"customizations\": {\n // 终端配置:默认使用 zsh(更友好的终端体验),兼容 claude 命令\n \"terminal\": {\n \"shellArgs\": [\n \"/bin/zsh\",\n \"-l\"\n ]\n },\n // VS Code 配置:预装实用扩展,提升与 Claude Code 的协作效率\n \"vscode\": {\n \"extensions\": [\n \"GitHub.github-vscode-theme\", // GitHub 主题,视觉更统一\n \"ms-vscode.vscode-typescript-next\", // TypeScript 增强(Claude Code 常用)\n \"ms-vscode.git-extension-pack\", // Git 扩展包(Claude Code 需操作 Git)\n \"redhat.vscode-yaml\" // YAML 语法高亮(配置文件编辑)\n ],\n // VS Code 基础设置(可选,可自定义)\n \"settings\": {\n \"terminal.integrated.shell.linux\": \"/bin/zsh\",\n \"editor.formatOnSave\": true,\n \"files.eol\": \"\\n\"\n }\n }\n },\n // 环境变量配置(占位符)\n // 方式1:直接填写(不推荐,存在密钥泄露风险,仅用于本地测试)\n // 方式2:后续配置 GitHub Codespaces Secrets(推荐,安全可靠)\n \"remoteEnv\": {\n // OpenCode 三提供商与调度所需密钥(从本地或 Codespaces Secrets 注入)\n \"OPENCODE_GO_API_KEY\": \"${localEnv:OPENCODE_GO_API_KEY}\",\n \"DEEPSEEK_API_KEY\": \"${localEnv:DEEPSEEK_API_KEY}\",\n \"OPENROUTER_API_KEY\": \"${localEnv:OPENROUTER_API_KEY}\",\n // GitHub Token(用于仓库与 API 访问)\n \"GITHUB_TOKEN\": \"${localEnv:GITHUB_TOKEN}\",\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${localEnv:GITHUB_PERSONAL_ACCESS_TOKEN}\",\n // Tinyfish MCP(用于搜索)\n \"TINYFISH_MCP_URL\": \"${localEnv:TINYFISH_MCP_URL}\",\n \"TINYFISH_MCP_TOKEN\": \"${localEnv:TINYFISH_MCP_TOKEN}\"\n },\n // 容器资源限制(可选,根据自身 Codespaces 额度调整)\n \"hostRequirements\": {\n \"cpus\": 4, // 最低 4 核 CPU,提升运行效率\n \"memory\": \"16gb\" // 最低 16G 内存,确保多任务处理流畅\n // \"storage\": \"32gb\" // 最低 32G 存储,预留足够空间安装依赖和缓存\n },\n // 持久化配置(保留 OpenCode 配置和缓存,下次创建无需重新初始化)\n \"mounts\": [\n \"source=opencode-config,target=/home/node/.config/opencode,type=volume\",\n \"source=opencode-cache,target=/home/node/.cache/opencode,type=volume\"\n ],\n // 特权模式(可选,解决部分权限问题,无需手动授权)\n \"runArgs\": [\n \"--privileged\"\n ]\n}\n"}, "c0fcc48f03c34ef536c5e3716ad02df7757163e3": {"t": 1785749520.8326156, "n": 2736, "h": "6bf2b199a8b0fbb6", "c": "{\n // 配置名称(可自定义,用于在 Codespaces 中识别)\n \"name\": \"OpenCode Ready Environment\",\n // 基础镜像:选择官方 Node.js 镜像(预装 Node.js/npm,兼容 OpenCode 多种安装方式)\n // Node 24 版本,和项目运行时要求保持一致\n \"image\": \"mcr.microsoft.com/devcontainers/typescript-node:24-bookworm\",\n // 【核心】Codespace 创建完成后自动执行的命令(安装依赖并初始化 OpenCode CLI)\n \"postCreateCommand\": \"bash -c 'sudo apt update && sudo apt install -y curl git && corepack enable && pnpm install && (command -v opencode >/dev/null 2>&1 || npm install -g opencode-ai || true) && (command -v opencode >/dev/null 2>&1 && opencode --version || echo \\\"[devcontainer] opencode CLI 安装失败或不可用,请手动检查 npm registry 与包名\\\")'\",\n // 定制化配置(终端 + VS Code)\n \"customizations\": {\n // 终端配置:默认使用 zsh(更友好的终端体验),兼容 claude 命令\n \"terminal\": {\n \"shellArgs\": [\n \"/bin/zsh\",\n \"-l\"\n ]\n },\n // VS Code 配置:预装实用扩展,提升与 Claude Code 的协作效率\n \"vscode\": {\n \"extensions\": [\n \"GitHub.github-vscode-theme\", // GitHub 主题,视觉更统一\n \"ms-vscode.vscode-typescript-next\", // TypeScript 增强(Claude Code 常用)\n \"ms-vscode.git-extension-pack\", // Git 扩展包(Claude Code 需操作 Git)\n \"redhat.vscode-yaml\" // YAML 语法高亮(配置文件编辑)\n ],\n // VS Code 基础设置(可选,可自定义)\n \"settings\": {\n \"terminal.integrated.shell.linux\": \"/bin/zsh\",\n \"editor.formatOnSave\": true,\n \"files.eol\": \"\\n\"\n }\n }\n },\n // 环境变量配置(占位符)\n // 方式1:直接填写(不推荐,存在密钥泄露风险,仅用于本地测试)\n // 方式2:后续配置 GitHub Codespaces Secrets(推荐,安全可靠)\n \"remoteEnv\": {\n // OpenCode 三提供商与调度所需密钥(从本地或 Codespaces Secrets 注入)\n \"OPENCODE_GO_API_KEY\": \"${localEnv:OPENCODE_GO_API_KEY}\",\n \"DEEPSEEK_API_KEY\": \"${localEnv:DEEPSEEK_API_KEY}\",\n \"OPENROUTER_API_KEY\": \"${localEnv:OPENROUTER_API_KEY}\",\n // GitHub Token(用于仓库与 API 访问)\n \"GITHUB_TOKEN\": \"${localEnv:GITHUB_TOKEN}\",\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${localEnv:GITHUB_PERSONAL_ACCESS_TOKEN}\",\n // Tinyfish MCP(用于搜索)\n \"TINYFISH_MCP_URL\": \"${localEnv:TINYFISH_MCP_URL}\",\n \"TINYFISH_MCP_TOKEN\": \"${localEnv:TINYFISH_MCP_TOKEN}\"\n },\n // 容器资源限制(可选,根据自身 Codespaces 额度调整)\n \"hostRequirements\": {\n \"cpus\": 4, // 最低 4 核 CPU,提升运行效率\n \"memory\": \"16gb\" // 最低 16G 内存,确保多任务处理流畅\n // \"storage\": \"32gb\" // 最低 32G 存储,预留足够空间安装依赖和缓存\n },\n // 持久化配置(保留 OpenCode 配置和缓存,下次创建无需重新初始化)\n \"mounts\": [\n \"source=opencode-config,target=/home/node/.config/opencode,type=volume\",\n \"source=opencode-cache,target=/home/node/.cache/opencode,type=volume\"\n ],\n // 特权模式(可选,解决部分权限问题,无需手动授权)\n \"runArgs\": [\n \"--privileged\"\n ]\n}\n"}, "386e0fd77ec07e4cb9264791615eecb5443f897b": {"t": 1785749521.987714, "n": 2581, "h": "729777622d17ddc8", "c": "{\n // 配置名称(可自定义,用于在 Codespaces 中识别)\n \"name\": \"OpenCode Ready Environment\",\n // 基础镜像:选择官方 Node.js 镜像(预装 Node.js/npm,兼容 OpenCode 多种安装方式)\n // Node 24 版本,和项目运行时要求保持一致\n \"image\": \"mcr.microsoft.com/devcontainers/typescript-node:24-bookworm\",\n // 【核心】Codespace 创建完成后自动执行的命令(安装依赖并初始化 OpenCode CLI)\n \"postCreateCommand\": \"bash -c 'sudo apt update && sudo apt install -y curl git && corepack enable && pnpm install && (command -v opencode >/dev/null 2>&1 || npm install -g opencode-ai || true) && (command -v opencode >/dev/null 2>&1 && opencode --version || echo \\\"[devcontainer] opencode CLI 安装失败或不可用,请手动检查 npm registry 与包名\\\")'\",\n // 定制化配置(终端 + VS Code)\n \"customizations\": {\n // 终端配置:默认使用 zsh(更友好的终端体验),兼容 claude 命令\n \"terminal\": {\n \"shellArgs\": [\n \"/bin/zsh\",\n \"-l\"\n ]\n },\n // VS Code 配置:预装实用扩展,提升与 Claude Code 的协作效率\n \"vscode\": {\n \"extensions\": [\n \"GitHub.github-vscode-theme\", // GitHub 主题,视觉更统一\n \"ms-vscode.vscode-typescript-next\", // TypeScript 增强(Claude Code 常用)\n \"ms-vscode.git-extension-pack\", // Git 扩展包(Claude Code 需操作 Git)\n \"redhat.vscode-yaml\" // YAML 语法高亮(配置文件编辑)\n ],\n // VS Code 基础设置(可选,可自定义)\n \"settings\": {\n \"terminal.integrated.shell.linux\": \"/bin/zsh\",\n \"editor.formatOnSave\": true,\n \"files.eol\": \"\\n\"\n }\n }\n },\n // 环境变量配置(占位符)\n // 方式1:直接填写(不推荐,存在密钥泄露风险,仅用于本地测试)\n // 方式2:后续配置 GitHub Codespaces Secrets(推荐,安全可靠)\n \"remoteEnv\": {\n // OpenCode 三提供商与调度所需密钥(从本地或 Codespaces Secrets 注入)\n \"OPENCODE_GO_API_KEY\": \"${localEnv:OPENCODE_GO_API_KEY}\",\n \"DEEPSEEK_API_KEY\": \"${localEnv:DEEPSEEK_API_KEY}\",\n \"OPENROUTER_API_KEY\": \"${localEnv:OPENROUTER_API_KEY}\",\n // GitHub Token(用于仓库与 API 访问)\n \"GITHUB_TOKEN\": \"${localEnv:GITHUB_TOKEN}\",\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${localEnv:GITHUB_PERSONAL_ACCESS_TOKEN}\"\n },\n // 容器资源限制(可选,根据自身 Codespaces 额度调整)\n \"hostRequirements\": {\n \"cpus\": 4, // 最低 4 核 CPU,提升运行效率\n \"memory\": \"16gb\" // 最低 16G 内存,确保多任务处理流畅\n // \"storage\": \"32gb\" // 最低 32G 存储,预留足够空间安装依赖和缓存\n },\n // 持久化配置(保留 OpenCode 配置和缓存,下次创建无需重新初始化)\n \"mounts\": [\n \"source=opencode-config,target=/home/node/.config/opencode,type=volume\",\n \"source=opencode-cache,target=/home/node/.cache/opencode,type=volume\"\n ],\n // 特权模式(可选,解决部分权限问题,无需手动授权)\n \"runArgs\": [\n \"--privileged\"\n ]\n}"}, "e2da73032e3eb8bf346c3b5e750a6ed1cf414b1e": {"t": 1785749523.0958633, "n": 2505, "h": "8581b3412d4802fb", "c": "{\n // 配置名称(可自定义,用于在 Codespaces 中识别)\n \"name\": \"Claude Code Ready Environment\",\n // 基础镜像:选择官方 Node.js 镜像(预装 Node.js/npm,兼容 Claude Code 多种安装方式)\n // Node 24 版本,和项目运行时要求保持一致\n \"image\": \"mcr.microsoft.com/devcontainers/typescript-node:24-bookworm\",\n // 【核心】Codespace 创建完成后自动执行的命令(预装 Claude Code 及依赖)\n \"postCreateCommand\": \"bash -c 'sudo apt update && sudo apt install -y curl git && corepack enable && pnpm install && (curl -fsSL https://claude.ai/install.sh | bash || true) && (command -v opencode >/dev/null 2>&1 && opencode --version || echo \\\"[devcontainer] opencode CLI 未安装,已跳过版本检查\\\")'\",\n // 定制化配置(终端 + VS Code)\n \"customizations\": {\n // 终端配置:默认使用 zsh(更友好的终端体验),兼容 claude 命令\n \"terminal\": {\n \"shellArgs\": [\n \"/bin/zsh\",\n \"-l\"\n ]\n },\n // VS Code 配置:预装实用扩展,提升与 Claude Code 的协作效率\n \"vscode\": {\n \"extensions\": [\n \"GitHub.github-vscode-theme\", // GitHub 主题,视觉更统一\n \"ms-vscode.vscode-typescript-next\", // TypeScript 增强(Claude Code 常用)\n \"ms-vscode.git-extension-pack\", // Git 扩展包(Claude Code 需操作 Git)\n \"redhat.vscode-yaml\" // YAML 语法高亮(配置文件编辑)\n ],\n // VS Code 基础设置(可选,可自定义)\n \"settings\": {\n \"terminal.integrated.shell.linux\": \"/bin/zsh\",\n \"editor.formatOnSave\": true,\n \"files.eol\": \"\\n\"\n }\n }\n },\n // 环境变量配置(占位符)\n // 方式1:直接填写(不推荐,存在密钥泄露风险,仅用于本地测试)\n // 方式2:后续配置 GitHub Codespaces Secrets(推荐,安全可靠)\n \"remoteEnv\": {\n // Claude Code 认证密钥占位符(二选一即可)\n \"ANTHROPIC_BASE_URL\": \"${localEnv:ANTHROPIC_BASE_URL}\",\n \"ANTHROPIC_API_KEY\": \"${localEnv:ANTHROPIC_API_KEY}\",\n \"ANTHROPIC_AUTH_TOKEN\": \"${localEnv:ANTHROPIC_AUTH_TOKEN}\",\n // 可选:GitHub PAT 环境变量(用于 Claude Code 操作 GitHub 仓库/PR)\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${localEnv:GITHUB_PERSONAL_ACCESS_TOKEN}\"\n },\n // 容器资源限制(可选,根据自身 Codespaces 额度调整)\n \"hostRequirements\": {\n \"cpus\": 4, // 最低 4 核 CPU,提升运行效率\n \"memory\": \"16gb\" // 最低 16G 内存,确保多任务处理流畅\n // \"storage\": \"32gb\" // 最低 32G 存储,预留足够空间安装依赖和缓存\n },\n // 持久化配置(保留 Claude Code 认证信息和配置,下次创建无需重新安装)\n \"mounts\": [\n \"source=claude-code-config,target=/home/node/.config/claude,type=volume\",\n \"source=claude-code-cache,target=/home/node/.cache/claude,type=volume\"\n ],\n // 特权模式(可选,解决部分权限问题,无需手动授权)\n \"runArgs\": [\n \"--privileged\"\n ]\n}"}, "0e713cc44ac941b3d8b698a63ab42d843813f528": {"t": 1785749524.318239, "n": 2385, "h": "2dfd9415787268d2", "c": "{\n // 配置名称(可自定义,用于在 Codespaces 中识别)\n \"name\": \"Claude Code Ready Environment\",\n // 基础镜像:选择官方 Node.js 镜像(预装 Node.js/npm,兼容 Claude Code 多种安装方式)\n // 18-bullseye 稳定版,兼容性强,适合大多数场景\n \"image\": \"mcr.microsoft.com/devcontainers/node:18-bullseye\",\n // 【核心】Codespace 创建完成后自动执行的命令(预装 Claude Code 及依赖)\n \"postCreateCommand\": \"bash -c 'sudo apt update && sudo apt install -y curl git && corepack enable && pnpm install && (curl -fsSL https://claude.ai/install.sh | bash || true)'\",\n // 定制化配置(终端 + VS Code)\n \"customizations\": {\n // 终端配置:默认使用 zsh(更友好的终端体验),兼容 claude 命令\n \"terminal\": {\n \"shellArgs\": [\n \"/bin/zsh\",\n \"-l\"\n ]\n },\n // VS Code 配置:预装实用扩展,提升与 Claude Code 的协作效率\n \"vscode\": {\n \"extensions\": [\n \"GitHub.github-vscode-theme\", // GitHub 主题,视觉更统一\n \"ms-vscode.vscode-typescript-next\", // TypeScript 增强(Claude Code 常用)\n \"ms-vscode.git-extension-pack\", // Git 扩展包(Claude Code 需操作 Git)\n \"redhat.vscode-yaml\" // YAML 语法高亮(配置文件编辑)\n ],\n // VS Code 基础设置(可选,可自定义)\n \"settings\": {\n \"terminal.integrated.shell.linux\": \"/bin/zsh\",\n \"editor.formatOnSave\": true,\n \"files.eol\": \"\\n\"\n }\n }\n },\n // 环境变量配置(占位符)\n // 方式1:直接填写(不推荐,存在密钥泄露风险,仅用于本地测试)\n // 方式2:后续配置 GitHub Codespaces Secrets(推荐,安全可靠)\n \"remoteEnv\": {\n // Claude Code 认证密钥占位符(二选一即可)\n \"ANTHROPIC_BASE_URL\": \"${localEnv:ANTHROPIC_BASE_URL}\",\n \"ANTHROPIC_API_KEY\": \"${localEnv:ANTHROPIC_API_KEY}\",\n \"ANTHROPIC_AUTH_TOKEN\": \"${localEnv:ANTHROPIC_AUTH_TOKEN}\",\n // 可选:GitHub PAT 环境变量(用于 Claude Code 操作 GitHub 仓库/PR)\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${localEnv:GITHUB_PERSONAL_ACCESS_TOKEN}\"\n },\n // 容器资源限制(可选,根据自身 Codespaces 额度调整)\n \"hostRequirements\": {\n \"cpus\": 4, // 最低 4 核 CPU,提升运行效率\n \"memory\": \"16gb\" // 最低 16G 内存,确保多任务处理流畅\n // \"storage\": \"32gb\" // 最低 32G 存储,预留足够空间安装依赖和缓存\n },\n // 持久化配置(保留 Claude Code 认证信息和配置,下次创建无需重新安装)\n \"mounts\": [\n \"source=claude-code-config,target=/home/node/.config/claude,type=volume\",\n \"source=claude-code-cache,target=/home/node/.cache/claude,type=volume\"\n ],\n // 特权模式(可选,解决部分权限问题,无需手动授权)\n \"runArgs\": [\n \"--privileged\"\n ]\n}\n"}, "c20f986876c47c251b96315b46197d9adc5d8b0f": {"t": 1785749525.3999202, "n": 2395, "h": "10752cda030ed399", "c": "{\n // 配置名称(可自定义,用于在 Codespaces 中识别)\n \"name\": \"Claude Code Ready Environment\",\n // 基础镜像:选择官方 Node.js 镜像(预装 Node.js/npm,兼容 Claude Code 多种安装方式)\n // 18-bullseye 稳定版,兼容性强,适合大多数场景\n \"image\": \"mcr.microsoft.com/devcontainers/node:18-bullseye\",\n // 【核心】Codespace 创建完成后自动执行的命令(预装 Claude Code 及依赖)\n \"postCreateCommand\": \"bash -c 'sudo apt update && sudo apt install -y curl git && corepack enable && pnpm install && (curl -fsSL https://claude.ai/install.sh | bash || true)'\",\n // 定制化配置(终端 + VS Code)\n \"customizations\": {\n // 终端配置:默认使用 zsh(更友好的终端体验),兼容 claude 命令\n \"terminal\": {\n \"shellArgs\": [\n \"/bin/zsh\",\n \"-l\"\n ]\n },\n // VS Code 配置:预装实用扩展,提升与 Claude Code 的协作效率\n \"vscode\": {\n \"extensions\": [\n \"GitHub.github-vscode-theme\", // GitHub 主题,视觉更统一\n \"ms-vscode.vscode-typescript-next\", // TypeScript 增强(Claude Code 常用)\n \"ms-vscode.git-extension-pack\", // Git 扩展包(Claude Code 需操作 Git)\n \"redhat.vscode-yaml\" // YAML 语法高亮(配置文件编辑)\n ],\n // VS Code 基础设置(可选,可自定义)\n \"settings\": {\n \"terminal.integrated.shell.linux\": \"/bin/zsh\",\n \"editor.formatOnSave\": true,\n \"files.eol\": \"\\n\"\n }\n }\n },\n // 环境变量配置(占位符)\n // 方式1:直接填写(不推荐,存在密钥泄露风险,仅用于本地测试)\n // 方式2:后续配置 GitHub Codespaces Secrets(推荐,安全可靠)\n \"remoteEnv\": {\n // Claude Code 认证密钥占位符(二选一即可)\n \"ANTHROPIC_BASE_URL\": \"${localEnv:ANTHROPIC_BASE_URL}\",\n \"ANTHROPIC_API_KEY\": \"${localEnv:ANTHROPIC_API_KEY}\",\n \"ANTHROPIC_AUTH_TOKEN\": \"${localEnv:ANTHROPIC_AUTH_TOKEN}\",\n // 可选:GitHub PAT 环境变量(用于 Claude Code 操作 GitHub 仓库/PR)\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${localEnv:GITHUB_PERSONAL_ACCESS_TOKEN}\"\n },\n // 容器资源限制(可选,根据自身 Codespaces 额度调整)\n \"hostRequirements\": {\n \"cpus\": 2, // 最低 2 核,推荐 4 核(更流畅运行 Claude Code)\n \"memory\": \"8gb\" // 最低 8G 内存,避免运行卡顿\n // \"storage\": \"32gb\" // 最低 32G 存储,预留足够空间安装依赖和缓存\n },\n // 持久化配置(保留 Claude Code 认证信息和配置,下次创建无需重新安装)\n \"mounts\": [\n \"source=claude-code-config,target=/home/node/.config/claude,type=volume\",\n \"source=claude-code-cache,target=/home/node/.cache/claude,type=volume\"\n ],\n // 特权模式(可选,解决部分权限问题,无需手动授权)\n \"runArgs\": [\n \"--privileged\"\n ]\n}\n"}, "b19f6761f90df979cf4626f6bea9df1a6e9acd0c": {"t": 1785749527.4914079, "n": 2379, "h": "8450343fece8ab75", "c": "{\n // 配置名称(可自定义,用于在 Codespaces 中识别)\n \"name\": \"Claude Code Ready Environment\",\n // 基础镜像:选择官方 Node.js 镜像(预装 Node.js/npm,兼容 Claude Code 多种安装方式)\n // 18-bullseye 稳定版,兼容性强,适合大多数场景\n \"image\": \"mcr.microsoft.com/devcontainers/node:18-bullseye\",\n // 【核心】Codespace 创建完成后自动执行的命令(预装 Claude Code 及依赖)\n \"postCreateCommand\": \"bash -c 'sudo apt update && sudo apt install -y curl git && curl -fsSL https://claude.ai/install.sh | bash && source ~/.bashrc || true '\",\n // 定制化配置(终端 + VS Code)\n \"customizations\": {\n // 终端配置:默认使用 zsh(更友好的终端体验),兼容 claude 命令\n \"terminal\": {\n \"shellArgs\": [\n \"/bin/zsh\",\n \"-l\"\n ]\n },\n // VS Code 配置:预装实用扩展,提升与 Claude Code 的协作效率\n \"vscode\": {\n \"extensions\": [\n \"GitHub.github-vscode-theme\", // GitHub 主题,视觉更统一\n \"ms-vscode.vscode-typescript-next\", // TypeScript 增强(Claude Code 常用)\n \"ms-vscode.git-extension-pack\", // Git 扩展包(Claude Code 需操作 Git)\n \"redhat.vscode-yaml\" // YAML 语法高亮(配置文件编辑)\n ],\n // VS Code 基础设置(可选,可自定义)\n \"settings\": {\n \"terminal.integrated.shell.linux\": \"/bin/zsh\",\n \"editor.formatOnSave\": true,\n \"files.eol\": \"\\n\"\n }\n }\n },\n // 环境变量配置(占位符)\n // 方式1:直接填写(不推荐,存在密钥泄露风险,仅用于本地测试)\n // 方式2:后续配置 GitHub Codespaces Secrets(推荐,安全可靠)\n \"remoteEnv\": {\n // Claude Code 认证密钥占位符(二选一即可)\n \"ANTHROPIC_BASE_URL\": \"${localEnv:ANTHROPIC_BASE_URL}\",\n \"ANTHROPIC_API_KEY\": \"${localEnv:ANTHROPIC_API_KEY}\",\n \"ANTHROPIC_AUTH_TOKEN\": \"${localEnv:ANTHROPIC_AUTH_TOKEN}\",\n // 可选:GitHub PAT 环境变量(用于 Claude Code 操作 GitHub 仓库/PR)\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${localEnv:GITHUB_PERSONAL_ACCESS_TOKEN}\"\n },\n // 容器资源限制(可选,根据自身 Codespaces 额度调整)\n \"hostRequirements\": {\n \"cpus\": 2, // 最低 2 核,推荐 4 核(更流畅运行 Claude Code)\n \"memory\": \"8gb\" // 最低 8G 内存,避免运行卡顿\n // \"storage\": \"32gb\" // 最低 32G 存储,预留足够空间安装依赖和缓存\n },\n // 持久化配置(保留 Claude Code 认证信息和配置,下次创建无需重新安装)\n \"mounts\": [\n \"source=claude-code-config,target=/home/node/.config/claude,type=volume\",\n \"source=claude-code-cache,target=/home/node/.cache/claude,type=volume\"\n ],\n // 特权模式(可选,解决部分权限问题,无需手动授权)\n \"runArgs\": [\n \"--privileged\"\n ]\n}\n"}, "83e4748e04071723b8935b0f56b9b4602e9d410a": {"t": 1785749528.5841367, "n": 2405, "h": "43fab8856936b166", "c": "{\n // 配置名称(可自定义,用于在 Codespaces 中识别)\n \"name\": \"Claude Code Ready Environment\",\n // 基础镜像:选择官方 Node.js 镜像(预装 Node.js/npm,兼容 Claude Code 多种安装方式)\n // 18-bullseye 稳定版,兼容性强,适合大多数场景\n \"image\": \"mcr.microsoft.com/devcontainers/node:18-bullseye\",\n // 【核心】Codespace 创建完成后自动执行的命令(预装 Claude Code 及依赖)\n \"postCreateCommand\": \"bash -c 'sudo apt update && sudo apt install -y curl git && curl -fsSL https://claude.ai/install.sh | bash && source ~/.bashrc || true && source ~/.zshrc || true'\",\n // 定制化配置(终端 + VS Code)\n \"customizations\": {\n // 终端配置:默认使用 zsh(更友好的终端体验),兼容 claude 命令\n \"terminal\": {\n \"shellArgs\": [\n \"/bin/zsh\",\n \"-l\"\n ]\n },\n // VS Code 配置:预装实用扩展,提升与 Claude Code 的协作效率\n \"vscode\": {\n \"extensions\": [\n \"GitHub.github-vscode-theme\", // GitHub 主题,视觉更统一\n \"ms-vscode.vscode-typescript-next\", // TypeScript 增强(Claude Code 常用)\n \"ms-vscode.git-extension-pack\", // Git 扩展包(Claude Code 需操作 Git)\n \"redhat.vscode-yaml\" // YAML 语法高亮(配置文件编辑)\n ],\n // VS Code 基础设置(可选,可自定义)\n \"settings\": {\n \"terminal.integrated.shell.linux\": \"/bin/zsh\",\n \"editor.formatOnSave\": true,\n \"files.eol\": \"\\n\"\n }\n }\n },\n // 环境变量配置(占位符)\n // 方式1:直接填写(不推荐,存在密钥泄露风险,仅用于本地测试)\n // 方式2:后续配置 GitHub Codespaces Secrets(推荐,安全可靠)\n \"remoteEnv\": {\n // Claude Code 认证密钥占位符(二选一即可)\n \"ANTHROPIC_BASE_URL\": \"${localEnv:ANTHROPIC_BASE_URL}\",\n \"ANTHROPIC_API_KEY\": \"${localEnv:ANTHROPIC_API_KEY}\",\n \"ANTHROPIC_AUTH_TOKEN\": \"${localEnv:ANTHROPIC_AUTH_TOKEN}\",\n // 可选:GitHub PAT 环境变量(用于 Claude Code 操作 GitHub 仓库/PR)\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${localEnv:GITHUB_PERSONAL_ACCESS_TOKEN}\"\n },\n // 容器资源限制(可选,根据自身 Codespaces 额度调整)\n \"hostRequirements\": {\n \"cpus\": 2, // 最低 2 核,推荐 4 核(更流畅运行 Claude Code)\n \"memory\": \"8gb\" // 最低 8G 内存,避免运行卡顿\n // \"storage\": \"32gb\" // 最低 32G 存储,预留足够空间安装依赖和缓存\n },\n // 持久化配置(保留 Claude Code 认证信息和配置,下次创建无需重新安装)\n \"mounts\": [\n \"source=claude-code-config,target=/home/node/.config/claude,type=volume\",\n \"source=claude-code-cache,target=/home/node/.cache/claude,type=volume\"\n ],\n // 特权模式(可选,解决部分权限问题,无需手动授权)\n \"runArgs\": [\n \"--privileged\"\n ]\n}\n"}, "f355f030b2b56cd39895a104b9a47880ad9ca4d1": {"t": 1785846821.097426, "n": 2736, "h": "6bf2b199a8b0fbb6", "c": "{\n // 配置名称(可自定义,用于在 Codespaces 中识别)\n \"name\": \"OpenCode Ready Environment\",\n // 基础镜像:选择官方 Node.js 镜像(预装 Node.js/npm,兼容 OpenCode 多种安装方式)\n // Node 24 版本,和项目运行时要求保持一致\n \"image\": \"mcr.microsoft.com/devcontainers/typescript-node:24-bookworm\",\n // 【核心】Codespace 创建完成后自动执行的命令(安装依赖并初始化 OpenCode CLI)\n \"postCreateCommand\": \"bash -c 'sudo apt update && sudo apt install -y curl git && corepack enable && pnpm install && (command -v opencode >/dev/null 2>&1 || npm install -g opencode-ai || true) && (command -v opencode >/dev/null 2>&1 && opencode --version || echo \\\"[devcontainer] opencode CLI 安装失败或不可用,请手动检查 npm registry 与包名\\\")'\",\n // 定制化配置(终端 + VS Code)\n \"customizations\": {\n // 终端配置:默认使用 zsh(更友好的终端体验),兼容 claude 命令\n \"terminal\": {\n \"shellArgs\": [\n \"/bin/zsh\",\n \"-l\"\n ]\n },\n // VS Code 配置:预装实用扩展,提升与 Claude Code 的协作效率\n \"vscode\": {\n \"extensions\": [\n \"GitHub.github-vscode-theme\", // GitHub 主题,视觉更统一\n \"ms-vscode.vscode-typescript-next\", // TypeScript 增强(Claude Code 常用)\n \"ms-vscode.git-extension-pack\", // Git 扩展包(Claude Code 需操作 Git)\n \"redhat.vscode-yaml\" // YAML 语法高亮(配置文件编辑)\n ],\n // VS Code 基础设置(可选,可自定义)\n \"settings\": {\n \"terminal.integrated.shell.linux\": \"/bin/zsh\",\n \"editor.formatOnSave\": true,\n \"files.eol\": \"\\n\"\n }\n }\n },\n // 环境变量配置(占位符)\n // 方式1:直接填写(不推荐,存在密钥泄露风险,仅用于本地测试)\n // 方式2:后续配置 GitHub Codespaces Secrets(推荐,安全可靠)\n \"remoteEnv\": {\n // OpenCode 三提供商与调度所需密钥(从本地或 Codespaces Secrets 注入)\n \"OPENCODE_GO_API_KEY\": \"${localEnv:OPENCODE_GO_API_KEY}\",\n \"DEEPSEEK_API_KEY\": \"${localEnv:DEEPSEEK_API_KEY}\",\n \"OPENROUTER_API_KEY\": \"${localEnv:OPENROUTER_API_KEY}\",\n // GitHub Token(用于仓库与 API 访问)\n \"GITHUB_TOKEN\": \"${localEnv:GITHUB_TOKEN}\",\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${localEnv:GITHUB_PERSONAL_ACCESS_TOKEN}\",\n // Tinyfish MCP(用于搜索)\n \"TINYFISH_MCP_URL\": \"${localEnv:TINYFISH_MCP_URL}\",\n \"TINYFISH_MCP_TOKEN\": \"${localEnv:TINYFISH_MCP_TOKEN}\"\n },\n // 容器资源限制(可选,根据自身 Codespaces 额度调整)\n \"hostRequirements\": {\n \"cpus\": 4, // 最低 4 核 CPU,提升运行效率\n \"memory\": \"16gb\" // 最低 16G 内存,确保多任务处理流畅\n // \"storage\": \"32gb\" // 最低 32G 存储,预留足够空间安装依赖和缓存\n },\n // 持久化配置(保留 OpenCode 配置和缓存,下次创建无需重新初始化)\n \"mounts\": [\n \"source=opencode-config,target=/home/node/.config/opencode,type=volume\",\n \"source=opencode-cache,target=/home/node/.cache/opencode,type=volume\"\n ],\n // 特权模式(可选,解决部分权限问题,无需手动授权)\n \"runArgs\": [\n \"--privileged\"\n ]\n}\n"}}, ".env.full.example": {"9a797673716991b7e3b4b1192ad186ca39e64a6b": {"t": 1785746762.322405, "n": 12810, "h": "ecd8d0f266646bd7", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# Vercel KV / Upstash Redis 持久化缓存 (可选,用于 ISR/SWR 跨实例共享缓存)\n# Vercel KV 基于 Upstash Redis,在 Vercel 项目中集成 KV 后以下环境变量会自动配置\n# KV_URL=\n# KV_REST_API_URL=\n# KV_REST_API_TOKEN=\n# KV_REST_API_READ_ONLY_TOKEN=\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# TTS 前端直连模式(显式启用,默认在 Serverless 环境自动降级到火山引擎直连)\n# TTS_FRONTEND_DIRECT=false\n# TTS 前端直连凭证有效期(秒),默认 600(10 分钟),范围 [300, 43200]\n# TTS_CREDENTIAL_TTL_SECONDS=600\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# Hexo 风格文章仓库同步(GitHub / Gitee)\nHEXO_SYNC_ENABLED=false\n# 支持 github / gitee\nHEXO_SYNC_PROVIDER=github\nHEXO_SYNC_OWNER=\nHEXO_SYNC_REPO=\nHEXO_SYNC_BRANCH=main\nHEXO_SYNC_POSTS_DIR=source/_posts\n# 仅服务端读取,不进入后台数据库\nHEXO_SYNC_ACCESS_TOKEN=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n# Umami 统计配置(JSON 字符串,示例: {\"websiteId\":\"xxx\",\"scriptUrl\":\"https://analytics.example.com/script.js\"})\n# NUXT_PUBLIC_UMAMI_ANALYTICS=\n# 若使用 Docker 自托管 Umami,可参考仓库根目录 `umami.env.example` 与 `docker-compose.umami.yml`\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. API 限流配置 (Rate Limiting)\n# ------------------------------------------\n#\n# 内置限流规则及对应环境变量覆盖(不设置则使用默认值)。\n# 规则名对应 server/utils/rate-limit-config.ts 中的 name 字段。\n#\n# 命名规则:NUXT_RATE_LIMIT_<RULE_NAME>_MAX=<number>\n# NUXT_RATE_LIMIT_<RULE_NAME>_WINDOW=<number> 窗口秒数\n\n# 外部 API(CLI/MCP 导入导出等批量操作,容忍度更高)\n# NUXT_RATE_LIMIT_EXTERNAL_MAX=300\n# NUXT_RATE_LIMIT_EXTERNAL_WINDOW=60\n\n# AI 接口(防止 API 费用超支及滥用)\n# NUXT_RATE_LIMIT_AI_MAX=10\n# NUXT_RATE_LIMIT_AI_WINDOW=60\n\n# AI 任务轮询(放宽限制)\n# NUXT_RATE_LIMIT_AI_STATUS_MAX=30\n# NUXT_RATE_LIMIT_AI_STATUS_WINDOW=60\n\n# 搜索(全文搜索压力大)\n# NUXT_RATE_LIMIT_SEARCH_MAX=5\n# NUXT_RATE_LIMIT_SEARCH_WINDOW=60\n\n# 文章浏览量计数(POST /api/posts/:id/views,通过 match: path.endsWith('/views') 精准匹配)\n# 较严格的默认值(3次/10分钟)防止刷量,match 确保不影响 POST /api/posts/ 创建文章\n# NUXT_RATE_LIMIT_VIEWS_MAX=3\n# NUXT_RATE_LIMIT_VIEWS_WINDOW=600\n\n# 通用写请求(POST/PATCH/PUT/DELETE)\n# NUXT_RATE_LIMIT_DEFAULT_POST_MAX=20\n# NUXT_RATE_LIMIT_DEFAULT_POST_WINDOW=60\n\n# 通用读请求(GET)\n# NUXT_RATE_LIMIT_DEFAULT_GET_MAX=60\n# NUXT_RATE_LIMIT_DEFAULT_GET_WINDOW=60\n\n# ------------------------------------------\n# 13. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# MCP HTTP 传输开关(启用后主应用挂载 MCP HTTP 端点 /api/mcp)\n# 非 Serverless 环境(Docker / VPS)可开启;Serverless 环境自动静默降级\n# MOMEI_ENABLE_MCP_HTTP=false\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "b6b567a7aa4f7e0d31b525826a070f6ab65b7ff6": {"t": 1785749521.8038125, "n": 12810, "h": "ecd8d0f266646bd7", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# Vercel KV / Upstash Redis 持久化缓存 (可选,用于 ISR/SWR 跨实例共享缓存)\n# Vercel KV 基于 Upstash Redis,在 Vercel 项目中集成 KV 后以下环境变量会自动配置\n# KV_URL=\n# KV_REST_API_URL=\n# KV_REST_API_TOKEN=\n# KV_REST_API_READ_ONLY_TOKEN=\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# TTS 前端直连模式(显式启用,默认在 Serverless 环境自动降级到火山引擎直连)\n# TTS_FRONTEND_DIRECT=false\n# TTS 前端直连凭证有效期(秒),默认 600(10 分钟),范围 [300, 43200]\n# TTS_CREDENTIAL_TTL_SECONDS=600\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# Hexo 风格文章仓库同步(GitHub / Gitee)\nHEXO_SYNC_ENABLED=false\n# 支持 github / gitee\nHEXO_SYNC_PROVIDER=github\nHEXO_SYNC_OWNER=\nHEXO_SYNC_REPO=\nHEXO_SYNC_BRANCH=main\nHEXO_SYNC_POSTS_DIR=source/_posts\n# 仅服务端读取,不进入后台数据库\nHEXO_SYNC_ACCESS_TOKEN=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n# Umami 统计配置(JSON 字符串,示例: {\"websiteId\":\"xxx\",\"scriptUrl\":\"https://analytics.example.com/script.js\"})\n# NUXT_PUBLIC_UMAMI_ANALYTICS=\n# 若使用 Docker 自托管 Umami,可参考仓库根目录 `umami.env.example` 与 `docker-compose.umami.yml`\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. API 限流配置 (Rate Limiting)\n# ------------------------------------------\n#\n# 内置限流规则及对应环境变量覆盖(不设置则使用默认值)。\n# 规则名对应 server/utils/rate-limit-config.ts 中的 name 字段。\n#\n# 命名规则:NUXT_RATE_LIMIT_<RULE_NAME>_MAX=<number>\n# NUXT_RATE_LIMIT_<RULE_NAME>_WINDOW=<number> 窗口秒数\n\n# 外部 API(CLI/MCP 导入导出等批量操作,容忍度更高)\n# NUXT_RATE_LIMIT_EXTERNAL_MAX=300\n# NUXT_RATE_LIMIT_EXTERNAL_WINDOW=60\n\n# AI 接口(防止 API 费用超支及滥用)\n# NUXT_RATE_LIMIT_AI_MAX=10\n# NUXT_RATE_LIMIT_AI_WINDOW=60\n\n# AI 任务轮询(放宽限制)\n# NUXT_RATE_LIMIT_AI_STATUS_MAX=30\n# NUXT_RATE_LIMIT_AI_STATUS_WINDOW=60\n\n# 搜索(全文搜索压力大)\n# NUXT_RATE_LIMIT_SEARCH_MAX=5\n# NUXT_RATE_LIMIT_SEARCH_WINDOW=60\n\n# 文章浏览量计数(POST /api/posts/:id/views,通过 match: path.endsWith('/views') 精准匹配)\n# 较严格的默认值(3次/10分钟)防止刷量,match 确保不影响 POST /api/posts/ 创建文章\n# NUXT_RATE_LIMIT_VIEWS_MAX=3\n# NUXT_RATE_LIMIT_VIEWS_WINDOW=600\n\n# 通用写请求(POST/PATCH/PUT/DELETE)\n# NUXT_RATE_LIMIT_DEFAULT_POST_MAX=20\n# NUXT_RATE_LIMIT_DEFAULT_POST_WINDOW=60\n\n# 通用读请求(GET)\n# NUXT_RATE_LIMIT_DEFAULT_GET_MAX=60\n# NUXT_RATE_LIMIT_DEFAULT_GET_WINDOW=60\n\n# ------------------------------------------\n# 13. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# MCP HTTP 传输开关(启用后主应用挂载 MCP HTTP 端点 /api/mcp)\n# 非 Serverless 环境(Docker / VPS)可开启;Serverless 环境自动静默降级\n# MOMEI_ENABLE_MCP_HTTP=false\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "3f405e70dda1c7c623ce07d0c0e298e15b4eeea4": {"t": 1785749523.9940205, "n": 12611, "h": "44832e821043a8b2", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# Vercel KV / Upstash Redis 持久化缓存 (可选,用于 ISR/SWR 跨实例共享缓存)\n# Vercel KV 基于 Upstash Redis,在 Vercel 项目中集成 KV 后以下环境变量会自动配置\n# KV_URL=\n# KV_REST_API_URL=\n# KV_REST_API_TOKEN=\n# KV_REST_API_READ_ONLY_TOKEN=\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# TTS 前端直连模式(显式启用,默认在 Serverless 环境自动降级到火山引擎直连)\n# TTS_FRONTEND_DIRECT=false\n# TTS 前端直连凭证有效期(秒),默认 600(10 分钟),范围 [300, 43200]\n# TTS_CREDENTIAL_TTL_SECONDS=600\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# Hexo 风格文章仓库同步(GitHub / Gitee)\nHEXO_SYNC_ENABLED=false\n# 支持 github / gitee\nHEXO_SYNC_PROVIDER=github\nHEXO_SYNC_OWNER=\nHEXO_SYNC_REPO=\nHEXO_SYNC_BRANCH=main\nHEXO_SYNC_POSTS_DIR=source/_posts\n# 仅服务端读取,不进入后台数据库\nHEXO_SYNC_ACCESS_TOKEN=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n# Umami 统计配置(JSON 字符串,示例: {\"websiteId\":\"xxx\",\"scriptUrl\":\"https://analytics.example.com/script.js\"})\n# NUXT_PUBLIC_UMAMI_ANALYTICS=\n# 若使用 Docker 自托管 Umami,可参考仓库根目录 `umami.env.example` 与 `docker-compose.umami.yml`\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. API 限流配置 (Rate Limiting)\n# ------------------------------------------\n#\n# 内置限流规则及对应环境变量覆盖(不设置则使用默认值)。\n# 规则名对应 server/utils/rate-limit-config.ts 中的 name 字段。\n#\n# 命名规则:NUXT_RATE_LIMIT_<RULE_NAME>_MAX=<number>\n# NUXT_RATE_LIMIT_<RULE_NAME>_WINDOW=<number> 窗口秒数\n\n# 外部 API(CLI/MCP 导入导出等批量操作,容忍度更高)\n# NUXT_RATE_LIMIT_EXTERNAL_MAX=300\n# NUXT_RATE_LIMIT_EXTERNAL_WINDOW=60\n\n# AI 接口(防止 API 费用超支及滥用)\n# NUXT_RATE_LIMIT_AI_MAX=10\n# NUXT_RATE_LIMIT_AI_WINDOW=60\n\n# AI 任务轮询(放宽限制)\n# NUXT_RATE_LIMIT_AI_STATUS_MAX=30\n# NUXT_RATE_LIMIT_AI_STATUS_WINDOW=60\n\n# 搜索(全文搜索压力大)\n# NUXT_RATE_LIMIT_SEARCH_MAX=5\n# NUXT_RATE_LIMIT_SEARCH_WINDOW=60\n\n# 通用写请求(POST/PATCH/PUT/DELETE)\n# NUXT_RATE_LIMIT_DEFAULT_POST_MAX=20\n# NUXT_RATE_LIMIT_DEFAULT_POST_WINDOW=60\n\n# 通用读请求(GET)\n# NUXT_RATE_LIMIT_DEFAULT_GET_MAX=60\n# NUXT_RATE_LIMIT_DEFAULT_GET_WINDOW=60\n\n# ------------------------------------------\n# 13. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# MCP HTTP 传输开关(启用后主应用挂载 MCP HTTP 端点 /api/mcp)\n# 非 Serverless 环境(Docker / VPS)可开启;Serverless 环境自动静默降级\n# MOMEI_ENABLE_MCP_HTTP=false\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "57fb839a9793d090e91f257d2b2c351e8544bc57": {"t": 1785749526.1842768, "n": 12478, "h": "2f3a1e58718c9b34", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# Vercel KV / Upstash Redis 持久化缓存 (可选,用于 ISR/SWR 跨实例共享缓存)\n# Vercel KV 基于 Upstash Redis,在 Vercel 项目中集成 KV 后以下环境变量会自动配置\n# KV_URL=\n# KV_REST_API_URL=\n# KV_REST_API_TOKEN=\n# KV_REST_API_READ_ONLY_TOKEN=\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# TTS 前端直连模式(显式启用,默认在 Serverless 环境自动降级到火山引擎直连)\n# TTS_FRONTEND_DIRECT=false\n# TTS 前端直连凭证有效期(秒),默认 600(10 分钟),范围 [300, 43200]\n# TTS_CREDENTIAL_TTL_SECONDS=600\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# Hexo 风格文章仓库同步(GitHub / Gitee)\nHEXO_SYNC_ENABLED=false\n# 支持 github / gitee\nHEXO_SYNC_PROVIDER=github\nHEXO_SYNC_OWNER=\nHEXO_SYNC_REPO=\nHEXO_SYNC_BRANCH=main\nHEXO_SYNC_POSTS_DIR=source/_posts\n# 仅服务端读取,不进入后台数据库\nHEXO_SYNC_ACCESS_TOKEN=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n# Umami 统计配置(JSON 字符串,示例: {\"websiteId\":\"xxx\",\"scriptUrl\":\"https://analytics.example.com/script.js\"})\n# NUXT_PUBLIC_UMAMI_ANALYTICS=\n# 若使用 Docker 自托管 Umami,可参考仓库根目录 `umami.env.example` 与 `docker-compose.umami.yml`\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. API 限流配置 (Rate Limiting)\n# ------------------------------------------\n#\n# 内置限流规则及对应环境变量覆盖(不设置则使用默认值)。\n# 规则名对应 server/utils/rate-limit-config.ts 中的 name 字段。\n#\n# 命名规则:NUXT_RATE_LIMIT_<RULE_NAME>_MAX=<number>\n# NUXT_RATE_LIMIT_<RULE_NAME>_WINDOW=<number> 窗口秒数\n\n# 外部 API(CLI/MCP 导入导出等批量操作,容忍度更高)\n# NUXT_RATE_LIMIT_EXTERNAL_MAX=300\n# NUXT_RATE_LIMIT_EXTERNAL_WINDOW=60\n\n# AI 接口(防止 API 费用超支及滥用)\n# NUXT_RATE_LIMIT_AI_MAX=10\n# NUXT_RATE_LIMIT_AI_WINDOW=60\n\n# AI 任务轮询(放宽限制)\n# NUXT_RATE_LIMIT_AI_STATUS_MAX=30\n# NUXT_RATE_LIMIT_AI_STATUS_WINDOW=60\n\n# 搜索(全文搜索压力大)\n# NUXT_RATE_LIMIT_SEARCH_MAX=5\n# NUXT_RATE_LIMIT_SEARCH_WINDOW=60\n\n# 通用写请求(POST/PATCH/PUT/DELETE)\n# NUXT_RATE_LIMIT_DEFAULT_POST_MAX=20\n# NUXT_RATE_LIMIT_DEFAULT_POST_WINDOW=60\n\n# 通用读请求(GET)\n# NUXT_RATE_LIMIT_DEFAULT_GET_MAX=60\n# NUXT_RATE_LIMIT_DEFAULT_GET_WINDOW=60\n\n# ------------------------------------------\n# 13. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "c85206bc8abe441b102984f7e2ceb9a74dc29271": {"t": 1785749527.4838753, "n": 11595, "h": "18a6389505f40769", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# Vercel KV / Upstash Redis 持久化缓存 (可选,用于 ISR/SWR 跨实例共享缓存)\n# Vercel KV 基于 Upstash Redis,在 Vercel 项目中集成 KV 后以下环境变量会自动配置\n# KV_URL=\n# KV_REST_API_URL=\n# KV_REST_API_TOKEN=\n# KV_REST_API_READ_ONLY_TOKEN=\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# TTS 前端直连模式(显式启用,默认在 Serverless 环境自动降级到火山引擎直连)\n# TTS_FRONTEND_DIRECT=false\n# TTS 前端直连凭证有效期(秒),默认 600(10 分钟),范围 [300, 43200]\n# TTS_CREDENTIAL_TTL_SECONDS=600\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# Hexo 风格文章仓库同步(GitHub / Gitee)\nHEXO_SYNC_ENABLED=false\n# 支持 github / gitee\nHEXO_SYNC_PROVIDER=github\nHEXO_SYNC_OWNER=\nHEXO_SYNC_REPO=\nHEXO_SYNC_BRANCH=main\nHEXO_SYNC_POSTS_DIR=source/_posts\n# 仅服务端读取,不进入后台数据库\nHEXO_SYNC_ACCESS_TOKEN=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n# Umami 统计配置(JSON 字符串,示例: {\"websiteId\":\"xxx\",\"scriptUrl\":\"https://analytics.example.com/script.js\"})\n# NUXT_PUBLIC_UMAMI_ANALYTICS=\n# 若使用 Docker 自托管 Umami,可参考仓库根目录 `umami.env.example` 与 `docker-compose.umami.yml`\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "8e9d1cc363e8b573c9afd6bda388dfda11910c1f": {"t": 1785749528.6075733, "n": 11557, "h": "d851c0d1c4acc7cd", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# Vercel KV 持久化缓存 (可选,用于 ISR/SWR 跨实例共享缓存)\n# 在 Vercel 项目设置中启用 KV 存储后,以下环境变量会自动配置\n# KV_URL=\n# KV_REST_API_URL=\n# KV_REST_API_TOKEN=\n# KV_REST_API_READ_ONLY_TOKEN=\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# TTS 前端直连模式(显式启用,默认在 Serverless 环境自动降级到火山引擎直连)\n# TTS_FRONTEND_DIRECT=false\n# TTS 前端直连凭证有效期(秒),默认 600(10 分钟),范围 [300, 43200]\n# TTS_CREDENTIAL_TTL_SECONDS=600\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# Hexo 风格文章仓库同步(GitHub / Gitee)\nHEXO_SYNC_ENABLED=false\n# 支持 github / gitee\nHEXO_SYNC_PROVIDER=github\nHEXO_SYNC_OWNER=\nHEXO_SYNC_REPO=\nHEXO_SYNC_BRANCH=main\nHEXO_SYNC_POSTS_DIR=source/_posts\n# 仅服务端读取,不进入后台数据库\nHEXO_SYNC_ACCESS_TOKEN=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n# Umami 统计配置(JSON 字符串,示例: {\"websiteId\":\"xxx\",\"scriptUrl\":\"https://analytics.example.com/script.js\"})\n# NUXT_PUBLIC_UMAMI_ANALYTICS=\n# 若使用 Docker 自托管 Umami,可参考仓库根目录 `umami.env.example` 与 `docker-compose.umami.yml`\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "efe4712f91fe95fda4efd1827450b1706eb96464": {"t": 1785749529.8851504, "n": 11395, "h": "1c29e2ccdddcfa7e", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# TTS 前端直连模式(显式启用,默认在 Serverless 环境自动降级到火山引擎直连)\n# TTS_FRONTEND_DIRECT=false\n# TTS 前端直连凭证有效期(秒),默认 600(10 分钟),范围 [300, 43200]\n# TTS_CREDENTIAL_TTL_SECONDS=600\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# Hexo 风格文章仓库同步(GitHub / Gitee)\nHEXO_SYNC_ENABLED=false\n# 支持 github / gitee\nHEXO_SYNC_PROVIDER=github\nHEXO_SYNC_OWNER=\nHEXO_SYNC_REPO=\nHEXO_SYNC_BRANCH=main\nHEXO_SYNC_POSTS_DIR=source/_posts\n# 仅服务端读取,不进入后台数据库\nHEXO_SYNC_ACCESS_TOKEN=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n# Umami 统计配置(JSON 字符串,示例: {\"websiteId\":\"xxx\",\"scriptUrl\":\"https://analytics.example.com/script.js\"})\n# NUXT_PUBLIC_UMAMI_ANALYTICS=\n# 若使用 Docker 自托管 Umami,可参考仓库根目录 `umami.env.example` 与 `docker-compose.umami.yml`\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "d4a6e74b0597be6d969e009447b42e6fc22e2007": {"t": 1785749530.99354, "n": 11314, "h": "1b5d269b771e4350", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# TTS 前端直连模式(显式启用,默认在 Serverless 环境自动降级到火山引擎直连)\n# TTS_FRONTEND_DIRECT=false\n# TTS 前端直连凭证有效期(秒),默认 600(10 分钟),范围 [300, 43200]\n# TTS_CREDENTIAL_TTL_SECONDS=600\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# Hexo 风格文章仓库同步(GitHub / Gitee)\nHEXO_SYNC_ENABLED=false\n# 支持 github / gitee\nHEXO_SYNC_PROVIDER=github\nHEXO_SYNC_OWNER=\nHEXO_SYNC_REPO=\nHEXO_SYNC_BRANCH=main\nHEXO_SYNC_POSTS_DIR=source/_posts\n# 仅服务端读取,不进入后台数据库\nHEXO_SYNC_ACCESS_TOKEN=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n# Umami 统计配置(JSON 字符串,示例: {\"websiteId\":\"xxx\",\"scriptUrl\":\"https://analytics.example.com/script.js\"})\n# NUXT_PUBLIC_UMAMI_ANALYTICS=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "d3d270e772c22bc063d2970d02f6f3167ba8bab4": {"t": 1785749532.256759, "n": 11182, "h": "883c9f1acdf06b9c", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# TTS 前端直连模式(显式启用,默认在 Serverless 环境自动降级到火山引擎直连)\n# TTS_FRONTEND_DIRECT=false\n# TTS 前端直连凭证有效期(秒),默认 600(10 分钟),范围 [300, 43200]\n# TTS_CREDENTIAL_TTL_SECONDS=600\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# Hexo 风格文章仓库同步(GitHub / Gitee)\nHEXO_SYNC_ENABLED=false\n# 支持 github / gitee\nHEXO_SYNC_PROVIDER=github\nHEXO_SYNC_OWNER=\nHEXO_SYNC_REPO=\nHEXO_SYNC_BRANCH=main\nHEXO_SYNC_POSTS_DIR=source/_posts\n# 仅服务端读取,不进入后台数据库\nHEXO_SYNC_ACCESS_TOKEN=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "b77a9fd2dca60c19f1e8d2f3f76cae5fb5659245": {"t": 1785749533.488334, "n": 11023, "h": "cc9e53cc08aa1f51", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# Hexo 风格文章仓库同步(GitHub / Gitee)\nHEXO_SYNC_ENABLED=false\n# 支持 github / gitee\nHEXO_SYNC_PROVIDER=github\nHEXO_SYNC_OWNER=\nHEXO_SYNC_REPO=\nHEXO_SYNC_BRANCH=main\nHEXO_SYNC_POSTS_DIR=source/_posts\n# 仅服务端读取,不进入后台数据库\nHEXO_SYNC_ACCESS_TOKEN=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "02b75115fad41f25ba25d23f6a559eed20a1ad61": {"t": 1785749534.930319, "n": 10789, "h": "a1db426e2d9eb0b9", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 7.1 listmonk Newsletter 分发\n# ------------------------------------------\n\nLISTMONK_ENABLED=false\nLISTMONK_INSTANCE_URL=\nLISTMONK_USERNAME=\nLISTMONK_ACCESS_TOKEN=\nLISTMONK_DEFAULT_LIST_IDS=\n# JSON 示例: {\"backend\":[3],\"frontend\":[4]}\nLISTMONK_CATEGORY_LIST_MAP=\n# JSON 示例: {\"nuxt\":[5],\"newsletter\":[6]}\nLISTMONK_TAG_LIST_MAP=\nLISTMONK_TEMPLATE_ID=\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "c2247fee3767ffe66e3739a2bea20de314854360": {"t": 1785749536.052252, "n": 10397, "h": "3526e40e925bc988", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认文章版权协议类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_POST_COPYRIGHT=all-rights-reserved\n\n# 站点版权展示信息 (用于页脚版权行)\nNUXT_PUBLIC_SITE_COPYRIGHT_OWNER=XX博客版权所有\nNUXT_PUBLIC_SITE_COPYRIGHT_START_YEAR=2026\n\n# 兼容旧变量名,建议迁移到新的 POST_/SITE_ 命名\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_OWNER=\n# NUXT_PUBLIC_FOOTER_COPYRIGHT_START_YEAR=\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "25b0ba83ddd5dfed52235e3f93a99d828f08577e": {"t": 1785749537.1767893, "n": 10125, "h": "7a3ef608fece0a10", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认版权声明类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常建议初始化后手动修改为 true 并重启系统)\n# MOMEI_INSTALLED=true\n"}, "08d16b9308bb5dc9e1b16fc633dba0b0c0547c39": {"t": 1785749538.47244, "n": 10110, "h": "ae3e9c8e6921e49b", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认版权声明类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# Vercel Cron 专用鉴权密钥\n# Vercel 会自动以 Authorization: Bearer <CRON_SECRET> 触发定时任务端点\nCRON_SECRET=\n\n# 定时任务鉴权令牌 (用于手动触发 Scheduled Tasks Webhook / 旧版集成)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于外部调度器 / GitHub Actions / Cloudflare / Serverless 等场景的 HMAC 验签\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常不建议手动修改)\n# MOMEI_INSTALLED=true\n"}, "c4885084bdeaa659997bbd3de7b95330c66933a1": {"t": 1785749539.5614522, "n": 9996, "h": "21345b0069ce3b33", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认版权声明类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 临时邮箱域拦截配置 (可选)\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# 定时任务鉴权令牌 (必需设置,用于安全触发 Scheduled Tasks Webhook)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于 Vercel/Cloudflare 等 Serverless 环境的定时任务触发验证\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常不建议手动修改)\n# MOMEI_INSTALLED=true\n"}, "347b15fd5c896c5ba50a51b89ed45f0bfa8f384d": {"t": 1785749540.8328009, "n": 10040, "h": "774c5da06dbd2e38", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认版权声明类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI_TEXT_DIRECT_RETURN_MAX_CHARS=1000\n# AI_TEXT_TASK_CHUNK_SIZE=4000\n# AI_TEXT_TASK_CONCURRENCY=3\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# AI 配额治理 (可选,支持直接复用后台设置页导出的 JSON)\n# AI_QUOTA_ENABLED=false\n# AI_QUOTA_POLICIES=[{\"subjectType\":\"global\",\"subjectValue\":\"default\",\"scope\":\"all\",\"period\":\"day\",\"maxRequests\":100,\"maxQuotaUnits\":200,\"enabled\":true}]\n# AI_ALERT_THRESHOLDS={\"enabled\":true,\"quotaUsageRatios\":[0.5,0.8,1],\"costUsageRatios\":[0.8,1],\"failureBurst\":{\"enabled\":true,\"windowMinutes\":10,\"maxFailures\":3,\"categories\":[\"image\",\"asr\",\"tts\",\"podcast\"]},\"dedupeWindowMinutes\":1440,\"maxAlerts\":10}\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名邮箱域拦截配置 (可选)\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, r2, vercel_blob;兼容旧值 vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 全局公共访问域名 / 对象前缀(可选,优先级高于驱动级 BaseURL/Prefix)\n# ASSET_PUBLIC_BASE_URL=https://cdn.example.com/assets\n# ASSET_OBJECT_PREFIX=momei-blog/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel_blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# 定时任务鉴权令牌 (必需设置,用于安全触发 Scheduled Tasks Webhook)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于 Vercel/Cloudflare 等 Serverless 环境的定时任务触发验证\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常不建议手动修改)\n# MOMEI_INSTALLED=true\n"}, "042e3c239a0b6471b03ec94a4848cf447c5dfe20": {"t": 1785749541.9430346, "n": 9319, "h": "e92fce357dd1b009", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认版权声明类型 (例如 all-rights-reserved, cc-by-nc-sa)\nNUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# SiliconFlow ASR 专用配置 (可选,优先级高于通用 ASR_API_KEY / ASR_MODEL)\nASR_SILICONFLOW_API_KEY=\nASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 ASR 专用配置 (可选,优先级高于通用 VOLCENGINE_* 配置)\nASR_VOLCENGINE_APP_ID=\nASR_VOLCENGINE_ACCESS_KEY=\nASR_VOLCENGINE_SECRET_KEY=\nASR_VOLCENGINE_CLUSTER_ID=volc.bigasr.sauc.duration\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名邮箱域拦截配置 (可选)\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel-blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# 定时任务鉴权令牌 (必需设置,用于安全触发 Scheduled Tasks Webhook)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于 Vercel/Cloudflare 等 Serverless 环境的定时任务触发验证\nWEBHOOK_SECRET=\n\n# 自部署环境 Cron 表达式 (默认每 5 分钟执行一次)\n# 仅在非 Serverless 环境中生效\n# TASK_CRON_EXPRESSION=*/5 * * * *\n\n# 显式禁用自部署环境 Cron\n# DISABLE_CRON_JOB=false\n\n# Webhook 时间戳容差 (毫秒)\n# 说明:当前版本预留该变量名,Webhook 校验默认固定 5 分钟容差\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 主题系统默认值 (可选,仅在未通过后台配置覆盖时生效)\n# THEME_PRESET=\n# THEME_PRIMARY_COLOR=\n# THEME_ACCENT_COLOR=\n# THEME_SURFACE_COLOR=\n# THEME_TEXT_COLOR=\n# THEME_DARK_PRIMARY_COLOR=\n# THEME_DARK_ACCENT_COLOR=\n# THEME_DARK_SURFACE_COLOR=\n# THEME_DARK_TEXT_COLOR=\n# THEME_BORDER_RADIUS=\n# THEME_MOURNING_MODE=false\n# THEME_BACKGROUND_TYPE=\n# THEME_BACKGROUND_VALUE=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nENABLE_CAPTCHA=false\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# NUXT_PUBLIC_LIVE2D_MODEL_URL=\n# NUXT_PUBLIC_LIVE2D_OPTIONS_JSON={}\n# NUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# NUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# NUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON={}\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=1024\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# NUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# NUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# 公开限制项 (可选,会同步给前端)\n# NUXT_PUBLIC_ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp,image/gif\n# NUXT_PUBLIC_COMMENT_INTERVAL=60\n# NUXT_PUBLIC_POSTS_PER_PAGE=10\n\n# 上传限流 (可选)\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=20\n# UPLOAD_LIMIT_WINDOW=86400\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 商业化与第三方平台集成 (Commercial & Third-party)\n# ------------------------------------------\n\n# 全局商业化默认配置 (JSON 字符串)\n# 仅当需要通过环境变量锁定全局社交/打赏配置时使用\n# COMMERCIAL_SPONSORSHIP_JSON={\"enabled\":true,\"donationLinks\":[],\"socialLinks\":[]}\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常不建议手动修改)\n# MOMEI_INSTALLED=true\n"}, "2b0171a26a59d79c83221311c9517d12297bfa9b": {"t": 1785749543.034718, "n": 7414, "h": "69d6af53a2f9906d", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名邮箱域拦截配置 (可选)\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel-blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# 定时任务鉴权令牌 (必需设置,用于安全触发 Scheduled Tasks Webhook)\nTASKS_TOKEN=\n\n# Webhook HMAC 签名密钥 (推荐独立配置,默认使用 TASKS_TOKEN)\n# 用于 Vercel/Cloudflare 等 Serverless 环境的定时任务触发验证\nWEBHOOK_SECRET=\n\n# Webhook 时间戳容差 (毫秒,默认 300000 即 5 分钟)\n# 用于防止重放攻击\n# WEBHOOK_TIMESTAMP_TOLERANCE=300000\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 第三方平台集成 (Third-party)\n# ------------------------------------------\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常不建议手动修改)\n# MOMEI_INSTALLED=true\n"}, "b273ccf141d651e063595470f18766efaa0732de": {"t": 1785749544.1604528, "n": 7216, "h": "54fb1ce4c358619a", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n# AI 重任务超时(用于 TTS / ASR / 图片生成等耗时任务)\nAI_HEAVY_TASK_TIMEOUT=5m\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名邮箱域拦截配置 (可选)\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel-blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# 定时任务鉴权令牌 (必需设置,用于安全触发 Scheduled Tasks Webhook)\nTASKS_TOKEN=\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 第三方平台集成 (Third-party)\n# ------------------------------------------\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常不建议手动修改)\n# MOMEI_INSTALLED=true\n"}, "48e4f655958bf6e926dd98afd25e013a7aa770d0": {"t": 1785749545.4170408, "n": 7155, "h": "90bbeb8d31d6114d", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 SEO 描述\nNUXT_PUBLIC_SITE_DESCRIPTION=一个基于 Nuxt 4 构建的现代化 AI 驱动博客平台\n\n# 站点 SEO 关键词 (逗号分隔)\nNUXT_PUBLIC_SITE_KEYWORDS=Nuxt,Vue,Blog,AI,TypeScript\n\n# 默认语言 (en-US, zh-CN)\nNUXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN\n\n# 站点 URL(注意:公开访问的站点地址,用于 SEO 和 RSS 生成)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(必需,用于认证回调重定向,推荐与 SITE_URL 一致)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID 对 1024 取余\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库与高性能配置 (Database & Cache)\n# ------------------------------------------\n\n# 数据库连接 URL (支持 SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (可选,通常由 URL 自动推断: sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐手动设置)\n# DATABASE_PATH=database/momei.sqlite\n\n# 是否自动同步数据库表结构 (生产环境建议固定为 false,仅手动控制迁移)\nDATABASE_SYNCHRONIZE=false\n\n# 数据库连接调节 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n\n# Redis 连接地址 (可选,配置后将启用基于 Redis 的缓存或限流)\n# REDIS_URL=redis://localhost:6379\n\n# ------------------------------------------\n# 3. 认证与社交登录 (Authentication)\n# ------------------------------------------\n\n# 是否允许新用户注册\nALLOW_REGISTRATION=true\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# GitHub 配置 (OAuth)\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置 (OAuth)\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# ------------------------------------------\n# 4. AI 核心引擎 (AI Integration - Text & Image)\n# ------------------------------------------\n\n# 是否启用 AI 功能\nAI_ENABLED=true\n\n# 主 AI 提供商 (openai, anthropic, deepseek, doubao, siliconflow, gemini, volcengine)\nAI_PROVIDER=openai\n\n# AI API 密钥\nAI_API_KEY=\n\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 生成参数控制 (可选,默认内置优化值)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# Gemini 专用令牌 (如果 provider 为 gemini 且需要独立令牌鉴权)\n# GEMINI_API_TOKEN=\n\n# AI 图像生成配置\nAI_IMAGE_ENABLED=false\nAI_IMAGE_PROVIDER=openai\nAI_IMAGE_API_KEY=\nAI_IMAGE_MODEL=dall-e-3\nAI_IMAGE_ENDPOINT=\n\n# ------------------------------------------\n# 5. AI 多模态音频 (ASR & TTS)\n# ------------------------------------------\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=false\n# ASR 提供商 (openai, siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS 通用配置 (默认复用 AI_API_KEY)\nTTS_API_KEY=\nTTS_ENDPOINT=\nTTS_DEFAULT_MODEL=tts-1\nTTS_DEFAULT_VOICE=alloy\n\n# --- 厂商专项凭据 (可被上述 ASR/TTS 引用) ---\n\n# 火山引擎 (豆包语音) 统一凭据\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\nVOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 邮件发送系统 (SMTP)\n# ------------------------------------------\n\n# SMTP 服务器地址\nEMAIL_HOST=\n# SMTP 端口\nEMAIL_PORT=587\n# 是否使用 SSL/TLS (默认 false 会尝试 STARTTLS)\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式示例: \"Momei Blog\" <admin@example.com>)\nEMAIL_FROM=\n# 是否要求邮箱验证码验证后才允许登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# 邮件限流与周期配置 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名邮箱域拦截配置 (可选)\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# ------------------------------------------\n# 7. 对象存储系统 (Storage & Upload)\n# ------------------------------------------\n\n# 存储引擎 (local, s3, vercel-blob)\nSTORAGE_TYPE=local\n\n# 路径前缀(所有上传文件均会携带此目录前缀)\nBUCKET_PREFIX=momei/\n\n# 1. 本地存储配置 (STORAGE_TYPE=local)\nLOCAL_STORAGE_DIR=public/uploads\nNUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# 2. S3 兼容存储 (STORAGE_TYPE=s3, 适用于 R2, AWS S3, MinIO)\nS3_ENDPOINT=\nS3_BUCKET_NAME=\nS3_REGION=auto\nS3_ACCESS_KEY_ID=\nS3_SECRET_ACCESS_KEY=\nS3_BASE_URL=\n\n# 3. Vercel Blob (STORAGE_TYPE=vercel-blob)\nBLOB_READ_WRITE_TOKEN=\n\n# 4. Cloudflare R2 专用配置 (也可通过 S3 变量配置)\n# CLOUDFLARE_R2_ACCOUNT_ID=\n# CLOUDFLARE_R2_ACCESS_KEY=\n# CLOUDFLARE_R2_SECRET_KEY=\n# CLOUDFLARE_R2_BUCKET=\n# CLOUDFLARE_R2_BASE_URL=\n\n# 文件大小限制调节 (可选)\n# NUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n# NUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n# LOCAL_STORAGE_MIN_FREE_SPACE=100MiB\n\n# ------------------------------------------\n# 8. 运维、监控与自动化 (Operations)\n# ------------------------------------------\n\n# 管理员用户 ID 列表 (逗号分隔,注册后在此提权)\nADMIN_USER_IDS=\n\n# 定时任务鉴权令牌 (必需设置,用于安全触发 Scheduled Tasks Webhook)\nTASKS_TOKEN=\n\n# Sentry 异常监控\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# 站长流量统计 (填入对应统计 ID)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 站点验证标签 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# ------------------------------------------\n# 9. 视觉特效与内容组件 (Features)\n# ------------------------------------------\n\n# 站点元数据\nNUXT_PUBLIC_SITE_LOGO=\nNUXT_PUBLIC_SITE_FAVICON=\nNUXT_PUBLIC_SITE_OPERATOR=\n\n# 验证码集成 (提供商: cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox)\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 评论审核与风控\nENABLE_COMMENT_REVIEW=false\n# 关键词黑名单 (英文逗号分隔)\nBLACKLISTED_KEYWORDS=\n\n# 页脚自定义注入代码\nNUXT_PUBLIC_FOOTER_CODE=\n\n# 动态视觉特效控制\nNUXT_PUBLIC_LIVE2D_ENABLED=false\nNUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# 全局性能卫兵:是否允许移动端加载特效\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n\n# ------------------------------------------\n# 10. 合规与外部资源安全 (Compliance & Security)\n# ------------------------------------------\n\n# 中国大陆备案信息显示\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 安全:外部资源域名白名单 (逗号分隔,防止某些代理环境下图片加载失败)\nNUXT_PUBLIC_SECURITY_URL_WHITELIST=\n\n# Hugging Face 镜像代理地址 (用于部署在大陆环境时拉取资源)\nNUXT_PUBLIC_HF_PROXY=https://huggingface.co\n\n# ------------------------------------------\n# 11. 第三方平台集成 (Third-party)\n# ------------------------------------------\n\n# Memos 生活流同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 12. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志输出等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=info\n# 是否开启文件日志记录 (默认 false,Serverless 环境必须设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# 演示模式 (内存 DB 运行,限制写操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 安装锁定标志(系统首次运行后会自动生成/读取,通常不建议手动修改)\n# MOMEI_INSTALLED=true\r\n"}, "29492ee9ff34e232fba044353a604fc659e6dfa2": {"t": 1785749546.880219, "n": 8126, "h": "be79c3dcf7a016dd", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL(推荐与下方 AUTH_BASE_URL 保持一致)\n# 注意:设置中心中的“站点 URL”当前由 NUXT_PUBLIC_AUTH_BASE_URL 锁定\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(也作为设置中心中的站点 URL 来源)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini, siliconflow)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能 (true/false)\nASR_ENABLED=true\n# ASR 提供商 (siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置 (适用于 SiliconFlow 等)\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# 豆包语音识别 (Volcengine) 配置(当 ASR_PROVIDER=volcengine 时)\n# 资源 ID 推荐通过 ASR_MODEL 配置(如:volc.seedasr.sauc.duration)\n\n# 接口地址(可选)\n# 双向流式优化版:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n# 流式输入模式:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_nostream\n# ASR_ENDPOINT=wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n\n# 火山引擎 (豆包语音) 统一凭据(ASR/TTS 共用,推荐仅配置这一套)\nVOLCENGINE_APP_ID=\nVOLCENGINE_ACCESS_KEY=\n# 当前多数场景可选,预留给需要 Secret Key 的场景\nVOLCENGINE_SECRET_KEY=\n\n# 短信/手机验证码有效时间(秒)\n# PHONE_EXPIRES_IN=300\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# Live2D 看板娘配置 (可选)\n# 是否启用 Live2D\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# Live2D 资源根路径(建议以 /dist/ 结尾)\nNUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# waifu-tips.json 地址(留空时将根据 script_url 自动推导)\nNUXT_PUBLIC_LIVE2D_MODEL_URL=\n# 高级覆盖配置(JSON 字符串)\n# 示例:{\"modelId\":0,\"tools\":[\"hitokoto\",\"switch-model\",\"switch-texture\",\"photo\",\"info\",\"quit\"],\"drag\":false,\"logLevel\":\"warn\"}\nNUXT_PUBLIC_LIVE2D_OPTIONS_JSON=\n\n# 统一视觉特效性能配置(同时作用于 Live2D 与 CanvasNest,优先级高于单项配置)\n# 是否允许在移动端/窄屏加载\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# 最小加载宽度(像素)\nNUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# 在省流量/低速网络下是否禁用\nNUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# Canvas Nest 特效配置(可选)\n# NUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON=\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=768\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 第三方集成 (Third-party Integration)\n# ------------------------------------------\n\n# Memos 同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\n# 可选值:PRIVATE, PROTECTED, PUBLIC\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 11. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 测试模式 (自动化测试使用)\nNUXT_PUBLIC_TEST_MODE=false\n\n# 部署状态监控 (可选)\n# SENTRY_AUTH_TOKEN=\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}, "7dcd01ccd50ea857a0715ce54d69591751516e4a": {"t": 1785749549.9232771, "n": 8299, "h": "4a3522776f12177a", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL(推荐与下方 AUTH_BASE_URL 保持一致)\n# 注意:设置中心中的“站点 URL”当前由 NUXT_PUBLIC_AUTH_BASE_URL 锁定\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL(也作为设置中心中的站点 URL 来源)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini, siliconflow)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能 (true/false)\nASR_ENABLED=true\n# ASR 提供商 (siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置 (适用于 SiliconFlow 等)\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# 豆包语音识别 (Volcengine) 配置(当 ASR_PROVIDER=volcengine 时)\n# APP ID(建连 Header: X-Api-App-Key)\nASR_VOLCENGINE_APP_ID=\n# Access Key(建连 Header: X-Api-Access-Key)\nASR_VOLCENGINE_ACCESS_KEY=\n# Secret Key(与 Access Key 成对使用)\nASR_VOLCENGINE_SECRET_KEY=\n# 资源 ID 推荐通过 ASR_MODEL 配置(如:volc.seedasr.sauc.duration)\n\n# 接口地址(可选)\n# 双向流式优化版:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n# 流式输入模式:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_nostream\n# ASR_ENDPOINT=wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n\n# 火山引擎 (豆包语音) 配置 (用于 volcengine 驱动的 ASR 或 高级 TTS/AI)\n# VOLCENGINE_APP_ID=\n# VOLCENGINE_ACCESS_KEY=\n# VOLCENGINE_SECRET_KEY=\n\n# 短信/手机验证码有效时间(秒)\n# PHONE_EXPIRES_IN=300\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# Live2D 看板娘配置 (可选)\n# 是否启用 Live2D\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# Live2D 资源根路径(建议以 /dist/ 结尾)\nNUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# waifu-tips.json 地址(留空时将根据 script_url 自动推导)\nNUXT_PUBLIC_LIVE2D_MODEL_URL=\n# 高级覆盖配置(JSON 字符串)\n# 示例:{\"modelId\":0,\"tools\":[\"hitokoto\",\"switch-model\",\"switch-texture\",\"photo\",\"info\",\"quit\"],\"drag\":false,\"logLevel\":\"warn\"}\nNUXT_PUBLIC_LIVE2D_OPTIONS_JSON=\n\n# 统一视觉特效性能配置(同时作用于 Live2D 与 CanvasNest,优先级高于单项配置)\n# 是否允许在移动端/窄屏加载\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# 最小加载宽度(像素)\nNUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# 在省流量/低速网络下是否禁用\nNUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# Canvas Nest 特效配置(可选)\n# NUXT_PUBLIC_CANVAS_NEST_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_OPTIONS_JSON=\n# NUXT_PUBLIC_CANVAS_NEST_MOBILE_ENABLED=false\n# NUXT_PUBLIC_CANVAS_NEST_MIN_WIDTH=768\n# NUXT_PUBLIC_CANVAS_NEST_DATA_SAVER_BLOCK=true\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 第三方集成 (Third-party Integration)\n# ------------------------------------------\n\n# Memos 同步\nMEMOS_ENABLED=false\nMEMOS_INSTANCE_URL=\nMEMOS_ACCESS_TOKEN=\n# 可选值:PRIVATE, PROTECTED, PUBLIC\nMEMOS_DEFAULT_VISIBILITY=PRIVATE\n\n# ------------------------------------------\n# 11. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 测试模式 (自动化测试使用)\nNUXT_PUBLIC_TEST_MODE=false\n\n# 部署状态监控 (可选)\n# SENTRY_AUTH_TOKEN=\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}, "b76c9e50f9700c5560c43e1f0b6514bc66fd61c2": {"t": 1785749551.603055, "n": 7783, "h": "64258d5e0bce2c4e", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL (用于生成 sitemap.xml)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL (通常与 SITE_URL 相同)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini, siliconflow)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能 (true/false)\nASR_ENABLED=true\n# ASR 提供商 (siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置 (适用于 SiliconFlow 等)\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# 豆包语音识别 (Volcengine) 配置(当 ASR_PROVIDER=volcengine 时)\n# APP ID(建连 Header: X-Api-App-Key)\nASR_VOLCENGINE_APP_ID=\n# Access Key(建连 Header: X-Api-Access-Key)\nASR_VOLCENGINE_ACCESS_KEY=\n# 资源 ID(建连 Header: X-Api-Resource-Id)\n# 推荐:volc.seedasr.sauc.duration(小时版)\n# 可选:volc.seedasr.sauc.concurrent(并发版)\n# 也可复用 ASR_MODEL 作为资源 ID\nASR_VOLCENGINE_CLUSTER_ID=\n\n# 接口地址(可选)\n# 双向流式优化版:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n# 流式输入模式:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_nostream\n# ASR_ENDPOINT=wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n\n# 火山引擎 (豆包语音) 配置 (用于 volcengine 驱动的 ASR 或 高级 TTS/AI)\n# VOLCENGINE_APP_ID=\n# VOLCENGINE_ACCESS_KEY=\n# VOLCENGINE_SECRET_KEY=\n\n# 短信/手机验证码有效时间(秒)\n# PHONE_EXPIRES_IN=300\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# Live2D 看板娘配置 (可选)\n# 是否启用 Live2D\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# Live2D 资源根路径(建议以 /dist/ 结尾)\nNUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# waifu-tips.json 地址(留空时将根据 script_url 自动推导)\nNUXT_PUBLIC_LIVE2D_MODEL_URL=\n# 高级覆盖配置(JSON 字符串)\n# 示例:{\"modelId\":0,\"tools\":[\"hitokoto\",\"switch-model\",\"switch-texture\",\"photo\",\"info\",\"quit\"],\"drag\":false,\"logLevel\":\"warn\"}\nNUXT_PUBLIC_LIVE2D_OPTIONS_JSON=\n\n# 统一视觉特效性能配置(同时作用于 Live2D 与 CanvasNest,优先级高于单项配置)\n# 是否允许在移动端/窄屏加载\nNUXT_PUBLIC_EFFECTS_MOBILE_ENABLED=false\n# 最小加载宽度(像素)\nNUXT_PUBLIC_EFFECTS_MIN_WIDTH=768\n# 在省流量/低速网络下是否禁用\nNUXT_PUBLIC_EFFECTS_DATA_SAVER_BLOCK=true\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 测试模式 (自动化测试使用)\nNUXT_PUBLIC_TEST_MODE=false\n\n# 部署状态监控 (可选)\n# SENTRY_AUTH_TOKEN=\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}, "a50c722e8be203835b3a4df8ed04aabe2485add5": {"t": 1785749552.8710978, "n": 7729, "h": "40a1e48eaa3752c0", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL (用于生成 sitemap.xml)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL (通常与 SITE_URL 相同)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini, siliconflow)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能 (true/false)\nASR_ENABLED=true\n# ASR 提供商 (siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置 (适用于 SiliconFlow 等)\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# 豆包语音识别 (Volcengine) 配置(当 ASR_PROVIDER=volcengine 时)\n# APP ID(建连 Header: X-Api-App-Key)\nASR_VOLCENGINE_APP_ID=\n# Access Key(建连 Header: X-Api-Access-Key)\nASR_VOLCENGINE_ACCESS_KEY=\n# 资源 ID(建连 Header: X-Api-Resource-Id)\n# 推荐:volc.seedasr.sauc.duration(小时版)\n# 可选:volc.seedasr.sauc.concurrent(并发版)\n# 也可复用 ASR_MODEL 作为资源 ID\nASR_VOLCENGINE_CLUSTER_ID=\n\n# 接口地址(可选)\n# 双向流式优化版:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n# 流式输入模式:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_nostream\n# ASR_ENDPOINT=wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n\n# 火山引擎 (豆包语音) 配置 (用于 volcengine 驱动的 ASR 或 高级 TTS/AI)\n# VOLCENGINE_APP_ID=\n# VOLCENGINE_ACCESS_KEY=\n# VOLCENGINE_SECRET_KEY=\n\n# 短信/手机验证码有效时间(秒)\n# PHONE_EXPIRES_IN=300\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# Live2D 看板娘配置 (可选)\n# 是否启用 Live2D\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# Live2D 资源根路径(建议以 /dist/ 结尾)\nNUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# waifu-tips.json 地址(留空时将根据 script_url 自动推导)\nNUXT_PUBLIC_LIVE2D_MODEL_URL=\n# 高级覆盖配置(JSON 字符串)\n# 示例:{\"modelId\":0,\"tools\":[\"hitokoto\",\"switch-model\",\"switch-texture\",\"photo\",\"info\",\"quit\"],\"drag\":false,\"logLevel\":\"warn\"}\nNUXT_PUBLIC_LIVE2D_OPTIONS_JSON=\n# 是否允许在移动端/窄屏加载\nNUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# 最小加载宽度(像素)\nNUXT_PUBLIC_LIVE2D_MIN_WIDTH=768\n# 在省流量/低速网络下是否禁用\nNUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 测试模式 (自动化测试使用)\nNUXT_PUBLIC_TEST_MODE=false\n\n# 部署状态监控 (可选)\n# SENTRY_AUTH_TOKEN=\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}, "24eb965fc96678047835108dbbf1d9c7bcb8e353": {"t": 1785749553.9767263, "n": 7730, "h": "da96fd89acd4e6f8", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL (用于生成 sitemap.xml)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL (通常与 SITE_URL 相同)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini, siliconflow)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能 (true/false)\nASR_ENABLED=true\n# ASR 提供商 (siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置 (适用于 SiliconFlow 等)\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# 豆包语音识别 (Volcengine) 配置(当 ASR_PROVIDER=volcengine 时)\n# APP ID(建连 Header: X-Api-App-Key)\nASR_VOLCENGINE_APP_ID=\n# Access Key(建连 Header: X-Api-Access-Key)\nASR_VOLCENGINE_ACCESS_KEY=\n# 资源 ID(建连 Header: X-Api-Resource-Id)\n# 推荐:volc.seedasr.sauc.duration(小时版)\n# 可选:volc.seedasr.sauc.concurrent(并发版)\n# 也可复用 ASR_MODEL 作为资源 ID\nASR_VOLCENGINE_CLUSTER_ID=\n\n# 接口地址(可选)\n# 双向流式优化版:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n# 流式输入模式:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_nostream\n# ASR_ENDPOINT=wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n\n# 火山引擎 (豆包语音) 配置 (用于 volcengine 驱动的 ASR 或 高级 TTS/AI)\n# VOLCENGINE_APP_ID=\n# VOLCENGINE_ACCESS_KEY=\n# VOLCENGINE_SECRET_KEY=\n\n# 短信/手机验证码有效时间(秒)\n# PHONE_EXPIRES_IN=300\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# Live2D 看板娘配置 (可选)\n# 是否启用 Live2D\nNUXT_PUBLIC_LIVE2D_ENABLED=false\n# Live2D 资源根路径(建议以 /dist/ 结尾)\nNUXT_PUBLIC_LIVE2D_SCRIPT_URL=https://unpkg.com/live2d-widgets@1.0.0/dist/\n# waifu-tips.json 地址(留空时将根据 script_url 自动推导)\nNUXT_PUBLIC_LIVE2D_MODEL_URL=\n# 高级覆盖配置(JSON 字符串)\n# 示例:{\"modelId\":0,\"tools\":[\"hitokoto\",\"switch-model\",\"switch-texture\",\"photo\",\"info\",\"quit\"],\"drag\":false,\"logLevel\":\"warn\"}\nNUXT_PUBLIC_LIVE2D_OPTIONS_JSON=\n# 是否允许在移动端/窄屏加载\nNUXT_PUBLIC_LIVE2D_MOBILE_ENABLED=false\n# 最小加载宽度(像素)\nNUXT_PUBLIC_LIVE2D_MIN_WIDTH=1024\n# 在省流量/低速网络下是否禁用\nNUXT_PUBLIC_LIVE2D_DATA_SAVER_BLOCK=true\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 测试模式 (自动化测试使用)\nNUXT_PUBLIC_TEST_MODE=false\n\n# 部署状态监控 (可选)\n# SENTRY_AUTH_TOKEN=\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}, "f2bb9f52f8ae5ecb0252a5479c0f90fed565e45e": {"t": 1785749555.2422523, "n": 7144, "h": "eb23723b297972e7", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL (用于生成 sitemap.xml)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL (通常与 SITE_URL 相同)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini, siliconflow)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能 (true/false)\nASR_ENABLED=true\n# ASR 提供商 (siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置 (适用于 SiliconFlow 等)\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# 豆包语音识别 (Volcengine) 配置(当 ASR_PROVIDER=volcengine 时)\n# APP ID(建连 Header: X-Api-App-Key)\nASR_VOLCENGINE_APP_ID=\n# Access Key(建连 Header: X-Api-Access-Key)\nASR_VOLCENGINE_ACCESS_KEY=\n# 资源 ID(建连 Header: X-Api-Resource-Id)\n# 推荐:volc.seedasr.sauc.duration(小时版)\n# 可选:volc.seedasr.sauc.concurrent(并发版)\n# 也可复用 ASR_MODEL 作为资源 ID\nASR_VOLCENGINE_CLUSTER_ID=\n\n# 接口地址(可选)\n# 双向流式优化版:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n# 流式输入模式:wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_nostream\n# ASR_ENDPOINT=wss://openspeech.bytedance.com/api/v3/sauc/bigmodel_async\n\n# 火山引擎 (豆包语音) 配置 (用于 volcengine 驱动的 ASR 或 高级 TTS/AI)\n# VOLCENGINE_APP_ID=\n# VOLCENGINE_ACCESS_KEY=\n# VOLCENGINE_SECRET_KEY=\n\n# 短信/手机验证码有效时间(秒)\n# PHONE_EXPIRES_IN=300\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 测试模式 (自动化测试使用)\nNUXT_PUBLIC_TEST_MODE=false\n\n# 部署状态监控 (可选)\n# SENTRY_AUTH_TOKEN=\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}, "cffc6ec974c8b790b8fd9e3a01703eaca54b1485": {"t": 1785749557.3507004, "n": 6573, "h": "a4333c707e03e0e6", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL (用于生成 sitemap.xml)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL (通常与 SITE_URL 相同)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini, siliconflow)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能 (true/false)\nASR_ENABLED=true\n# ASR 提供商 (siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置 (适用于 SiliconFlow 等)\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# 火山引擎 (豆包语音) 配置 (用于 volcengine 驱动的 ASR 或 高级 TTS/AI)\n# VOLCENGINE_APP_ID=\n# VOLCENGINE_ACCESS_KEY=\n# VOLCENGINE_SECRET_KEY=\n\n# 短信/手机验证码有效时间(秒)\n# PHONE_EXPIRES_IN=300\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 测试模式 (自动化测试使用)\nNUXT_PUBLIC_TEST_MODE=false\n\n# 部署状态监控 (可选)\n# SENTRY_AUTH_TOKEN=\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}, "0ba9506fa0a4b7843ec278486c2796039b9db23c": {"t": 1785749558.6250517, "n": 6525, "h": "f28d986ef697b941", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL (用于生成 sitemap.xml)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL (通常与 SITE_URL 相同)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow, volcengine)\nTTS_PROVIDER=openai\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=true\n# ASR 提供商 (siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置 (适用于 SiliconFlow 等)\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# 火山引擎 (豆包语音) 常用配置 (用于 ASR 或 高级 TTS)\n# VOLCENGINE_APP_ID=\n# VOLCENGINE_ACCESS_KEY=\n# VOLCENGINE_SECRET_KEY=\n\n# ASR 专用火山引擎配置 (可选,若不配置则复用上方全局配置)\n# ASR_VOLCENGINE_APP_ID=\n# ASR_VOLCENGINE_ACCESS_KEY=\n# ASR_VOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}, "4cef44bebe05722e72eb6ddeaa88b2acd500d595": {"t": 1785749560.7741797, "n": 6513, "h": "b4f9c772f87e43cb", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL (用于生成 sitemap.xml)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL (通常与 SITE_URL 相同)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow)\nTTS_PROVIDER=openai\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# 是否启用 ASR 功能\nASR_ENABLED=true\n# ASR 提供商 (siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# ASR 通用配置 (适用于 SiliconFlow 等)\nASR_API_KEY=\nASR_MODEL=FunAudioLLM/SenseVoiceSmall\nASR_ENDPOINT=\n\n# 火山引擎 (豆包语音) 常用配置 (用于 ASR 或 高级 TTS)\n# VOLCENGINE_APP_ID=\n# VOLCENGINE_ACCESS_KEY=\n# VOLCENGINE_SECRET_KEY=\n\n# ASR 专用火山引擎配置 (可选,若不配置则复用上方全局配置)\n# ASR_VOLCENGINE_APP_ID=\n# ASR_VOLCENGINE_ACCESS_KEY=\n# ASR_VOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}, "060b07c3077c1e70dc7f25fae7b71322014a5363": {"t": 1785749561.8686094, "n": 6486, "h": "720af00447cf881c", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL (用于生成 sitemap.xml)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL (通常与 SITE_URL 相同)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS 提供商 (openai, siliconflow)\nTTS_PROVIDER=openai\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# ASR 提供商 (siliconflow, volcengine)\nASR_PROVIDER=siliconflow\n# SiliconFlow ASR 配置\n# ASR_SILICONFLOW_API_KEY=\n# ASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 (豆包语音) 常用配置 (用于 ASR 或 高级 TTS)\n# VOLCENGINE_APP_ID=\n# VOLCENGINE_ACCESS_KEY=\n# VOLCENGINE_SECRET_KEY=\n\n# ASR 专用火山引擎配置 (可选,若不配置则复用上方全局配置)\n# ASR_VOLCENGINE_APP_ID=\n# ASR_VOLCENGINE_ACCESS_KEY=\n# ASR_VOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}, "1e008089cf5b439813f637a65ec321ebe5853055": {"t": 1785749562.936131, "n": 6373, "h": "1dfb480ab6f07d42", "c": "# ==========================================\n# 墨梅博客 (Momei) 环境变量完整示例文件\n# ==========================================\n\n# ------------------------------------------\n# 1. 基础核心配置 (Essential)\n# ------------------------------------------\n\n# 应用名称\nNUXT_PUBLIC_APP_NAME=墨梅博客\n\n# 站点 URL (用于生成 sitemap.xml)\nNUXT_PUBLIC_SITE_URL=http://localhost:3000\n\n# Better Auth 的基础 URL (通常与 SITE_URL 相同)\nNUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000\n\n# 用于加密、签名和哈希的密钥。生产环境必须设置!\n# 可以使用 `openssl rand -hex 32` 生成。开发环境下会自动生成随机值。\nAUTH_SECRET=\n\n# 雪花算法机器 ID (0-1023),用于生成分布式唯一 ID。默认自动获取进程 PID\n# MACHINE_ID=\n\n# ------------------------------------------\n# 2. 数据库配置 (Database)\n# ------------------------------------------\n\n# 数据库连接 URL (SQLite, MySQL, PostgreSQL)\n# 支持智能推断:\n# - SQLite (推荐): sqlite://database/momei.sqlite (或 file://database/momei.sqlite)\n# - MySQL: mysql://user:pass@host:3306/db\n# - PostgreSQL: postgres://user:pass@host:5432/db\n# 如果未配置,默认将使用本地 SQLite (database/momei.sqlite)\nDATABASE_URL=sqlite://database/momei.sqlite\n\n# 手动指定数据库类型 (sqlite, mysql, postgres)\n# DATABASE_TYPE=sqlite\n\n# SQLite 数据库路径 (兼容旧版,不推荐使用)\n# DATABASE_PATH=database/momei.sqlite\n\n# 数据库高级配置 (可选)\n# DATABASE_SSL=false\n# DATABASE_CHARSET=utf8_general_ci\n# DATABASE_TIMEZONE=local\n# DATABASE_ENTITY_PREFIX=momei_\n# DATABASE_SYNCHRONIZE=false\n\n# Redis 连接地址 (可选,用于缓存或限流)\n# REDIS_URL=\n\n# ------------------------------------------\n# 3. 社交登录配置 (Social Auth)\n# ------------------------------------------\n\n# GitHub 配置\nNUXT_PUBLIC_GITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Google 配置\nNUXT_PUBLIC_GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# 是否启用匿名登录 (无需邮箱密码即可登录)\nANONYMOUS_LOGIN_ENABLED=false\n\n# ------------------------------------------\n# 4. AI 辅助功能 (AI Integration)\n# ------------------------------------------\n\n# AI 提供商 (openai, anthropic)\nAI_PROVIDER=openai\n# API 密钥。配置后将自动激活 AI 功能。\nAI_API_KEY=\n# 默认模型名称 (如 gpt-4o, claude-3-5-sonnet, deepseek-chat)\nAI_MODEL=gpt-4o\n# API 代理端点 (可选,用于 OpenAI 兼容服务)\nAI_API_ENDPOINT=\n\n# AI 图像生成配置 (AI Image)\n# 是否启用 AI 图像生成\nAI_IMAGE_ENABLED=false\n# AI 图像提供商 (openai, stable-diffusion, doubao, gemini)\nAI_IMAGE_PROVIDER=openai\n# AI 图像 API 密钥 (可选,默认复用 AI_API_KEY)\nAI_IMAGE_API_KEY=\n# AI 图像模型名称 (如 dall-e-3, sd-v1-5)\nAI_IMAGE_MODEL=dall-e-3\n# AI 图像 API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nAI_IMAGE_ENDPOINT=\n\n# AI 生成参数控制 (可选)\n# AI_MAX_TOKENS=2048\n# AI_TEMPERATURE=0.7\n# AI_MAX_CONTENT_LENGTH=50000\n# AI_CHUNK_SIZE=4000\n\n# ------------------------------------------\n# 5. AI 语音与语音识别 (AI Voice & Speech)\n# ------------------------------------------\n\n# TTS (文本转语音) 配置\n# 是否启用 TTS 功能\nTTS_ENABLED=false\n# TTS API 密钥 (可选,默认复用 AI_API_KEY)\nTTS_API_KEY=\n# TTS API 代理端点 (可选,默认复用 AI_API_ENDPOINT)\nTTS_ENDPOINT=\n# 默认 TTS 模型 (如 tts-1)\nTTS_DEFAULT_MODEL=tts-1\n# 默认 TTS 声音 (如 alloy, echo, fable, onyx, nova, shimmer)\nTTS_DEFAULT_VOICE=alloy\n\n# SiliconFlow 专用 TTS 配置 (如果提供商选择 siliconflow)\n# SILICONFLOW_API_KEY=\n# SILICONFLOW_ENDPOINT=https://api.siliconflow.cn/v1\n# SILICONFLOW_TTS_MODEL=fishaudio/fish-speech-1.4\n\n# ASR (语音识别) 配置\n# SiliconFlow ASR 配置\n# ASR_SILICONFLOW_API_KEY=\n# ASR_SILICONFLOW_MODEL=FunAudioLLM/SenseVoiceSmall\n\n# 火山引擎 (豆包语音) 常用配置 (用于 ASR 或 高级 TTS)\n# VOLCENGINE_APP_ID=\n# VOLCENGINE_ACCESS_KEY=\n# VOLCENGINE_SECRET_KEY=\n\n# ASR 专用火山引擎配置 (可选,若不配置则复用上方全局配置)\n# ASR_VOLCENGINE_APP_ID=\n# ASR_VOLCENGINE_ACCESS_KEY=\n# ASR_VOLCENGINE_SECRET_KEY=\n\n# ------------------------------------------\n# 6. 站点管理与统计 (Analytics & Management)\n# ------------------------------------------\n\n# 管理员用户 ID 列表,使用逗号分隔 (注册后在此处指定 ID 提权)\nADMIN_USER_IDS=\n\n# 联系邮箱\nNUXT_PUBLIC_CONTACT_EMAIL=admin@example.com\n\n# 站点运营方名称 (显示在页脚)\n# NUXT_PUBLIC_SITE_OPERATOR=\n\n# 默认文章版权声明\n# NUXT_PUBLIC_DEFAULT_COPYRIGHT=all-rights-reserved\n\n# Microsoft Clarity 配置 (可选)\nNUXT_PUBLIC_CLARITY_PROJECT_ID=\n\n# 百度统计 ID (可选)\nNUXT_PUBLIC_BAIDU_ANALYTICS_ID=\n\n# Google Analytics ID (可选)\nNUXT_PUBLIC_GOOGLE_ANALYTICS_ID=\n\n# 站点验证 (可选)\n# NUXT_PUBLIC_GOOGLE_SITE_VERIFICATION=\n# NUXT_PUBLIC_BING_SITE_VERIFICATION=\n\n# Sentry 监控 (可选)\nNUXT_PUBLIC_SENTRY_DSN=\nNUXT_PUBLIC_SENTRY_ENVIRONMENT=production\n\n# ------------------------------------------\n# 7. 邮件服务配置 (Email Service)\n# ------------------------------------------\n\n# SMTP 服务器配置\nEMAIL_HOST=\nEMAIL_PORT=587\nEMAIL_SECURE=false\nEMAIL_USER=\nEMAIL_PASS=\n# 默认邮件发送者 (格式: \"Name\" <email@example.com>)\nEMAIL_FROM=\n\n# 邮件限流与时长过长控制 (可选)\n# EMAIL_DAILY_LIMIT=100\n# EMAIL_SINGLE_USER_DAILY_LIMIT=5\n# EMAIL_LIMIT_WINDOW=86400\n# EMAIL_EXPIRES_IN=300\n\n# 匿名/临时邮箱域名配置\n# ANONYMOUS_EMAIL_DOMAIN_NAME=anonymous.com\n# TEMP_EMAIL_DOMAIN_NAME=example.com\n\n# 是否强制要求验证邮箱后才能登录\nEMAIL_REQUIRE_VERIFICATION=false\n\n# ------------------------------------------\n# 8. 文件存储与上传 (Storage & Upload)\n# ------------------------------------------\n\n# 存储类型 (s3, local)\nSTORAGE_TYPE=local\n\n# 本地存储路径 (仅 local 模式使用)\n# LOCAL_STORAGE_DIR=public/uploads\n# NUXT_PUBLIC_LOCAL_STORAGE_BASE_URL=/uploads\n\n# S3 兼容存储配置 (仅 s3 模式使用,如 Cloudflare R2)\n# S3_ENDPOINT=\n# S3_REGION=auto\n# S3_ACCESS_KEY_ID=\n# S3_SECRET_ACCESS_KEY=\n# S3_BUCKET_NAME=\n# S3_BASE_URL=\n# BUCKET_PREFIX=\n\n# Vercel Blob 存储配置 (仅 vercel-blob 模式使用)\n# VERCEL_BLOB_TOKEN=\n# BLOB_READ_WRITE_TOKEN=\n\n# 最大允许上传的常规文件大小,默认 4.5 MiB\nNUXT_PUBLIC_MAX_UPLOAD_SIZE=4.5MiB\n\n# 最大允许上传的音频大小,默认 100 MiB\nNUXT_PUBLIC_MAX_AUDIO_UPLOAD_SIZE=100MiB\n\n# 上传文件限制 (可选)\n# UPLOAD_LIMIT_WINDOW=86400\n# UPLOAD_DAILY_LIMIT=100\n# UPLOAD_SINGLE_USER_DAILY_LIMIT=5\n# LOCAL_STORAGE_MIN_FREE_SPACE=104857600\n\n# ------------------------------------------\n# 9. 合规、安全与验证码 (Compliance & Safety)\n# ------------------------------------------\n\n# 备案信息 (仅中国大陆)\nNUXT_PUBLIC_SHOW_COMPLIANCE_INFO=false\nNUXT_PUBLIC_ICP_LICENSE_NUMBER=\nNUXT_PUBLIC_PUBLIC_SECURITY_NUMBER=\n\n# 验证码 (Captcha) 提供者:cloudflare-turnstile, google-recaptcha, hcaptcha, captchafox\nNUXT_PUBLIC_AUTH_CAPTCHA_PROVIDER=\nNUXT_PUBLIC_AUTH_CAPTCHA_SITE_KEY=\nAUTH_CAPTCHA_SECRET_KEY=\n\n# 外部资源(图片等)域名白名单\n# NUXT_PUBLIC_SECURITY_URL_WHITELIST=images.unsplash.com,cdn.pixabay.com\n\n# ------------------------------------------\n# 10. 日志、调试与 Demo 模式 (Logging & Debug)\n# ------------------------------------------\n\n# 日志等级 (silly, debug, http, info, warn, error)\nLOG_LEVEL=http\n# 是否写入日志到文件 (Serverless 环境建议设为 false)\nLOGFILES=false\n# LOG_DIR=logs\n\n# Axiom 日志集成 (可选)\n# AXIOM_DATASET_NAME=\n# AXIOM_API_TOKEN=\n\n# Demo 模式开关 (开启后将限制某些敏感操作)\nNUXT_PUBLIC_DEMO_MODE=false\n# Demo 账号配置\n# NUXT_PUBLIC_DEMO_USER_EMAIL=admin@example.com\n# NUXT_PUBLIC_DEMO_PASSWORD=momei123456\n\n# 已初始化标志,设置后将不再显示初始化引导页面\nMOMEI_INSTALLED=true\n"}}}}