已置顶
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/bash |
5.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
0 个回应