FreeLLMAPI 无弹窗运维
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_97acf6d1/freellmapi-server。
技能介绍
要解决什么问题
FreeLLMAPI 作为本地 LLM 代理网关,在 Windows 上长期跑不稳:npm install 可能因 better-sqlite3 原生编译失败而中断、React 面板未构建导致 client/dist/index.html 缺失、进程崩溃后无人拉起。另一个痛点是登录 Windows 后弹出的黑色 CMD 窗口——旧的 .cmd 启动脚本每次开机都会闪一下。这个技能把进程守护、崩溃恢复、静默启动三件事整理成一套可复用的运维流程。
核心能力与关键步骤
PM2 进程守护:通过 ecosystem.config.cjs 启动服务,进程崩溃时按指数退避自动重启。注意不要在 ecosystem 配置里设 NODE_ENV=production,否则服务端强制要求 64 字符 hex 的 ENCRYPTION_KEY,缺失就直接拒绝启动。
开机复活:pm2 save 把进程列表写入 ~/.pm2/dump.pm2,守护进程重启后执行 pm2 resurrect 即可恢复。Windows 没有 init 系统,pm2 startup 不可用,改用 Startup 文件夹里的 VBS 脚本,用 Run(..., 0, False) 做到完全隐藏窗口。
密钥管理:ENCRYPTION_KEY 以 AES-GCM 加密 api_keys 表里的上游凭据。一旦数据落库再更换 key,所有加密的 API key 都会失效,只能去面板重新录入。
适用边界与注意点
- 443 端口桥接不归 PM2 管:Codex WSS bridge 需要管理员权限,只能通过 PowerShell
RunAs手动拉起,进程消失后没有自动恢复机制。 - 系统代理是头号杀手:Windows 系统代理会劫持 DNS 解析,绕过本地 hosts 和 bridge,agent 域名必须全部加进
ProxyOverride,改完要重启 agent 进程才生效。 - 统一 key 会静默轮换:账号体系启用后
unified_api_key可能失效,客户端一律使用账号在面板生成的 API key。 - 本技能仅覆盖 PM2 运维环节,不涉及上游 provider 的路由策略与限流配置。
使用场景
- 每次登录Windows时,旧的CMD启动脚本弹出黑色窗口遮挡桌面,需要改用VBS脚本实现FreeLLMAPI的静默启动。
- 准备更新FreeLLMAPI配置时手动结束进程触发PM2瞬间重启,导致新配置失效并报错EADDRINUSE,需要掌握正确的PM2停止流程。
- Claude Code等AI编程工具频繁出现超时或401报错,需排查Windows系统代理劫持了本地DNS解析并配置ProxyOverride白名单。
- 电脑睡眠唤醒后发现PM2守护进程重启且FreeLLMAPI停止运行,需要执行resurrect命令从dump文件中恢复进程列表。
适合人员
- 在Windows上自建LLM网关的后端工程师,需要保证本地服务长期稳定运行并解决开机弹窗问题。
- 依赖命令行AI编程工具的全栈开发者,需要在遇到代理劫持或超时报错时快速恢复工具链连接。
- 负责团队内部模型路由与代理服务的运维工程师,需要规范PM2进程管理并排查数据库加密密钥变更导致的故障。