🔥 BRAVE 質押池已上線 — 在錢包搜尋 BRAVE 即可委託

OpenCode + FileBrowser Docker 部署指南

    • #32770

      在服务器或 NAS 上通过 Docker 部署 OpenCode AI 编程代理,配合 FileBrowser 实现”终端 AI 写代码 + 网页管理文件”的远程开发工作流。


      一、认识 OpenCode

      1.1 OpenCode 是什么?

      OpenCode 是一款开源的终端 AI 编程代理(Coding Agent),使用 Go 语言编写。它能够直接读取、修改、创建文件,并与你的代码库深度交互。

      与本地安装不同,本方案将 OpenCode 部署在 Docker 容器中,你通过 docker exec 命令从终端进入容器与 AI 交互。这种方式适合:

      • 🖥️ 在远程服务器或 NAS 上运行 AI 开发环境
      • 🔒 隔离 AI 操作环境,避免影响宿主机
      • 🔄 便于环境迁移和备份

      1.2 核心特性

      特性说明
      🤖 多模型支持支持 75+ 种 AI 模型(Claude、GPT、Gemini、本地模型等)
      🔐 隐私优先不存储任何代码或上下文数据
      💸 免费可用内置免费模型,无需订阅即可使用
      🎫 订阅兼容可绑定 Claude Pro/Max 或 ChatGPT Plus/Pro
      📡 LSP 支持自动加载语言服务器,提供代码智能感知

      项目数据(2026年1月):GitHub 72K+ Stars,500+ 贡献者,65万+ 月活开发者

      官方网站https://opencode.ai


      🏗️ 二、架构说明

      2.1 部署架构

       
      ┌─────────────────────────────────────────────────────────┐
      │                      宿主机 / 服务器                      │
      ├─────────────────────────────────────────────────────────┤
      │                                                         │
      │   ┌─────────────────┐       ┌─────────────────┐        │
      │   │   OpenCode 容器  │       │ FileBrowser 容器│        │
      │   │                 │       │                 │        │
      │   │  /work ◄────────┼───────┼─► /srv          │        │
      │   │                 │       │                 │        │
      │   │  通过终端访问    │       │  通过浏览器访问   │        │
      │   │  docker exec    │       │  http://IP:8080 │        │
      │   └─────────────────┘       └─────────────────┘        │
      │            │                         │                  │
      │            └────────┬────────────────┘                  │
      │                     ▼                                   │
      │           ┌─────────────────┐                          │
      │           │  ./data 共享目录 │                          │
      │           └─────────────────┘                          │
      │                                                         │
      └─────────────────────────────────────────────────────────┘

      2.2 工作流程

      1. 通过终端执行 docker exec -it opencode opencode 进入 AI 交互界面
      2. AI 在容器内的 /work 目录读写文件
      3. 文件同步到宿主机的 ./data 目录
      4. FileBrowser 通过网页展示 ./data 目录内容
      5. 在浏览器中查看、下载、编辑 AI 生成的文件

      🐳 三、Docker Compose 配置

      创建 docker-compose.yml

      services:
        opencode:
          image: ubuntu:22.04
          container_name: opencode
          tty: true
          stdin_open: true
          volumes:
            - ./data:/work
            - ./opencode-config:/root/.config/opencode
            - ./opencode-share:/root/.local/share/opencode
            - ./opencode-bin:/root/.opencode
          working_dir: /work
          environment:
            - TZ=Asia/Shanghai
          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 &&
              tail -f /dev/null
            "
          restart: unless-stopped
        filebrowser:
          image: filebrowser/filebrowser:latest
          container_name: filebrowser
          user: 0:0
          volumes:
            - ./data:/srv
            - ./filebrowser-config:/database
          command:
            - --database
            - /database/filebrowser.db
            - --root
            - /srv
          ports:
            - 8080:80
          restart: unless-stopped
      networks: {}

      也可以使用带server的版本:

      services:
        opencode:
          image: ubuntu:22.04
          container_name: opencode
          tty: true
          stdin_open: true
          volumes:
            - ./data:/work
            - ./opencode-config:/root/.config/opencode
            - ./opencode-share:/root/.local/share/opencode
            - ./opencode-bin:/root/.opencode
          working_dir: /work
          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
            "
          restart: unless-stopped
        filebrowser:
          image: filebrowser/filebrowser:latest
          container_name: filebrowser
          user: 0:0
          volumes:
            - ./data:/srv
            - ./filebrowser-config:/database
          command:
            - --database
            - /database/filebrowser.db
            - --root
            - /srv
          ports:
            - 8080:80
          restart: unless-stopped
      networks: {}

      🚀 四、部署与使用

      4.1 启动服务

      docker compose up -d

      4.2 等待安装完成

      首次启动需等待 1-2 分钟:

      docker logs -f opencode

      4.3 通过终端访问 OpenCode

      进入交互式 AI 对话界面:

      docker exec -it opencode opencode

      如果报错 executable file not found,使用完整路径:

      docker exec -it opencode /root/.opencode/bin/opencode

      执行单条 AI 指令(无需进入交互界面):

      docker exec -it opencode opencode "你的指令" 

      4.4 通过浏览器访问 FileBrowser

      打开 http://你的服务器IP:8080

      • 默认用户名:admin
      • 默认密码:查看终端提示

      五、终端操作命令

      5.1 基础命令

      操作命令
      进入 AI 交互界面docker exec -it opencode opencode
      执行单条指令docker exec -it opencode opencode "指令内容"
      查看版本docker exec -it opencode opencode --version
      进入容器 Shelldocker exec -it opencode /bin/bash

      5.2 AI 交互界面内命令

      进入 OpenCode 后,可使用:

      命令说明
      /init让 AI 分析当前目录结构
      /providers配置 AI 模型提供商
      /sessions查看会话历史
      /help显示帮助
      /exitCtrl+D退出

      5.3 实战示例

      生成代码文件:

      docker exec -it opencode opencode "创建一个 index.html 个人主页" 

      分析项目:

      docker exec -it opencode opencode "分析当前目录的代码结构" 

      重构代码:

      docker exec -it opencode opencode "重构 main.py 并添加错误处理" 

      生成文档:

      docker exec -it opencode opencode "为这个项目生成 README.md" 

      执行后,刷新 FileBrowser 网页即可看到生成的文件。


      六、常见问题

      问题1:找不到 opencode 命令

       
      exec: "opencode": executable file not found in $PATH

      解决: 使用完整路径或创建软链接

      bash
      # 方法一:完整路径 docker exec -it opencode /root/.opencode/bin/opencode
      
      # 方法二:创建软链接(一次性) docker exec -it opencode ln -sf /root/.opencode/bin/opencode /usr/bin/opencode

      问题2:网络超时

      解决: 添加代理环境变量

      environment:   - HTTP_PROXY=http://proxy:port   - HTTPS_PROXY=http://proxy:port

  • 抱歉,回覆主題必需先登入。