ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OmniRoute 完整卸载指南:保留数据与彻底清除的多种方式详解

OmniRoute 完整卸载指南:保留数据与彻底清除的多种方式详解 OmniRoute 完整卸载指南保留数据与彻底清除的多种方式详解【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 352 providers (150 free), 1200 models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline Copilot. Quota-aware auto-fallback, RTKCaveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550 contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRouteOmniRoute 是一个单端点接入、支持 350 Provider 与 1200 模型的免费 MIT AI 网关用户往往会在本机、容器乃至桌面端同时部署它的多个实例。本指南基于仓库官方卸载文档整理系统讲解从 v3.6.2 起内置的两条卸载命令、按安装方式npm/pnpm 全局、Docker、Docker Compose、Electron 桌面端、源码克隆对应的手动卸载步骤以及数据目录结构与卸载完成后的彻底核查方法帮助你根据“是否保留配置与数据库”的实际需求选择正确的清理路径。一、快速卸载v3.6.2两条内置命令从 v3.6.2 开始OmniRoute 提供两个内置脚本分别对应“保留数据”与“彻底清除”两种卸载语义对应的 npm scripts 定义在 package.jsonuninstall: node scripts/build/uninstall.mjs, uninstall:full: node scripts/build/uninstall.mjs --full,保留数据的卸载npm run uninstall该命令移除 OmniRoute 应用本身但保留位于~/.omniroute/下的数据库、配置文件、API Key 与 Provider 设置。适用于“之后还会重装、希望沿用现有配置”的场景——卸载后随时可以重新安装并直接恢复原来的全部 Provider 连接。彻底清除不可逆npm run uninstall:full该命令在卸载应用的同时永久删除以下全部数据主数据库storage.sqliteProvider 配置与 API Key备份文件日志文件~/.omniroute/目录下的所有文件⚠️警告npm run uninstall:full不可逆。所有 Provider 连接、组合combos、API Key 与使用历史都会被永久删除操作前请务必确认。脚本背后的实现逻辑这两个命令实际执行的是 scripts/build/uninstall.mjs脚本核心流程如下可作为理解两者差异的源码依据清理后台 PM2 进程尝试执行pm2 delete omniroute若 PM2 未安装或进程不存在则静默跳过按--full参数决定数据目录处置数据目录通过process.env.DATA_DIR || path.join(os.homedir(), .omniroute)解析与文档描述一致传入--full时执行fs.rmSync(dataDir, { recursive: true, force: true })递归删除整个数据目录未传入时仅打印Keeping data files at dataDir intact数据原样保留调用 npm 全局卸载执行npm uninstall -g omniroute并通过OMNIROUTE_SKIP_UNINSTALL_HOOK1环境变量防止递归触发自身钩子。从源码可见两条命令的唯一差异就是对数据目录的处理这正是“保留数据”与“全量清除”两种模式实现的关键区别。二、按安装方式的手动卸载若你并非通过 npm scripts 卸载或希望精确控制每一步可按照实际的安装方式手动清理。NPM 全局安装# 移除全局包 npm uninstall -g omniroute # 可选删除数据目录 rm -rf ~/.omniroute注本文涉及的rm -rf均针对 OmniRoute 自己的数据目录或克隆目录操作前请再次确认路径正确。pnpm 全局安装pnpm uninstall -g omniroute rm -rf ~/.omnirouteDocker单容器# 停止并删除容器 docker stop omniroute docker rm omniroute # 删除数据卷会清除全部数据 docker volume rm omniroute-data # 可选删除镜像 docker rmi diegosouzapw/omniroute:latest关于容器内数据目录的挂载约定可参考 docker-compose.yml 中的DATA_DIR/app/data注释——“必须与下方的数据卷挂载保持一致”即容器内/app/data映射到宿主机./data目录因此删除容器后数据卷需要单独清理。Docker Compose# 停止并移除容器保留数据卷 docker compose down # 同时删除数据卷清除全部数据 docker compose down -v两者差异在于-v参数不带-v的docker compose down只移除容器与网络数据卷中的数据库与配置仍然保留只有加上-v才会连卷一并删除。注意仓库的 compose 配置中除主数据卷外还声明了 codex 认证令牌等附加卷见 docker-compose.yml如需彻底清理也应对照 compose 文件逐个确认。Electron 桌面应用Windows打开设置 → 应用 → OmniRoute → 卸载或在安装目录中直接运行 NSIS 卸载程序macOS将/Applications中的OmniRoute.app拖入废纸篓删除数据rm -rf ~/Library/Application Support/omnirouteLinux删除 AppImage 文件删除数据rm -rf ~/.omniroute桌面端相关的进程管理与窗口实现可参考仓库 electron/main.js其中包含了窗口、登录管理与进程树electron/processTree.js等逻辑卸载时应确保相关后台进程已退出。源码克隆安装git clone# 删除克隆目录 rm -rf /path/to/omniroute # 可选删除数据目录 rm -rf ~/.omniroute源码部署场景下应用本身与数据完全分离克隆目录内只是代码与依赖真实数据仍存放在用户目录下的.omniroute/中因此二者需要分别清理。三、数据目录结构与平台差异OmniRoute 默认将数据存放在以下位置并统一支持DATA_DIR环境变量覆盖平台默认路径覆盖方式Linux~/.omniroute/DATA_DIR环境变量macOS~/.omniroute/DATA_DIR环境变量Windows%APPDATA%/omniroute/DATA_DIR环境变量Docker/app/data/挂载卷DATA_DIR环境变量XDG 兼容环境$XDG_CONFIG_HOME/omniroute/XDG_CONFIG_HOME环境变量这套路径解析逻辑在源码中有完整的实现依据见 src/lib/dataPaths.ts若DATA_DIR显式配置优先使用resolveDataDir中的process.env.DATA_DIR分支在 Windows 上默认使用%APPDATA%\omniroute在 Linux/macOS 上若显式配置了XDG_CONFIG_HOME则使用$XDG_CONFIG_HOME/omniroute其余情况回退到传统路径~/.omniroute/若磁盘上的传统路径已存在如 Windows 迁移场景会保留该路径以避免升级造成数据丢失。值得留意的是卸载脚本 scripts/build/uninstall.mjs 同样遵循DATA_DIR || ~/.omniroute的解析规则也就是说如果你曾经用DATA_DIR把数据放在其他位置那么全量卸载删除的也是该位置而不是默认目录——清理前请确认当前生效的DATA_DIR值。数据目录中的文件文件/目录说明storage.sqlite主数据库Provider、组合、设置、密钥storage.sqlite-walSQLite 预写日志临时文件storage.sqlite-shmSQLite 共享内存临时文件call_logs/请求负载归档backups/自动数据库备份log.txt旧版请求日志可选这些文件在仓库中的实际引用可以帮助你理解它们的用途主数据库路径~/.omniroute/storage.sqlite出现在存储健康检查接口 src/app/api/storage/health/route.ts 中path.join(dataDir, storage.sqlite)同时该接口还读取备份目录源码中为db_backups/并统计db_*.sqlite备份文件数量与文档描述的“自动数据库备份”相互印证call_logs/作为请求负载归档目录在 src/lib/usage/callLogArtifacts.ts 中通过DATA_DIR/call_logs解析并在仪表盘日志清理功能中明确指出会“清除DATA_DIR/call_logs下的本地归档文件”见 src/app/(dashboard)/dashboard/logs/page.tsx/dashboard/logs/page.tsx#L232)SQLite 的-wal/-shm是数据库引擎的临时伴生文件若应用非正常退出可能残留全量卸载会一并清除。四、卸载完成后的彻底核查卸载完成后建议按以下命令确认系统已无残留# 检查全局 npm 包是否还存在 npm list -g omniroute 2/dev/null # 检查数据目录是否存在 ls -la ~/.omniroute/ 2/dev/null # 检查是否有仍在运行的进程 pgrep -f omniroute如果仍有进程在运行先将其停止pkill -f omniroute提醒上述检查命令基于 Linux/macOS 环境。若使用 Windows 卸载可依次检查“应用与功能”列表中是否还有 OmniRoute、%APPDATA%\omniroute目录是否已删除并在任务管理器中确认没有残留进程。结合 scripts/build/uninstall.mjs 的实现npm run uninstall已经替你处理了 PM2 进程删除与 npm 全局包移除因此“快速卸载”路径下只需额外核查数据目录即可而手动卸载路径则建议完整执行本节的全部检查步骤。五、卸载决策速查场景推荐命令是否保留数据暂别 OmniRoute之后可能重装npm run uninstall保留数据库、配置、Key彻底离开需清除所有痕迹npm run uninstall:full全部清除不可逆Docker 部署仅移除容器docker compose down保留数据卷Docker 部署连数据一起删docker compose down -v清除手动清理任意安装方式按上节对应命令执行视是否删除数据目录而定六、相关文档与源码索引卸载指南英文原版docs/guides/UNINSTALL.md卸载脚本实现scripts/build/uninstall.mjsnpm scripts 定义package.json数据目录解析逻辑src/lib/dataPaths.tsDocker Compose 数据卷配置docker-compose.yml存储健康检查与备份目录src/app/api/storage/health/route.ts调用日志归档目录src/lib/usage/callLogArtifacts.ts桌面端主进程electron/main.js【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 352 providers (150 free), 1200 models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline Copilot. Quota-aware auto-fallback, RTKCaveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550 contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表