受够了把公司文档喂给别人的服务器?这个 9.5 万星的自托管 AI 工作台,能整套搬回自己机器
github监控器 · 2026-11-10 · 约 4364 字 · odysseus-dev/odysseus
你在 ChatGPT 里贴过客户合同、贴过没发布的财报、贴过内部代码。贴的时候心里是虚的。
Odysseus 干的事很直接:把这套东西整套搬回你自己的服务器。 聊天、agent、深度研究、文档编辑、邮件收发、笔记日历,一个 Docker 起来,数据全在你盘上。
9.5 万星,每天涨 582 星,AGPL-3.0,Python 写的。这篇文章把部署命令、首次密码怎么拿、生产环境该钉哪个 tag、哪些开关不能碰,一条条摆出来。
一、先说结论:它解决的是"数据主权"和"工具割裂"两个问题
先说第一个。市面上的 AI 产品,数据默认走别人的服务器。你能做的只有"相信它不看你"。
对个人无所谓。但只要你手上有客户资料、未公开财务、内部代码,这就不是信任问题,是合规问题。
第二个问题更日常:你的工作被切成了五六个网页。 聊天一个、写文档一个、查资料一个、收邮件一个、记笔记一个,每个都要重新登、重新贴上下文。
Odysseus 的答案是把它们塞进一个工作台,而且这个工作台跑在你自己的 7011 端口上。

二、它到底是什么:一句话读完 README
README 第一句就是定位,值得照抄:
"A self-hosted AI workspace for chat, agents, research, documents, email, notes, calendar, and local model workflows."
拆开看,这里有两个关键词。
self-hosted:你自己部署,数据不出你的机器。
workspace:不是一个聊天框,是一组能互相喂东西的模块。比如深度研究跑完的报告,能直接进文档编辑器接着改;邮件里读到的东西,能被 agent 拿去建日程。
这个"互相喂"才是它和"又一个 ChatGPT 套壳"的区别。
三、八个模块分别干什么
README 的 Features 列了七组,我按"你什么时候会用"重排一下:
注意 Agents 那一行里的 shell 和 MCP。这两项意味着它能真的在你机器上执行命令、接外部工具服务——这是能力,也是风险,后面安全那节会专门说。
还有 CalDAV 同步这个细节。它说明日历不是自己关起门玩的,能和你手机上的日历双向同步,这比"内置一个日历页面"实用得多。
四、装:四条命令,五分钟
官方给的是最短路径,没有花活:
git clone https://github.com/odysseus-dev/odysseus.git
cd odysseus
cp .env.example .env
docker compose up -d --build四条命令,逐个说清楚。
第一条拉代码。注意 README 顶部那句提示:
"dev is the default branch and gets the newest changes first. Use main if you want the more curated branch."
默认分支是 dev,最新但不一定最稳。要稳就切 main:
git clone -b main https://github.com/odysseus-dev/odysseus.git第三条 cp .env.example .env 一定要做。不建 .env,compose 里那些变量会走默认值,后面改端口、改密钥、关掉认证都没地方改。
第四条 -d 是后台,--build 是本地构建。第一次跑会拉基础镜像,视网络情况几分钟到十几分钟。
五、起来之后第一件事:去日志里拿密码
容器健康后开 http://localhost:7011。
然后你会卡在登录页——因为你没有密码。
README 写得很清楚,密码不在 .env 里,在日志里:
docker compose logs odysseus翻输出,第一次启动时会打一行初始管理员密码。拿到立刻改掉。
这一步是很多人第一次部署就放弃的地方——习惯性去 .env 找 ADMIN_PASSWORD,找不到就以为装坏了。它在日志里。
顺手建议:把 docker compose ps 也跑一下,确认容器状态是 healthy 而不是 starting。starting 状态下页面能开但接口会 502。

