Docker部署OpenDots完整指南:3个compose文件和2个随机密钥搭建生产级AI同事环境
Docker部署OpenDots完整指南3个compose文件和2个随机密钥搭建生产级AI同事环境【免费下载链接】OpenDotsYour always-on AI coworkers that move between text, calls, and Slack.项目地址: https://gitcode.com/gh_mirrors/op/OpenDotsOpenDots 是一款常驻在线的开源 AI 同事AI coworker模板让每个 AI Agent称为 Dot拥有独立的工作空间、浏览器和记忆可在文本聊天、语音通话和 Slack 之间无缝切换。本文带你用 Docker 部署 OpenDots只需理解3 个 compose 文件和2 个随机密钥即可搭出一套带容器隔离、数据持久化的生产级 AI Agent 环境。OpenDots 是一个可完全自托管的模板而非托管产品你运行应用并配置自己的模型与对话服务。OpenDots 是什么你的 AI 同事团队在动手之前先花 30 秒了解你要部署的东西Spaces文档空间。AI 同事产出的草稿经你批准后会保存为可编辑的页面形成可搜索的知识库。Specialist Dots每个 Dot 是一个有名字、角色和权限的 AI 同事比如研究员、写作者。Dot 专属电脑每个 Dot 可以拥有一台自己的容器化电脑含独立浏览器配置文件、工作区文件和终端文件在重启后依然保留。一个典型的 Spaces 协作流程是向 AI 同事提问 → 它浏览网页并起草内容 → 你审核批准 → 草稿变成可编辑的页面3个compose文件分别负责什么OpenDots 仓库根目录提供了三个 Docker Compose 文件分工非常清晰文件作用启动的服务compose.yml核心应用appWeb API端口 4310browser只读浏览器服务端口 4311内部网络compose.computers.yml给 Dot 配电脑computer-image构建目标computer-supervisor监督者端口 4312compose.computers-app.yml全容器化叠加层让app通过服务 DNS 直连监督者无需宿主端口三个文件的设计逻辑compose.yml是必选项。app服务基于 Dockerfile 的app阶段构建Node.js 24 生产镜像以非 root 用户运行数据存入opendots-data命名卷重启不丢数据。浏览器服务则刻意做了加固只读文件系统、tmpfs 临时目录、丢弃所有能力cap_drop: ALL、no-new-privileges。compose.computers.yml是进阶项。监督者supervisor会为每个 Dot 动态创建一台独立电脑容器文件和浏览器配置文件各用独立命名卷持久化。注意只有监督者挂载 Docker socketWeb 应用和 Dot 的电脑都拿不到它——这是有意的最小权限设计。compose.computers-app.yml是叠加层overlay。当你的应用也跑在容器里时它把应用接入computer-control内部网络并移除宿主端口。叠加层必须最后加载。2个随机密钥安全部署的底线官方文档 docs/SETUP.md 明确要求在.env中为OWNER_TOKEN和BROWSER_SECRET设置不同的、至少 24 位的随机密钥。compose.yml 中带有${VAR:?...}语法密钥缺失时容器会直接拒绝启动从机制上杜绝裸奔。变量作用要求OWNER_TOKEN应用访问令牌外部绑定如 Slack必需≥24 位随机字符串BROWSER_SECRET应用与浏览器服务之间的共享密钥≥24 位随机字符串与上一条不同INTELLIGENCE_API_KEY/OPENAI_API_KEY等对话持久化与模型服务的凭据只保存在服务器端.env切勿提交生成随机密钥的推荐方式openssl rand -hex 32如果还要启用Dot 电脑功能则额外增加两把随机密钥COMPUTER_SUPERVISOR_TOKEN授权生命周期操作和COMPUTER_TOKEN主密钥应用会为每个 Dot 派生出独立的子凭据主密钥本身从不下发到任何电脑容器。两把必须不同详细说明见 docs/COMPUTERS.md。一键启动步骤1. 获取代码并配置 .envgit clone https://gitcode.com/gh_mirrors/op/OpenDots cd OpenDots cp .env.example .env编辑.env至少填入OWNER_TOKEN、BROWSER_SECRET以及你的模型凭据OPENAI_API_KEY、OPENAI_MODEL和对话服务凭据INTELLIGENCE_API_KEY。完整变量清单见 docs/SETUP.md。2. 启动核心应用docker compose up --build -d然后打开http://localhost:4310即可。注意app的端口只绑定回环地址127.0.0.1浏览器服务不发布任何宿主端口——这是模板内置的安全边界。3. 停服务但保留数据docker compose down数据在opendots-data卷里随时可以再up恢复。4.进阶启动全容器化 Dot 电脑如果希望应用、浏览器、监督者全部跑在容器里按顺序加载三个文件docker compose -f compose.yml -f compose.computers.yml -f compose.computers-app.yml build computer-image computer-supervisor app browser docker compose -f compose.yml -f compose.computers.yml -f compose.computers-app.yml up -d app browser computer-supervisor启动后在 Web 界面打开某个 Dot 的Computer面板启用所需能力并点击 Start它就有了专属的浏览器、文件系统和终端。生产环境部署检查清单HTTPS 反向代理远程托管时务必配置 HTTPS 代理并把APP_ORIGIN设为与代理完全一致的浏览器源。备份双层数据SQLiteopendots-data卷存页面与工作区元数据对话历史存于 Intelligence 项目只拷 SQLite 不算完整备份。凭据只在服务器模型、语音、浏览器密钥一律放服务端.env严禁提交到代码库。️信任级别Dot 电脑是标准 Docker 容器隔离共享宿主内核Shell 权限意味着容器内可执行程序与联网请运行在与之匹配的机器上。更多边界说明见 SECURITY.md。镜像锁定电脑服务基于 deployment/computers/ 中固定的 OpenBot 源码修订构建非latest浮动标签升级需连同其补丁一起评审。部署后如何验证打开http://localhost:4310确认能看到设置界面而非报错。创建一个 Dot 和一个 Space发起聊天确认模型正常回复。若启用了电脑服务写一个文件到某台电脑停掉再启动确认文件仍在验证持久化。在两台不同 Dot 的电脑间互相验证看不到对方的文件验证隔离。常见问题速查现象原因与处理容器启动即退出提示Set a 24 character....env缺少随机密钥或长度不足 24 位电脑服务状态不可用可能 Docker daemon 未运行、镜像未构建、凭据不一致或应用无法访问返回的地址先确认docker compose ps全部健康换了 namespace 后找不到旧电脑COMPUTER_NAMESPACE决定容器与卷的命名请保持稳定且每套部署唯一改了环境变量没生效改完.env后必须重启服务总结整套 Docker 部署的精髓可以浓缩为一句话用 compose.yml 拉起核心用两个 24 位随机密钥守住安全底线需要真电脑时再叠加 compose.computers.yml 与 compose.computers-app.yml。完成部署后你的 AI 同事就能开始工作浏览网页、撰写草稿、保存为 Spaces 页面甚至可以打电话。想继续探索 Slack 接入、语音通话与自动学习功能请阅读官方文档 docs/SETUP.md 和 docs/COMPUTERS.md。【免费下载链接】OpenDotsYour always-on AI coworkers that move between text, calls, and Slack.项目地址: https://gitcode.com/gh_mirrors/op/OpenDots创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

