Decentralization? We're still early!

一家人就是要整整齐齐:ClawdBot/Moltbot + OpenCode + FileBrowser

  • 一家人就是要整整齐齐:ClawdBot/Moltbot + OpenCode + FileBrowser

    發布人 Brave 2026-01-27 14:40

    在 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 模式的优势:

    1. 远程访问:通过浏览器或 API 调用,从任何设备访问 AI 编程能力
    2. 团队共享:多人可同时使用同一个 OpenCode 实例(需注意并发限制)
    3. 资源集中:在高性能服务器上运行,低配置客户端也能享受 AI 辅助编程
    4. 与 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     │  │              │
       └──────────────┘  └──────────────┘  └──────────────┘

    这种设计带来的好处:

    1. 无缝协作:ClawdBot 生成的文件可直接被 OpenCode 读取并处理
    2. 即时可见:代码修改立即在 FileBrowser 中可见,支持在线预览
    3. 统一管理:只需备份一个目录,即可保存所有工作成果
    4. 资源高效:避免文件在容器间复制,节省存储空间

    "如果要在多个容器之间共享数据卷,就必须在顶级的 volumes 节点中定义这个数据卷。"

    本配置使用 Bind Mount(绑定挂载)而非 Named Volume(命名卷),这样设计的原因是:

    挂载类型适用场景本配置选择
    Bind Mount需要直接访问宿主机文件、开发调试场景./data:/root/clawd/canvas
    Named Volume数据需要 Docker 管理、跨主机迁移clawdbot-modules(仅用于 NPM 模块)

    2.2 网络隔离设计

    networks:
      ai-agents:
        name: ai-agents-network
        driver: bridge

    所有三个容器都连接到名为 ai-agents-network 的桥接网络。这种设计的意义:

    1. 容器间通信:三个服务可以通过容器名直接互访(如 http://opencode:4096
    2. 与宿主机隔离:除了显式暴露的端口,容器内部网络对宿主机不可见
    3. 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
    Docker20.10+25.0+
    Docker Composev2.0+(CLI 插件版)v2.24+
    内存4GB8GB+
    存储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 分钟(取决于网络速度),因为需要:

    1. 拉取 Docker 镜像
    2. 安装 ClawdBot npm 包
    3. 下载 OpenCode 二进制文件

    3.5 访问服务

    服务访问地址默认凭据
    🦞 ClawdBothttp://IP:18789/?token=haha1233Token 在 URL 中
    🤖 OpenCodehttp://IP:4096用户名: opencode, 密码: 见配置
    📁 FileBrowserhttp://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 -v

    4.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 安全加固建议

    1. 修改默认密码:首次部署后立即修改 OpenCode 和 FileBrowser 的默认密码
    2. 限制网络访问:如果不需要远程访问,将端口绑定到 127.0.0.1
    3. 启用防火墙:使用 ufwiptables 限制访问 IP
    4. 定期更新:及时更新 Docker 镜像以获取安全补丁
    5. 日志审计:定期检查容器日志,发现异常行为

    🔮 五、扩展与进阶

    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-agents

    5.3 与 MCP 工具生态集成

    "基于 MCP 协议,Agent 可以不局限于语言、框架的限制,集成社区里优秀的 MCP Server。"

    ClawdBot 和 OpenCode 都支持 MCP 协议,可以通过 MCP Server 扩展以下能力:

    • 🌐 网页抓取与搜索
    • 📊 数据库查询
    • 📧 邮件发送
    • 📅 日历管理
    • 🏠 智能家居控制

    📋 小结

    核心知识点回顾
    ClawdBot(AI 助手网关)、OpenCode(开源编程助手)、FileBrowser(文件管理)的功能定位
    共享存储架构、网络隔离设计、容器生命周期管理
    环境准备、目录结构、配置详解、启动与访问
    运维命令、备份策略、安全加固
    Traefik 反向代理、本地大模型、MCP 生态集成

    💡 在 AI Agent 时代,掌握容器化部署能力是每位开发者的必备技能。本文提供的这套统一环境,不仅是学习的起点,更是生产力的倍增器。祝你在 AI 开发之旅中一帆风顺!🦞🤖📁

    Brave 回复 3 days, 23 hours ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在