六、生产部署:为什么必须钉住那串 sha
README 里有一段专门讲这个,很多人会跳过,但它决定了你下次重启会不会突然挂:
":latest and bare :X.Y.Z tags move on every push to main, but :X.Y.Z-<sha> (e.g. 1.0.2-7c8070f) always refers to one specific build."
翻成人话:
所以生产环境的启动命令应该长这样:
ODYSSEUS_IMAGE=ghcr.io/odysseus-dev/odysseus:1.0.2-7c8070f docker compose up -d另外还有个不显眼但很值钱的细节:
"The compose files pull the official multi-arch image ... and only build locally if the pull fails — so this also works on hosts without a build toolchain."
意思是先拉现成镜像,拉不到才本地构建。所以你没有编译工具链也能跑——NAS、轻量云主机、Portainer 里点几下就行。
反过来讲:如果你看到它在长时间"building",说明镜像没拉到,八成是网络问题。
七、模型怎么接:两条路
它支持两类模型来源。
路一:本地模型。 用 Cookbook 那套,它按你的显存/内存推荐能跑多大的模型,然后帮你下载、起服务。
路二:API 模型。 在设置里填第三方 API 的地址和 key,走 OpenAI 兼容协议那一套。
实际用法建议:小活走本地,大活走 API。
本地模型处理分类、摘要、改写这些高频低难度任务,不花钱也不出网;真要做深度研究、写长文档,再切到 API 模型。
这套分工在 .env 里能配死,不用每次手点。
八、安全:两个开关必须守
README 有一段单独的安全提示,语气比一般项目重,值得逐条看:
"Odysseus is a self-hosted workspace with powerful local tools. Keep auth enabled, keep private data out of Git, and do not expose raw model/service ports publicly."
它自己给了两条硬规矩:
true | ||
false |
第二条特别容易踩。LOCALHOST_BYPASS=true 原本是为了本地调试方便,但你一旦挂到 Nginx 后面,反向代理过来的请求源 IP 是 127.0.0.1,认证就被绕过了。
所以顺序是:本机调试可以开,上反代之前必须关。
再补两条 README 没写但很实际的:
- 别把 7011 直接暴露到公网。 前面必须有 HTTPS 反代,README 的 setup 指南里有现成配置;
.env别提交到 Git。 里面有 API key 和数据库口令。

九、它和"自己拿开源拼一套"比,差在哪
你完全可以自己拼:Ollama + Open WebUI + n8n + Obsidian + 某个邮件客户端。也能用。
区别在三个地方:
结论:要"能马上用起来"选它,要"每一层都自己说了算"就自己拼。
这两者不冲突——它本身就是开源的,可以拿它当骨架,把不满意的模块换掉。
十、AGPL 这条许可要注意什么
它是 AGPL-3.0-or-later,比 GPL 更严一档。
关键差别:AGPL 把"通过网络提供服务"也算作分发。
说人话:
- 自己用、公司内部用——随便用,没有额外义务;
- 改了它的代码,并且把它作为服务开放给别人用——你必须公开改动后的源码;
- 只是调它的 API、写插件、接自己的系统——不受影响。
所以想拿它做商业化 SaaS 的人要注意这条。内部工具、个人工作台完全没问题。
十一、谁该用,谁先别碰
最后一条不是劝退,是实话。自托管的核心成本不是部署,是出问题的时候你得能看日志。
十二、版本与地址
形态: 自托管 AI 工作台(Docker Compose)
许可: AGPL-3.0-or-later
部署: cp .env.example .env && docker compose up -d --build
入口: http://localhost:7011
首次密码: docker compose logs odysseus
生产必钉: ghcr.io/odysseus-dev/odysseus:1.0.2-7c8070f最后一句:这个项目最值得学的不是功能清单,而是它把"数据主权"做成了一个能用五条命令换来的东西。以前这件事要一个运维团队,现在要一个下午。
AI 实战导师 / 企业 AI 落地顾问 / 智能体工程师,17 年跨界、15,000+ 小时 AI 实操、20+ 套已交付工作流。
发表评论: