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 作为一款统一 AI 网关会在系统中保存数据库、Provider 配置、API Key、自动备份与调用日志等数据。本文基于官方 Uninstall Guide英文原版 及多语言版本如德语版 UNINSTALL.md系统讲解如何彻底、干净地卸载 OmniRoute包括 v3.6.2 提供的内置一键卸载脚本、各安装方式npm/pnpm 全局安装、Docker、Docker Compose、Electron 桌面应用、源码安装下的手动清理步骤、数据目录结构与验证卸载是否完整的方法。读完本文你将掌握保留数据重装与彻底清除两种卸载策略的取舍以及不同平台下的残留文件清理技巧。一、先想清楚保留数据还是彻底删除卸载前必须先明确需求因为两种策略的结果差异巨大计划日后重装、想保留 Provider 配置与 API Key→ 使用保留数据模式确认不再使用、需要抹除所有凭据与使用记录→ 使用彻底清除模式。OmniRoute 的所有用户数据数据库、配置、API Key、Provider 设置默认存放在数据目录Linux/macOS 为~/.omniroute/Windows 为%APPDATA%/omniroute/卸载脚本的操作对象正是这个目录因此两种模式的选择本质上就是是否删除数据目录。二、内置卸载脚本v3.6.2npm run uninstall与npm run uninstall:full从 v3.6.2 开始OmniRoute 在 package.json 中注册了两个内置卸载脚本uninstall: node scripts/build/uninstall.mjs, uninstall:full: node scripts/build/uninstall.mjs --full2.1 保留数据npm run uninstallnpm run uninstall该命令会卸载 OmniRoute 应用本身但完整保留数据目录中的数据库、配置、API Key 和 Provider 设置。适合准备重装、想继续沿用现有配置的用户。2.2 彻底清除npm run uninstall:fullnpm run uninstall:full该命令除卸载应用外会永久删除数据目录中的全部内容主数据库storage.sqliteProvider 配置与 API Key自动备份文件backups/日志文件~/.omniroute/目录下的所有其他文件⚠️警告npm run uninstall:full不可逆。所有 Provider 连接、Combo 组合、API Key 与用量历史将被永久删除执行前请确认已无需要的数据。2.3 脚本内部到底做了什么从卸载脚本 scripts/build/uninstall.mjs 的源码可以看到完整的执行序列终止并移除后台 PM2 进程脚本首先尝试执行pm2 delete omniroute并屏蔽错误输出——即使系统未安装 pm2 或进程不存在也不会报错中断解析数据目录路径process.env.DATA_DIR || path.join(os.homedir(), .omniroute)即优先使用DATA_DIR环境变量与 Docker 部署、自定义目录场景保持一致否则回退到用户主目录下的.omniroute仅在--full模式下删除数据目录使用fs.rmSync(dataDir, { recursive: true, force: true })递归强制删除若目录本身不存在则跳过并提示执行npm uninstall -g omniroute移除全局包通过环境变量OMNIROUTE_SKIP_UNINSTALL_HOOK1避免嵌套触发卸载钩子导致死循环若因权限不足失败会提示可能需要以sudo重试脚本结束后会明确打印结果——保留模式下提示配置与数据库已保留在dataDir完整模式下提示已成功卸载。这一实现解释了官方文档中的关键承诺只有--full参数才会触碰数据目录普通卸载天然具备保留数据特性。三、手动卸载按安装方式逐项清理如果因为版本较旧、包管理器不同或卸载脚本不适用可以按照你的实际安装方式手动卸载。3.1 npm 全局安装# 移除全局包 npm uninstall -g omniroute # 可选删除数据目录 rm -rf ~/.omniroute3.2 pnpm 全局安装pnpm uninstall -g omniroute rm -rf ~/.omniroute3.3 Docker# 停止并删除容器 docker stop omniroute docker rm omniroute # 删除卷会删除所有数据 docker volume rm omniroute-data # 可选删除镜像 docker rmi diegosouzapw/omniroute:latest注意官方镜像仓库名为diegosouzapw/omniroute。仅删除容器不会清除数据数据都持久化在卷中必须显式执行docker volume rm omniroute-data。3.4 Docker Compose# 停止并删除容器 docker compose down # 连同卷一起删除会删除所有数据 docker compose down -v在仓库自带的 docker-compose.yml 中可以看到数据持久化的具体方式所有主服务均通过DATA_DIR/app/data环境变量指定数据目录并将宿主机./data目录以 bind mount 方式挂载到/app/data。此外 Compose 还会创建多个具名卷redis-data、qdrant-data、bifrost-data、codex-appserver-home等用于存放 Redis 缓存、可选边车Qdrant 语义记忆、Bifrost 路由器、Codex app-server的状态。docker compose down -v会连同这些具名卷一并移除达到彻底清理。若使用的是仓库的 VPS 部署方案contrib/vps/compose.yaml数据卷名为omniroute-data挂载到/app/data使用 Podman 部署contrib/podman/omniroute.container时对应的数据卷为omniroute.volume。卸载时请对应删除这些卷。3.5 Electron 桌面应用Windows打开设置 → 应用 → OmniRoute → 卸载或从安装目录运行 NSIS 卸载程序macOS将/Applications下的OmniRoute.app拖入废纸篓删除数据rm -rf ~/Library/Application Support/omnirouteLinux删除 AppImage 文件删除数据rm -rf ~/.omniroute3.6 源码安装git clone# 删除克隆的目录 rm -rf /path/to/omniroute # 可选删除数据目录 rm -rf ~/.omniroute注意源码安装时运行npm run uninstall:full并不会删除源码目录本身——卸载脚本只处理全局 npm 包与数据目录克隆下来的项目目录仍需手动删除。四、数据目录默认位置与可覆盖方式OmniRoute 按平台在以下位置存放数据且绝大多数平台都支持通过DATA_DIR环境变量覆盖默认路径Docker 部署正是利用这一机制把数据挂载到卷中平台默认路径覆盖方式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环境变量在源码实现中数据目录的解析逻辑同样遵循环境变量优先、默认值兜底的规则——卸载脚本 scripts/build/uninstall.mjs 与数据路径模块 src/lib/dataPaths.ts 均以~/.omniroute/storage.sqlite作为运行算子的主数据库路径。因此卸载前若设置过DATA_DIR请记得按相同路径清理而不是只找~/.omniroute/。4.1 数据目录中的文件文件/目录说明storage.sqlite主数据库Provider、Combo、设置、API Keystorage.sqlite-walSQLite 预写日志临时文件storage.sqlite-shmSQLite 共享内存临时文件call_logs/请求负载归档backups/自动数据库备份log.txt旧版请求日志可选两点补充说明WAL/SHM 文件storage.sqlite-wal与storage.sqlite-shm是 SQLite 在 WAL预写日志模式下产生的临时文件正常卸载时可能残留属于正常现象可一并删除备份与调用日志自动备份目录在源码中由 src/lib/db/backup.ts 管理调用日志归档目录call_logs/则由请求日志链路写入。这些文件可能包含敏感的请求负载与历史数据彻底卸载时务必确认已删除。五、卸载后的完整性验证卸载完成后建议按以下命令逐项确认没有任何残留# 检查全局 npm 包是否已移除 npm list -g omniroute 2/dev/null # 检查数据目录是否还存在 ls -la ~/.omniroute/ 2/dev/null # 检查是否有运行中的进程 pgrep -f omniroute如果仍有进程在运行先将其终止pkill -f omniroute此外按安装方式补充检查Dockerdocker ps -a | grep omniroute确认容器已删除docker volume ls | grep omniroute确认数据卷已移除ElectronWindows检查%APPDATA%/omniroute/与安装目录是否残留ElectronmacOS检查~/Library/Application Support/omniroute与~/Library/Caches下是否有相关缓存目录自定义环境变量若曾设置DATA_DIR或XDG_CONFIG_HOME按对应自定义路径检查。六、卸载场景速查场景推荐命令/操作数据是否保留临时停用日后重装npm run uninstall✅ 保留彻底移除并清除所有数据npm run uninstall:full❌ 永久删除npm 全局安装npm uninstall -g omniroute 手动删目录视是否删目录而定pnpm 全局安装pnpm uninstall -g omniroute 手动删目录视是否删目录而定Dockerdocker stop/rmdocker volume rm omniroute-data视是否删卷而定Docker Composedocker compose down/docker compose down -v前者保留、后者删除Electron 桌面应用系统卸载入口 删数据目录视是否删目录而定源码安装删除克隆目录 删数据目录视是否删目录而定最后的安全建议在 Windows/macOS 上通过系统设置或 App 拖入废纸篓卸载桌面应用时数据目录通常不会被自动清除无论使用哪种卸载方式都请务必单独检查并清理数据目录或预先备份storage.sqlite与backups/再执行彻底删除。【免费下载链接】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),仅供参考
返回列表