ODS 详解:一条命令把电脑变成私有 AI 服务器
在本地跑大模型,最劝退人的往往不是模型体积,而是工具链太碎:想聊天要装 Web UI,想语音得配 Whisper,想自动化要拉 n8n,想出图还得搭 ComfyUI,再算上 RAG、向量库、Agent……单独装每个都能用,串起来就成了一场灾难。很多人折腾一整个周末,最后又回到云 API,把数据交给了别人。
ODS 就是冲着这个痛点来的。它把自己定位成一套"AI 服务器部署系统",把常用服务全部装好并接通,一条命令就能得到一个私有的 AI 全家桶。
项目地址:https://github.com/Osmantic/ODS
一、ODS 是什么
ODS 全称 Osmantic Deployment System,装好后你的 PC、Mac 或 Linux 机器就变成一台私有 AI 服务器。默认本地模式,数据不出机器、不上云,云和混合 API 模式只是可选项。
它不需要你手动组装 Ollama、Open WebUI、n8n、ComfyUI 和隐私工具。安装器会自动检测 GPU 与内存,按硬件档位挑选合适的 GGUF 模型,生成凭据并启动服务。最终你拿到的是一个带聊天界面、控制面板、语音、Agent、RAG、出图和运维监控的完整服务栈,而不是一堆互相不知道对方存在的容器。
硬件支持方面:Linux 支持 NVIDIA、AMD、Intel Arc;Windows 支持 NVIDIA、AMD(需要 Docker Desktop + WSL2);macOS 支持 Apple Silicon,走 Metal 加速。没有 GPU 也能跑,只是退回 CPU 或云 API。
二、四条值得关注的能力
1. 一条命令装完,自动选模型
安装器检测到硬件后会先分档。比如 8GB 显存选 Qwen3.5 9B,12GB 选 Phi-4 14B,24GB 选 Qwen3.5 27B,64GB+ 统一内存直接上 Qwen3.6 35B;Apple Silicon 这边,8GB 内存选 Phi-4 Mini,16GB 选 Qwen3.5 9B。你不用自己查参数,选型结果全部写进 .env。
2. 开箱即用的"全家桶"
内置组件各司其职:Open WebUI 做聊天前端,llama-server 做推理;语音是 Whisper + Kokoro;Agent 默认 Hermes,n8n 提供 400+ 集成;知识库用 Qdrant + TEI;出图用 ComfyUI。另有 Privacy Shield 做 PII 脱敏,Dashboard 显示 GPU 与服务状态,Token Spy 追踪 token 消耗。
想做私有 RAG?Qdrant 和 embedding 已经接好。要给客服加语音机器人?Whisper + Kokoro 直接可用。设计师要本地出图?ComfyUI 自己连模型即可。
3. Bootstrap:先聊后下
大模型下载太慢是老问题。ODS 默认先拉一个约 1.5B 的小模型,1 分钟内就能聊起来;完整模型在后台继续下载,完成后自动热切换,不中断会话。不想等的话也可以用 --no-bootstrap 跳过。
4. CLI + 扩展,日常好管
服务不是写死的。每个服务都是一个 extension,放进包含 manifest.yaml 和 compose.yaml 的文件夹,ods enable 就接入编排。CLI 里还能切换运行模式:ods mode cloud 走云端 API,ods mode hybrid 本地为主、云兜底。换模型也方便,ods model swap T3 一条命令搞定。
三、上手:一条命令的事
执行前先确认 Docker 已在运行。Windows 需要开启 Docker Desktop 的 WSL2 backend,并使用普通 PowerShell 窗口(不要管理员权限)。
Linux / macOS 快速安装:
curl -fsSL https://install.osmantic.com/ods.sh | bash
Windows PowerShell(非管理员):
$ProgressPreference = "SilentlyContinue"
$odsSrc = Join-Path $env:TEMP ("ods-install-" + [guid]::NewGuid().ToString("N"))
$odsZip = Join-Path $odsSrc "ods-main.zip"
New-Item -ItemType Directory -Path $odsSrc | Out-Null
Invoke-WebRequest "https://github.com/Osmantic/ODS/archive/refs/heads/main.zip" -OutFile $odsZip
Expand-Archive -LiteralPath $odsZip -DestinationPath $odsSrc -Force
cd (Get-ChildItem -LiteralPath $odsSrc -Directory | Select-Object -First 1).FullName
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\install.ps1
完成后访问 http://localhost:3000 开始聊天。API 默认端口:Linux Docker 暴露 11434,macOS/Windows 原生路径用 8080,Open WebUI 固定 3000。
卸载(Linux/macOS):
cd ~/ods
./ods-uninstall.sh --force
Windows 执行 .\ods.ps1 uninstall --force。
没有本地 GPU? 支持云模式,用 OpenAI/Anthropic/Together 的 API 跑同样的服务:
./install.sh --cloud
端口有冲突? 环境变量可覆盖,例如把 WebUI 端口改成 9090:
WEBUI_PORT=9090 ./install.sh
手动安装(Linux/macOS):
git clone https://github.com/Osmantic/ODS.git
cd ODS
./install.sh
macOS Apple Silicon 同样走这套手动流程。
四、日常管理命令
切换模型:
ods model current # 查看当前运行的模型
ods model list # 列出所有可用档位
ods model swap T3 # 切换到指定档位
换新模型前可以先预下载:
./scripts/pre-download.sh --tier 3 # 切换前先下载
ods model swap T3 # 再切换(会重启 llama-server)
已有 GGUF 文件?放到 data/models/ 后更新 .env 并重启:
ods restart llm
或者直接用 docker compose 重启 llama-server:docker compose restart llama-server。
自定义扩展结构:
extensions/services/my-service/
├── manifest.yaml # 元数据:名称、端口、健康端点、GPU 后端
└── compose.yaml # Docker Compose 片段(自动合并进服务栈)
常用管理命令:
ods status # 健康检查 + GPU 状态
ods list # 所有服务及其状态
ods logs llm # 查看日志(别名:llm、stt、tts)
ods restart [service] # 重启单个或全部服务
ods start / stop # 启动 / 停止整个栈
ods mode cloud # 切换云端 API(LiteLLM)
ods mode local # 切回本地推理
ods mode hybrid # 本地为主、云兜底
ods enable n8n # 启用扩展
ods disable whisper # 停用某个服务
ods config show # 查看 .env(密钥打码)
ods preset save gaming # 快照当前配置
ods preset load gaming # 恢复配置快照
小结
ODS 把"本地 AI 服务器"从口号变成了可落地的一条命令:数据留在自己机器,没有订阅,也不用担心供应商涨价或停机。项目采用 Apache 2.0 协议,当前稳定版为 v2.6.0,fork 或生产环境建议锁定 tag。官方文档覆盖快速开始、硬件指南、扩展开发,想自己跑一套本地 AI 服务的开发者,可以直接去 GitHub 仓库按硬件档位动手试试。
项目地址:https://github.com/Osmantic/ODS