尧图网站设计 尧图网站设计YAOTU DESIGN
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/OmniRoute导读OmniRoute 是一款开源的统一 AI 网关Unified AI Router聚合了数百家提供商与上千个模型并以统一 OpenAI 兼容接口对外服务。当你决定迁移、重置或彻底移除它时本文提供一份覆盖全部安装形态npm/pnpm 全局安装、Docker、Docker Compose、Electron 桌面端、源码克隆的卸载与清理手册既包含保留数据与彻底清除两种内置卸载脚本也给出手动卸载、数据目录定位与清理后验证的完整步骤。读完本文你将能按需选择“保留配置重装”或“永久抹除数据”并确保系统中不留任何 OmniRoute 残留。本文内容基于仓库内 docs/guides/UNINSTALL.md当前仓库版本 3.8.x撰写卸载脚本实现可对照 scripts/build/uninstall.mjs。一、快速卸载v3.6.2两条内置脚本从 v3.6.2 起OmniRoute 在根目录 package.json 中内置了两个卸载脚本分别对应“保留数据”与“彻底删除”两种策略。这两条命令会在任意安装形态全局 npm 包、源码目录等下自动完成主要清理工作是官方推荐的首选方式。1.1 保留数据npm run uninstallnpm run uninstall该命令卸载 OmniRoute 应用程序本体但保留~/.omniroute/目录下的数据库、配置、API Key 与提供商设置。适合你计划日后重新安装并希望沿用既有配置的场景。对照 scripts/build/uninstall.mjs 的实现该脚本执行三个核心步骤清理后台进程尝试执行pm2 delete omniroute移除由 PM2 托管的后台常驻进程PM2 未安装或进程不存在时静默跳过不会报错中断保留数据目录非--full模式下仅打印Keeping data files at: dataDir intact.不触碰数据目录卸载 npm 包通过环境变量OMNIROUTE_SKIP_UNINSTALL_HOOK1防止递归触发卸载钩子再执行npm uninstall -g omniroute移除全局包。脚本还做了一层保护若检测到npm_lifecycle_event已经是uninstall即本次卸载正是由 npm 卸载生命周期触发的会跳过嵌套的卸载命令避免递归循环。1.2 彻底清除npm run uninstall:fullnpm run uninstall:full该命令在卸载应用程序的同时永久抹除~/.omniroute/目录下的全部数据具体包括主数据库storage.sqlite存有提供商配置、Combo 组合、设置与 API KeyWAL/SHM 临时文件storage.sqlite-wal、storage.sqlite-shm自动备份文件日志文件~/.omniroute/目录下的所有其余文件。从源码看--full分支会先解析数据目录process.env.DATA_DIR || path.join(os.homedir(), .omniroute)若目录存在则通过fs.rmSync(dataDir, { recursive: true, force: true })递归删除删除失败时仅输出警告而不会阻塞后续的 npm 卸载步骤。⚠️警告npm run uninstall:full不可逆。一旦执行你所有的提供商连接、Combo 组合、API Key 与用量历史都将被永久删除。执行前请务必确认数据已备份如需保留数据请改用npm run uninstall。二、手动卸载覆盖全部安装形态如果内置脚本不适用例如你希望精细控制清理范围可以按安装方式手动卸载。以下每种方式都分为“移除应用本体”与“可选删除数据目录”两步。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需要注意仓库的 docker-compose.yml 定义了多个数据卷除主数据卷外还有omniroute-redis-dataRedis 限流数据、omniroute-qdrant-data语义记忆、omniroute-bifrost-dataBifrost 路由侧车等。若你启用了memory或bifrost等 profile彻底清理时应一并删除对应卷docker volume rm omniroute-data omniroute-redis-data omniroute-qdrant-data omniroute-bifrost-data2.4 Docker Compose# 停止并移除容器 docker compose down # 同时移除卷删除所有数据 docker compose down -v对照 docker-compose.yml 可知容器内通过DATA_DIR/app/data与卷挂载./data:/app/data或命名卷omniroute-data持久化数据down -v会连带清空这些数据卷。若你还想清理本地挂载目录如./data可手动删除该目录。2.5 Electron 桌面应用Windows打开Settings → Apps → OmniRoute → Uninstall或直接运行安装目录中的 NSIS 卸载程序。macOS将/Applications中的OmniRoute.app拖入废纸篓删除数据rm -rf ~/Library/Application Support/omniroute。Linux删除 AppImage 文件删除数据rm -rf ~/.omniroute。提示macOS 下 Electron 应用的数据目录与其他平台不同位于~/Library/Application Support/omniroute这与 src/lib/dataPaths.ts 中“Linux/macOS 默认使用~/.omniroute”的逻辑并不冲突——Electron 外壳有自己的配置存储约定。若不确定数据是否残留可同时检查两个位置。2.6 源码安装git clone# 删除克隆的目录 rm -rf /path/to/omniroute # 可选删除数据目录 rm -rf ~/.omniroute若你同时安装了全局命令npm i -g或通过npm run uninstall触发可先执行一次 快速卸载 再删除目录以移除bin/下注册的omniroute与omniroute-reset-password两个全局命令见 package.json 的bin字段。三、数据目录与文件清单清理前必须知道的一切3.1 默认数据目录与覆盖方式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环境变量这些规则与 src/lib/dataPaths.ts 的实现完全对应其路径解析优先级为显式DATA_DIRresolveDataDir()优先读取process.env.DATA_DIR若设置了则以该路径为准见src/lib/dataPaths.ts第 64-71 行Windows 平台读取%APPDATA%缺省时回退到~/AppData/Roaming拼上omnirouteXDG 兼容Linux/macOS 下若显式配置了XDG_CONFIG_HOME则使用$XDG_CONFIG_HOME/omniroute默认路径Linux/macOS 默认~/.omniroute。值得注意的是代码会优先保留历史路径若旧目录已存在则沿用以避免升级迁移时造成数据丢失。该模块还有一层容错当配置的DATA_DIR不可写EACCES/EPERM时resolveWritableDataDir()会自动回退到默认用户目录保证应用不因路径不可写而崩溃见 src/lib/dataPaths.ts 第 130-191 行。此外测试与node --eval探针进程若未显式设置DATA_DIR会被重定向到一次性临时目录避免误开操作者的真实数据库该保护可用OMNIROUTE_ALLOW_DEFAULT_DATA_DIR1显式放行详见 .env.example 第 58-63 行的注释说明。Docker 场景下docker-compose.yml 中的DATA_DIR/app/data与卷挂载共同决定了数据落盘位置.env.example 第 41 行也建议生产部署时通过DATA_DIR指向宿主机目录以持久化数据。3.2 数据目录中的关键文件文件/目录说明storage.sqlite主数据库提供商、Combo、设置、API Keystorage.sqlite-walSQLite 预写日志临时文件storage.sqlite-shmSQLite 共享内存临时文件call_logs/请求负载归档backups/自动数据库备份log.txt旧版请求日志可选其中storage.sqlite的解析逻辑位于 src/lib/db/core.ts 第 111-115 行SQLITE_FILE path.join(DATA_DIR, storage.sqlite)而自动备份目录为DB_BACKUPS_DIR path.join(DATA_DIR, db_backups)。也就是说数据目录下还可能出现db_backups/目录自动备份彻底清理时同样会被npm run uninstall:full一并删除。提醒若你在.env中配置了DATA_DIR或STORAGE_ENCRYPTION_KEY数据库静态加密见 .env.example 第 90-98 行卸载时这些密钥文件也应一并处理数据一旦删除被加密的旧库将无法恢复。四、验证完全清理三步确认无残留卸载完成后建议按以下三步确认系统已清理干净# 1. 检查全局 npm 包是否已移除 npm list -g omniroute 2/dev/null # 2. 检查数据目录是否还存在 ls -la ~/.omniroute/ 2/dev/null # 3. 检查是否有残留进程 pgrep -f omniroute若仍有进程在运行可强制终止pkill -f omniroute同样地若你使用过 PM2 托管服务还可再执行一次pm2 delete omniroute以清除 PM2 进程表中的记录内置卸载脚本正是这样做的见 scripts/build/uninstall.mjs 第 16-21 行。Docker 场景下可补充docker ps -a | grep omniroute与docker volume ls | grep omniroute确认容器与卷均已消失。五、卸载决策速查你的诉求推荐操作数据去向暂时停用稍后重装并保留全部配置npm run uninstall保留在~/.omniroute/彻底移除应用与全部数据npm run uninstall:full永久删除手动精细控制npm/pnpm 全局包npm uninstall -g omniroute 手动删目录由你决定Docker 部署清理docker compose down -v或逐条docker stop/rm/volume rm随卷一并删除桌面端清理系统卸载程序 删除平台对应数据目录由你决定源码克隆清理删除克隆目录 ~/.omniroute由你决定无论选择哪条路径请牢记两点npm run uninstall:full不可逆若配置过自定义DATA_DIR、数据库静态加密密钥或 Docker 命名卷清理范围应覆盖到这些位置才能确保 OmniRoute 从系统中“无残留”地卸载。若日后需要重新部署可参考仓库内的 docs/guides/SETUP_GUIDE.md 与 .env.example 从零初始化环境。【免费下载链接】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),仅供参考
返回列表