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/OmniRoute本指南讲解如何从系统中彻底、干净地卸载 OmniRoute——这个统一 AI 网关一个端点聚合 356 家提供商、支持 RTKCaveman 压缩、自动故障转移与 MCP/A2A 集成。文章完整覆盖官方内置的快速卸载脚本保留数据与全量清除两种模式、NPM/pnpm/Docker/Docker Compose/Electron/源码安装六种部署形态的手动卸载路径以及数据目录的默认位置、目录内各文件的用途、移除后的残留验证方法与进程清理命令。读完你不仅能按需选择留数据或全清空还能从源码层面理解卸载脚本的执行顺序与DATA_DIR覆盖规则。一、快速卸载v3.6.2内置两条官方脚本OmniRoute 自 v3.6.2 起在 package.json 中提供了两条官方卸载脚本分别对应保留数据与全量清除两种场景uninstall: node scripts/build/uninstall.mjs, uninstall:full: node scripts/build/uninstall.mjs --full,1.1 保留数据模式npm run uninstallnpm run uninstall该命令移除 OmniRoute 应用本体但保留~/.omniroute/目录下的数据库、配置文件、API Key 与提供商设置。适合计划日后重装、希望保留既有配置与用量历史的用户。从 scripts/build/uninstall.mjs 的实现可以看到此模式下的执行顺序为若存在 PM2 后台进程先执行pm2 delete omniroute停止并移除后台常驻进程保持数据目录原样不动打印Keeping data files ... intact通过嵌套执行npm uninstall -g omniroute移除全局 npm 包脚本会通过OMNIROUTE_SKIP_UNINSTALL_HOOK1环境变量防止自身被 npm 生命周期钩子递归触发uninstallAlreadyInProgress判定逻辑避免卸载循环。1.2 全量清除模式npm run uninstall:fullnpm run uninstall:full该命令在移除应用的同时永久擦除以下全部数据主数据库storage.sqlite提供商配置与 API Keybackups/备份文件日志文件~/.omniroute/目录下的所有内容脚本通过args.includes(--full)识别全量模式此时会先移除 PM2 进程再用fs.rmSync(dataDir, { recursive: true, force: true })递归删除整个数据目录最后才执行全局包的卸载。⚠️警告npm run uninstall:full不可逆。你的全部提供商连接、组合combo、API Key 与用量历史将被永久删除。执行前请确认已不再需要其中任何数据。二、手动卸载按部署形态逐一清理如果你无法使用内置脚本例如版本早于 v3.6.2或希望逐项手动控制可按下述六种部署形态分别操作。2.1 npm 全局安装# 移除全局包 npm uninstall -g omniroute # 可选移除数据目录 rm -rf ~/.omniroute2.2 pnpm 全局安装pnpm uninstall -g omniroute rm -rf ~/.omniroute2.3 Docker# 停止并移除容器 docker stop omniroute docker rm omniroute # 移除数据卷删除全部数据 docker volume rm omniroute-data # 可选移除镜像 docker rmi diegosouzapw/omniroute:latest需要说明的是官方 docs/guides/DOCKER_GUIDE.md 推荐的数据持久化方式即是通过命名卷omniroute-data挂载到容器内/app/datadocker run -v omniroute-data:/app/data ...。因此只要不删除该卷即使容器与镜像被移除你的数据库、Key 与配置依然留在卷中重装后可复用只有执行docker volume rm omniroute-data才会真正清空数据。2.4 Docker Compose# 停止并移除容器 docker compose down # 同时移除数据卷删除全部数据 docker compose down -v注意两种方式的差别docker compose down只清理容器与网络数据卷保留追加-v才会一并删除卷。当前仓库的 docker-compose.yml 除主应用外还定义了 redis、qdrant、bifrost、cliproxyapi、codex-app-server 等可选 sidecar 服务各自携带独立命名卷如omniroute-redis-data、omniroute-qdrant-data。如果你启用过这些 profile且希望彻底清空可依据docker volume ls的结果单独清理对应卷。2.5 Electron 桌面应用Windows打开设置 → 应用 → OmniRoute → 卸载或从安装目录直接运行 NSIS 卸载器macOS将/Applications下的OmniRoute.app拖入废纸篓移除数据rm -rf ~/Library/Application Support/omnirouteLinux删除 AppImage 文件移除数据rm -rf ~/.omniroute2.6 源码安装git clone# 删除克隆的目录 rm -rf /path/to/omniroute # 可选移除数据目录 rm -rf ~/.omniroute三、数据目录默认位置与覆盖规则OmniRoute 将数据默认存放在以下位置平台默认路径覆盖方式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环境变量3.1 从源码看路径解析规则数据目录的实际解析逻辑位于 src/lib/dataPaths.ts 的resolveDataDir()函数其优先级从高到低为DATA_DIR环境变量若显式设置直接使用process.env.DATA_DIRWindows 平台回落到%APPDATA%/omnirouteprocess.env.APPDATA或AppData/RoamingXDG 兼容在 Linux/macOS 上若显式配置了XDG_CONFIG_HOME则使用$XDG_CONFIG_HOME/omniroute默认路径~/.omniroute即getLegacyDotDataDir()。此外还有一个重要的兼容细节如果旧版遗留目录~/.omniroute已存在getDefaultDataDir()会优先保留该遗留路径以避免升级过程中发生数据丢失例如 Windows 迁移场景。这也意味着——如果你从旧版本升级过卸载时清理~/.omniroute与%APPDATA%/omniroute两个位置都值得检查一下。在 Docker 部署中DATA_DIR/app/data由 docker-compose.yml 的公共配置显式注入environment: - DATA_DIR/app/data # Must match the volume mount below与卷挂载./data:/app/data保持一致。3.2 数据目录中的文件文件/目录说明storage.sqlite主数据库提供商、组合、设置、Keystorage.sqlite-walSQLite 预写日志临时文件storage.sqlite-shmSQLite 共享内存临时文件call_logs/请求负载归档backups/自动数据库备份log.txt旧版请求日志可选其中call_logs/在项目中确实被多处以数据源引用例如 dashboard 的压缩分析CompressionAnalyticsTab.tsx/dashboard/analytics/CompressionAnalyticsTab.tsx)与搜索分析SearchAnalyticsTab.tsx/dashboard/analytics/SearchAnalyticsTab.tsx)均从call_logs读取统计数据。storage.sqlite的 WAL/SHM 伴生文件是 SQLite 预写日志机制的临时产物若进程未完全退出便直接删除数据库文件可能触发数据不一致因此卸载前先确保所有 OmniRoute 进程已停止见下文第四节。四、验证彻底移除与进程清理卸载完成后按以下命令确认系统内已无残留# 检查全局 npm 包是否仍存在 npm list -g omniroute 2/dev/null # 检查数据目录是否仍存在 ls -la ~/.omniroute/ 2/dev/null # 检查是否有运行中的进程 pgrep -f omniroute如果仍有进程在运行先停止它们pkill -f omniroute此外建议结合你的部署形态做补充检查Docker 形态docker ps -a | grep omniroute容器、docker volume ls | grep omniroute数据卷与docker images | grep omniroute镜像三处逐一确认Electron 形态macOS 检查~/Library/Application Support/omnirouteWindows 检查%APPDATA%/omniroute自定义数据目录若你曾通过DATA_DIR指定过自定义路径请按实际路径检查~/.omniroute可能并不存在。五、卸载决策速查你的诉求推荐方式数据去向临时移除、日后重装npm run uninstall保留~/.omniroute/全部数据彻底删除应用与全部数据npm run uninstall:full数据目录被递归清除Docker 只停容器docker stop omniroute卷数据保留Docker 连卷一起删docker volume rm omniroute-data数据永久删除Compose 只拆服务docker compose down卷数据保留Compose 连卷一起拆docker compose down -v数据永久删除选择全量清除前请务必确认不再需要数据库中的提供商连接、组合配置、API Key 与用量历史——uninstall:full与docker compose down -v都是不可逆操作。若只是暂别 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/OmniRoute创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考