Decentralization? We're still early!

OpenCode + FileBrowser Docker 部署指南

  • OpenCode + FileBrowser Docker 部署指南

    發布人 Brave 2026-01-17 00:33

    在服务器或 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

    Brave 回复 2 weeks, 1 day ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

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