apsrev4-1样式下参考文献标题显示:改bst、改bbl与biblatex三种方案

apsrev4-1样式下参考文献标题显示:改bst、改bbl与biblatex三种方案

做科研的人几乎都会在某个晚上撞上这个坑:用RevTeX模板写完手稿,编译出来一看,参考文献列表里只有作者、期刊、卷、页码,文章标题不见了。这个样式就是标题里提到的apsrev4-1,它确实是APS(American Physica…

2026/10/4 6:15:18 阅读更多 →
JavaScript 表达式与语句的区别:语法单元、表达式语句与实战辨析(30-seconds-of-code 技术指南)

JavaScript 表达式与语句的区别:语法单元、表达式语句与实战辨析(30-seconds-of-code 技术指南)

教程文档 【免费下载链接】30-seconds-of-code Coding articles to level up your development skills 项目地址: https://gitcode.com/gh_mirrors/30/30-seconds-of-code 点击查看 免费下载 导读 JavaScript 代码由两种基础语法单元构成:表达式&#…

2026/10/4 6:14:18 阅读更多 →
基于Node.js的校园智慧餐饮微信小程序设计与实现

基于Node.js的校园智慧餐饮微信小程序设计与实现

选题背景与意义 随着信息技术的迅猛发展和移动互联网的普及,智慧校园建设已成为高等教育信息化的重要方向。在高校校园中,餐饮服务作为学生日常生活不可或缺的一部分,其服务质量与效率直接影响到师生的校园生活体验。传统的校园食堂管理模式普…

2026/10/4 6:14:18 阅读更多 →

最新新闻

安卓开发中 Cursor Adapter 的适配与优化:TaoToken 统一 Key 接入实践

安卓开发中 Cursor Adapter 的适配与优化:TaoToken 统一 Key 接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:51:39 阅读更多 →
COMSOL纳秒脉冲激光烧蚀模拟:移动网格与温度场调参实战

COMSOL纳秒脉冲激光烧蚀模拟:移动网格与温度场调参实战

看到这个标题,我真的太有感触了。用COMSOL做纳秒脉冲激光烧蚀的移动网格模拟,几乎每个刚接触的人都会在这个问题上卡上几周。案例库里的模型跑得挺顺畅,一旦换成自己的纳秒脉冲参数,温度场就各种放飞自我——要么直接窜到几十万开…

2026/10/4 9:51:39 阅读更多 →
掌握Superpowers Skills:用TaoToken统一Key打通AI工具链的实战配置

掌握Superpowers Skills:用TaoToken统一Key打通AI工具链的实战配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:51:39 阅读更多 →
Cursor插件开发避坑指南:plugin.json契约与TypeScript SDK实战

Cursor插件开发避坑指南:plugin.json契约与TypeScript SDK实战

1. 项目概述:从“plugins”这个词开始,我们到底在谈什么?“plugins”——这个词在当前开发者工具生态里,已经不是简单的“插件”两个字能概括的了。它是一套运行时可插拔的能力交付机制,是现代AI原生编辑器&#xff08…

2026/10/4 9:51:39 阅读更多 →
插件机制深度解析:从生命周期到加载器实现与故障排查

插件机制深度解析:从生命周期到加载器实现与故障排查

先交代一下背景:我这些年做开发,跟“插件”这两个字打交道的时间加起来可能比写业务代码还长。从嵌入式调试工具里挂的辅助脚本,到音乐类应用里换音源、换歌词的扩展包,再到各种 Web 框架启动时报的那句failed to load plugins&am…

2026/10/4 9:51:39 阅读更多 →
Himalaya pimdir.root 路径 Shell 展开:让 `~/.local/state/neverest/…` 真正指向家目录下的离线邮件仓库

Himalaya pimdir.root 路径 Shell 展开:让 `~/.local/state/neverest/…` 真正指向家目录下的离线邮件仓库

CLI 【免费下载链接】himalaya CLI to manage emails 项目地址: https://gitcode.com/gh_mirrors/hi/himalaya 点击查看 免费下载 本篇技术指南围绕 himalaya 的 pimdir 变更 pimdir-root-shell-expand 展开,讲解 pimdir.root 配置项的 ~ 与环境变量展开…

2026/10/4 9:50:38 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →