OpenCode + FileBrowser Docker 部署指南
-
OpenCode + FileBrowser Docker 部署指南
目录在服务器或 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 工作流程
- 你通过终端执行
docker exec -it opencode opencode进入 AI 交互界面 - AI 在容器内的
/work目录读写文件 - 文件同步到宿主机的
./data目录 - FileBrowser 通过网页展示
./data目录内容 - 你在浏览器中查看、下载、编辑 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 -d4.2 等待安装完成
首次启动需等待 1-2 分钟:
docker logs -f opencode4.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进入容器 Shell docker exec -it opencode /bin/bash5.2 AI 交互界面内命令
进入 OpenCode 后,可使用:
命令 说明 /init让 AI 分析当前目录结构 /providers配置 AI 模型提供商 /sessions查看会话历史 /help显示帮助 /exit或Ctrl+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
歡迎留言回复交流。
Log in to reply.