一家人就是要整整齐齐:ClawdBot/Moltbot + OpenCode + FileBrowser
-
一家人就是要整整齐齐:ClawdBot/Moltbot + OpenCode + FileBrowser
目录- 🧩 一、核心组件深度解析
- 1.1 🦞 ClawdBot Gateway —— 你的 24×7 个人 AI 助手
- 1.2 🤖 OpenCode Server —— 开源 AI 编程助手的终端革命
- 1.3 📁 FileBrowser —— 优雅的可视化文件管理
- 🏗️ 二、架构设计深度剖析
- 2.1 共享存储架构
- 2.2 网络隔离设计
- 2.3 容器生命周期管理
- 📦 三、部署实战指南
- 3.1 环境准备
- 3.2 目录结构准备
- 3.3 配置文件详解
- 3.4 启动服务
- 3.5 访问服务
- ⚙️ 四、运维与最佳实践
- 4.1 日常运维命令
- 4.2 备份策略
- 4.3 安全加固建议
- 🔮 五、扩展与进阶
- 5.1 添加反向代理(Traefik)
- 5.2 集成本地大模型
- 5.3 与 MCP 工具生态集成
- 📋 小结
在 2026 年的 AI 开发领域,AI Agent(智能体) 已经从实验性技术走向了规模化应用。根据新浪财经的报道,2026 年被称为"企业 AI Agent 从试点走向规模化部署"的关键年份。然而,对于许多开发者和研究者来说,如何快速、稳定地搭建一套本地化的 AI Agent 开发环境仍然是一个痛点。
本文的核心价值在于: 通过一份精心设计的
docker-compose.yml配置文件,帮助你在 15 分钟内 完成包含三大核心组件的统一 AI 开发环境部署:组件 功能定位 端口 🦞 ClawdBot Gateway 个人 AI 助手网关,连接多平台消息渠道 18789 🤖 OpenCode Server 开源 AI 编程助手,终端级代码智能 4096 📁 FileBrowser 可视化文件管理器,共享工作目录 2080 💡 为什么选择这套组合? 因为它们代表了 2026 年 AI Agent 开发的三个核心需求:智能交互、代码生成、资源管理——且全部支持本地化部署,数据完全掌控在自己手中。
🧩 一、核心组件深度解析
1.1 🦞 ClawdBot Gateway —— 你的 24×7 个人 AI 助手
什么是 ClawdBot?
"Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞"
ClawdBot 是一个自主运行的 AI Agent,能够直接在本地计算机上执行操作——从文件管理、邮件处理到浏览器控制,甚至智能家居设备联动。它被形象地称为 "Claude with hands"(有手的 Claude),因为它不仅能"思考",还能"动手"。
核心架构:Gateway 模式
"Clawdbot AI operates through a lightweight local gateway that manages communication, tools, and persistent state."
Gateway(网关)是 ClawdBot 的核心枢纽,它作为后台服务运行,负责:
- 📨 多渠道消息收发:支持 WhatsApp、Telegram、Slack、Discord、微信、钉钉等 10+ 主流平台
- 🔧 工具调度与编排:管理各类技能(Skills)和 MCP(Model Context Protocol)工具
- 💾 状态持久化:保存对话上下文、用户偏好、执行历史
本配置中的关键设置
clawdbot-gateway: image: node:22-slim # 官方要求 Node ≥ 22 ports: - 18789:18789 # Gateway 服务端口 volumes: - ./data:/root/clawd/canvas # 共享工作目录 - ./clawdbot-config:/root/.clawdbot # 配置文件目录 - clawdbot-modules:/usr/local/lib/node_modules # NPM 模块持久化💡 设计亮点说明:
配置项 设计意图 node:22-slim使用精简版镜像减少体积(约 200MB vs 完整版 1GB+),同时满足 Node 22 的最低版本要求 clawdbot-modules命名卷避免每次启动都重新安装 npm 全局模块,显著加速容器重启速度 ./data共享挂载实现三个容器的工作目录统一,ClawdBot 生成的文件可直接被 OpenCode 和 FileBrowser 访问 模型与身份验证提供商
根据 Clawdbot 官方文档,ClawdBot 支持以下模型/认证提供商:
- OpenAI / Anthropic(Claude Code CLI + API Key)
- Google Gemini / Qwen(通义千问)
- MiniMax / Moonshot AI / Z.AI(智谱 GLM 4.7)
- OpenRouter / Vercel AI Gateway
- OpenCode Zen(本配置中的 OpenCode 服务)
这意味着你可以在一个统一的界面中,无缝切换不同的 AI 模型!
1.2 🤖 OpenCode Server —— 开源 AI 编程助手的终端革命
OpenCode 的崛起
"OpenCode is the open source AI coding agent. In early 2026, OpenCode quickly became one of the most starred projects on GitHub."
截至 2026 年初,OpenCode 已拥有超过 66,000 颗 GitHub 星标,成为开发者社区中最受欢迎的开源 AI 编程助手之一。它被定位为 Anthropic Claude Code 的开源替代方案,具有以下核心优势:
特性 说明 🔓 完全开源 代码透明,社区驱动,可审计、可定制 🏠 本地优先 代码留在本地,除非主动选择共享 🆓 免费模型内置 开箱即用,无需配置即可使用内置免费模型 🔌 多模型支持 可连接 Claude、GPT、Gemini 等任意提供商 技术架构
- 语言:Go 语言开发,单一二进制文件,跨平台兼容
- 协议支持:
- MCP(Model Context Protocol):通过外部工具扩展功能的标准化协议
- LSP(Language Server Protocol):为多种编程语言提供代码智能功能
- 运行模式:终端 CLI / 桌面应用 / IDE 扩展 / Server 模式(本配置采用)
Server 模式的独特价值
本配置采用 Server 模式(
opencode serve),这意味着:opencode: ports: - 4096:4096 # HTTP 服务端口 command: > opencode serve --port 4096 --hostname 0.0.0.0🌟 Server 模式的优势:
- 远程访问:通过浏览器或 API 调用,从任何设备访问 AI 编程能力
- 团队共享:多人可同时使用同一个 OpenCode 实例(需注意并发限制)
- 资源集中:在高性能服务器上运行,低配置客户端也能享受 AI 辅助编程
- 与 ClawdBot 联动:ClawdBot 可以通过 OpenCode Zen 提供商直接调用 OpenCode 服务
隐私与成本优势
根据 Docker 官方博客:
"Using OpenCode with Docker Model Runner enables a privacy-first approach to AI-assisted development, keeping all model inference within infrastructure you control."
配合本地模型(如通过 Docker Model Runner 运行 Llama、Qwen 等开源模型),可以实现:
- 🔒 完全隐私:代码和对话数据永不离开本地
- 💰 零边际成本:模型下载后,无 token 费用、无请求定价、无意外账单
1.3 📁 FileBrowser —— 优雅的可视化文件管理
为什么需要 FileBrowser?
在容器化环境中,文件管理是一个常被忽视但极其重要的环节。传统方式(SSH + 命令行)对于非技术用户不够友好,对于快速预览文件也不够高效。
FileBrowser 是一款基于 Go 语言开发的轻量级网页文件管理器:
"FileBrowser 是一款开源的私有云盘项目,简单实用、轻量级、跨平台,安装部署简单快捷,自带网页版文件管理器。"
核心功能
功能 说明 📂 文件浏览 目录树导航、文件搜索、缩略图预览 ⬆️ 上传下载 拖拽上传、批量下载、断点续传 ✏️ 在线编辑 文本文件在线编辑、代码高亮 🎬 媒体预览 图片、视频、音频在线播放 👥 多用户管理 用户权限分配、目录隔离 🔗 文件分享 生成分享链接、设置有效期 ⌨️ Shell 命令 支持自定义命令执行 本配置中的设计
filebrowser: image: filebrowser/filebrowser:latest user: "0:0" # 以 root 身份运行 volumes: - ./data:/srv # 主工作目录(可读写) - ./clawdbot-config:/srv/.clawdbot:ro # ClawdBot 配置(只读) - ./filebrowser-config:/database # 数据库持久化 ports: - 2080:80 # 映射到 2080 端口💡 设计亮点:
配置项 设计意图 user: "0:0"以 root 用户运行,确保对所有挂载目录有完全访问权限(生产环境需谨慎评估) ./clawdbot-config:ro只读挂载 ClawdBot 配置,允许查看但禁止通过 FileBrowser 修改,增强安全性 独立 database卷配置与数据分离,便于备份和迁移用户账户、设置等元数据 🏗️ 二、架构设计深度剖析
2.1 共享存储架构
本配置最核心的设计理念是"共享工作目录",通过将
./data目录同时挂载到三个容器:┌─────────────────┐ │ ./data 目录 │ │ (共享工作空间) │ └────────┬────────┘ │ ┌──────────────────┼──────────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ ClawdBot │ │ OpenCode │ │ FileBrowser │ │ /root/clawd/ │ │ /root/clawd/ │ │ /srv │ │ canvas │ │ canvas │ │ │ └──────────────┘ └──────────────┘ └──────────────┘这种设计带来的好处:
- 无缝协作:ClawdBot 生成的文件可直接被 OpenCode 读取并处理
- 即时可见:代码修改立即在 FileBrowser 中可见,支持在线预览
- 统一管理:只需备份一个目录,即可保存所有工作成果
- 资源高效:避免文件在容器间复制,节省存储空间
"如果要在多个容器之间共享数据卷,就必须在顶级的 volumes 节点中定义这个数据卷。"
本配置使用 Bind Mount(绑定挂载)而非 Named Volume(命名卷),这样设计的原因是:
挂载类型 适用场景 本配置选择 Bind Mount 需要直接访问宿主机文件、开发调试场景 ✅ ./data:/root/clawd/canvasNamed Volume 数据需要 Docker 管理、跨主机迁移 ✅ clawdbot-modules(仅用于 NPM 模块)2.2 网络隔离设计
networks: ai-agents: name: ai-agents-network driver: bridge所有三个容器都连接到名为
ai-agents-network的桥接网络。这种设计的意义:- 容器间通信:三个服务可以通过容器名直接互访(如
http://opencode:4096) - 与宿主机隔离:除了显式暴露的端口,容器内部网络对宿主机不可见
- DNS 自动解析:Docker 内置 DNS 自动解析容器名到 IP 地址
🔐 安全提示: 如果需要将这些服务暴露到公网,强烈建议:
- 使用反向代理(如 Traefik、Nginx)统一入口
- 配置 SSL/TLS 加密(Let's Encrypt 免费证书)
- 启用访问控制和身份认证
2.3 容器生命周期管理
restart: unless-stopped三个容器都配置了
unless-stopped重启策略,这意味着:场景 行为 容器崩溃 自动重启 Docker 服务重启 自动重启 手动 docker stop不会自动重启 系统重启 如果 Docker 设置了开机自启,则容器也会自动启动 这是生产环境中最常用的重启策略,兼顾了可用性和可控性。
完整Docker Compose:
version: "3.8" services: # ============================================ # ClawdBot Gateway # ============================================ clawdbot-gateway: image: node:22-slim container_name: clawdbot-gateway tty: true stdin_open: true volumes: - ./data:/root/clawd/canvas - ./clawdbot-config:/root/.clawdbot - clawdbot-modules:/usr/local/lib/node_modules working_dir: /root/clawd/canvas environment: - TZ=Asia/Shanghai - NODE_ENV=production - CLAWDBOT_GATEWAY_TOKEN=your_secure_token_here ports: - 18789:18789 entrypoint: - /bin/bash - -c command: - | if ! command -v clawdbot &> /dev/null; then apt-get update && apt-get install -y curl git ca-certificates npm install -g clawdbot@latest fi mkdir -p /root/clawd/canvas echo "🦞 Starting Clawdbot Gateway..." cd /usr/local/lib/node_modules/clawdbot exec node dist/index.js gateway --bind lan --port 18789 --allow-unconfigured networks: - ai-agents restart: unless-stopped # ============================================ # OpenCode Server # ============================================ opencode: image: ubuntu:22.04 container_name: opencode tty: true stdin_open: true volumes: - ./data:/root/clawd/canvas - ./opencode-config:/root/.config/opencode - ./opencode-share:/root/.local/share/opencode - ./opencode-bin:/root/.opencode working_dir: /root/clawd/canvas environment: - TZ=Asia/Shanghai - OPENCODE_SERVER_PASSWORD=your_secure_password - OPENCODE_SERVER_USERNAME=opencode ports: - 4096:4096 command: > /bin/bash -c " apt-get update && apt-get install -y curl git ca-certificates && if [ ! -f /root/.opencode/bin/opencode ]; then curl -fsSL https://opencode.ai/install | bash fi && ln -sf /root/.opencode/bin/opencode /usr/bin/opencode 2>/dev/null || true && echo '🤖 启动 OpenCode Server...' && /root/.opencode/bin/opencode serve --port 4096 --hostname 0.0.0.0 " networks: - ai-agents restart: unless-stopped # ============================================ # FileBrowser - 共享文件管理器 # ============================================ filebrowser: image: filebrowser/filebrowser:latest container_name: filebrowser user: "0:0" volumes: - ./data:/srv - ./clawdbot-config:/srv/.clawdbot - ./filebrowser-config:/database environment: - FB_DATABASE=/database/filebrowser.db - FB_ROOT=/srv - FB_PORT=80 ports: - 2080:80 networks: - ai-agents restart: unless-stopped volumes: clawdbot-modules: name: clawdbot-modules networks: ai-agents: name: ai-agents-network driver: bridge📦 三、部署实战指南
3.1 环境准备
系统要求
组件 最低要求 推荐配置 操作系统 Linux(推荐)/ macOS / Windows(WSL2) Ubuntu 22.04 LTS Docker 20.10+ 25.0+ Docker Compose v2.0+(CLI 插件版) v2.24+ 内存 4GB 8GB+ 存储 10GB 可用空间 50GB+ SSD Docker 安装(以 Ubuntu 为例)
# 安装 Docker curl -fsSL https://get.docker.com | sh # 将当前用户加入 docker 组(免 sudo) sudo usermod -aG docker $USER # 验证安装 docker --version docker compose version📝 注意: 如果在中国大陆部署,建议配置国内镜像加速器以提升拉取速度。
3.2 目录结构准备
# 创建项目目录 mkdir -p ~/ai-agent-workspace cd ~/ai-agent-workspace # 创建子目录结构 mkdir -p data clawdbot-config opencode-config opencode-share opencode-bin filebrowser-config最终目录结构:
~/ai-agent-workspace/ ├── docker-compose-unified.yml # 主配置文件 ├── data/ # 🔥 共享工作目录 ├── clawdbot-config/ # ClawdBot 配置(放入 clawdbot.json) ├── opencode-config/ # OpenCode 配置 ├── opencode-share/ # OpenCode 数据 ├── opencode-bin/ # OpenCode 二进制文件 └── filebrowser-config/ # FileBrowser 数据库3.3 配置文件详解
ClawdBot 配置(clawdbot-config/clawdbot.json)
在首次使用前,你需要在
clawdbot-config/目录下创建clawdbot.json配置文件。以下是一个基础模板:{ "model": { "provider": "anthropic", "name": "claude-sonnet-4-20250514" }, "auth": { "anthropic": { "apiKey": "你的 Anthropic API Key" } }, "channels": { "telegram": { "enabled": false, "token": "" } } }🔐 安全提示: API Key 属于敏感信息,请勿将其提交到版本控制系统!
OpenCode 环境变量
配置文件中已预设:
environment: - OPENCODE_SERVER_PASSWORD=your_secure_password - OPENCODE_SERVER_USERNAME=opencode⚠️ 重要:请务必将
your_secure_password修改为强密码!3.4 启动服务
# 进入项目目录 cd ~/ai-agent-workspace # 启动所有服务(后台运行) docker compose -f docker-compose-unified.yml up -d # 查看服务状态 docker compose -f docker-compose-unified.yml ps # 查看日志(实时追踪) docker compose -f docker-compose-unified.yml logs -f首次启动可能需要 3-10 分钟(取决于网络速度),因为需要:
- 拉取 Docker 镜像
- 安装 ClawdBot npm 包
- 下载 OpenCode 二进制文件
3.5 访问服务
服务 访问地址 默认凭据 🦞 ClawdBot http://IP:18789/?token=haha1233Token 在 URL 中 🤖 OpenCode http://IP:4096用户名: opencode, 密码: 见配置 📁 FileBrowser http://IP:2080用户名: admin, 密码: admin(首次登录后请立即修改!) ⚙️ 四、运维与最佳实践
4.1 日常运维命令
# 停止所有服务 docker compose -f docker-compose-unified.yml stop # 启动所有服务 docker compose -f docker-compose-unified.yml start # 重启单个服务 docker compose -f docker-compose-unified.yml restart clawdbot-gateway # 查看资源使用情况 docker stats # 进入容器内部调试 docker exec -it clawdbot-gateway bash docker exec -it opencode bash # 完全清理(包括网络和卷) docker compose -f docker-compose-unified.yml down -v4.2 备份策略
需要备份的关键目录:
目录 内容 备份频率建议 ./data/工作成果、代码、文档 每日 ./clawdbot-config/ClawdBot 配置(含 API Key) 变更时 ./opencode-config/OpenCode 配置 变更时 ./filebrowser-config/用户账户、设置 每周 简单备份脚本示例:
#!/bin/bash BACKUP_DIR="/backup/ai-agent-$(date +%Y%m%d)" mkdir -p $BACKUP_DIR cp -r ~/ai-agent-workspace/data $BACKUP_DIR/ cp -r ~/ai-agent-workspace/*-config $BACKUP_DIR/ echo "备份完成: $BACKUP_DIR"4.3 安全加固建议
- 修改默认密码:首次部署后立即修改 OpenCode 和 FileBrowser 的默认密码
- 限制网络访问:如果不需要远程访问,将端口绑定到
127.0.0.1 - 启用防火墙:使用
ufw或iptables限制访问 IP - 定期更新:及时更新 Docker 镜像以获取安全补丁
- 日志审计:定期检查容器日志,发现异常行为
🔮 五、扩展与进阶
5.1 添加反向代理(Traefik)
"A reverse proxy can dramatically simplify this setup by being the single exposed service and then routing requests to the appropriate service based on the request URL."
如果需要将服务暴露到公网,强烈建议添加 Traefik 作为统一入口:
- 自动 HTTPS(Let's Encrypt 证书)
- 基于域名的路由
- 负载均衡与健康检查
- 中间件支持(认证、限流、压缩等)
5.2 集成本地大模型
"One of the reasons for running models locally is privacy... Another significant benefit is cost savings."
可以添加 Ollama 或 Docker Model Runner 服务,实现完全本地化的 AI 推理:
# 示例:添加 Ollama 服务 ollama: image: ollama/ollama:latest volumes: - ollama-data:/root/.ollama ports: - 11434:11434 networks: - ai-agents5.3 与 MCP 工具生态集成
"基于 MCP 协议,Agent 可以不局限于语言、框架的限制,集成社区里优秀的 MCP Server。"
ClawdBot 和 OpenCode 都支持 MCP 协议,可以通过 MCP Server 扩展以下能力:
- 🌐 网页抓取与搜索
- 📊 数据库查询
- 📧 邮件发送
- 📅 日历管理
- 🏠 智能家居控制
📋 小结
核心知识点回顾 ClawdBot(AI 助手网关)、OpenCode(开源编程助手)、FileBrowser(文件管理)的功能定位 共享存储架构、网络隔离设计、容器生命周期管理 环境准备、目录结构、配置详解、启动与访问 运维命令、备份策略、安全加固 Traefik 反向代理、本地大模型、MCP 生态集成 💡 在 AI Agent 时代,掌握容器化部署能力是每位开发者的必备技能。本文提供的这套统一环境,不仅是学习的起点,更是生产力的倍增器。祝你在 AI 开发之旅中一帆风顺!🦞🤖📁
歡迎留言回复交流。
Log in to reply.