mirror of
https://github.com/okxlin/appstore.git
synced 2026-09-22 16:00:58 +00:00
OpenCode Workstation
产品介绍
这是一个面向 1Panel 的 OpenCode Workstation 应用,提供可持久化的 OpenCode 运行环境,支持 Web UI(serve)和 ACP 接口(acp)两种运行模式,并可按需集成 oh-my-opencode、DCP、GPT Unlocked 等扩展能力。
主要功能
- 官方 HOME 路径持久化:直接按 OpenCode 官方目录模型运行,减少兼容问题
- 双模式运行:支持
serve(Web UI)和acp(协议模式) - oh-my-opencode 集成:支持自动安装与扩展刷新
- 多 provider 支持:OpenAI、Anthropic、OpenRouter、Gemini 等可通过表单配置
- Docker 套接字可选:可按需挂载宿主机 Docker 套接字
访问说明
- Web / serve 默认端口:
http://<host>:4096 - ACP 默认端口:
8765 serve模式适合通过 1Panel 反向代理后再对外访问acp端口用于 ACP transport,不适合直接用浏览器访问
运行时目录模型
当前应用按 OpenCode 官方 HOME 路径运行:
~/.config/opencode~/.agents~/.claude~/.opencode~/.local/share/opencode~/.local/share/oh-my-opencode/workspace
这样做的原因:
- 与 OpenCode upstream 源码目录发现逻辑一致
skills/agents/claude-compatible扩展不需要额外路径翻译- 避免旧版
/config -> HOME单文件同步漂移 - 后续 upstream 扩展 HOME 目录扫描时兼容风险更低
持久化数据说明
应用数据按用途拆分挂载,重建容器不会丢失:
APP_DATA_DIR_1(./data/workspace)→/workspaceAPP_DATA_DIR_2(./data/home-config)→/home/opencode/.configAPP_DATA_DIR_3(./data/home-share)→/home/opencode/.local/shareAPP_DATA_DIR_4(./data/home-agents)→/home/opencode/.agentsAPP_DATA_DIR_5(./data/home-claude)→/home/opencode/.claudeAPP_DATA_DIR_6(./data/home-opencode)→/home/opencode/.opencode
其中:
home-config:OpenCode 配置、skills、插件配置home-share:OpenCode 安装本体、数据库、日志、运行时数据home-agents:agent-compatible skills / agentshome-claude:claude-compatible skillshome-opencode:OpenCode HOME / project-style 兼容目录CUSTOM_ENV_FILE(默认./data/custom.env):额外环境变量文件,适合放测试服务、VPS、私有 API 网关等自定义变量
表单填写指南
必填字段
| 字段 | 说明 |
|---|---|
| Serve Port | Web UI 访问端口,默认 4096 |
| ACP Port | ACP 协议端口,默认 8765 |
| 时区 | 容器时区,默认 Asia/Shanghai |
| 各挂载目录 | OpenCode HOME 及工作区持久化目录 |
| 运行模式 | serve(Web UI)或 acp(协议模式) |
oh-my-opencode 选项
| 字段 | 说明 |
|---|---|
| Bootstrap OpenCode on Start | 首次运行时自动安装 OpenCode 本体 |
| Auto Install oh-my-opencode | 启动时自动安装 / 刷新 oh-my-opencode |
| Install DCP Plugin | 启用 DCP 插件 |
| Install GPT Unlocked Plugin | 启用 GPT Unlocked 插件 |
| Claude / Gemini / Copilot Install Mode | 控制对应 provider 的安装模式 |
| Extra Install Args | 传递给 oh-my-opencode 安装脚本的额外参数 |
API Key 填写
| 字段 | 说明 |
|---|---|
| OpenAI API Key + Base URL | OpenAI 或兼容第三方接口的 Key / 地址 |
| Anthropic / OpenRouter / Gemini | 对应 provider 的 Key 与可选自定义地址 |
| GitHub Token | 用于 Git 操作(如拉取私有仓库) |
| Git Author / Committer | 容器内 Git 提交作者信息 |
配置分层
推荐按三层使用:
- 部署级环境变量层
- 通过
.env/ 1Panel 表单 /CUSTOM_ENV_FILE注入 .env/ 1Panel 表单中的显式变量优先级高于CUSTOM_ENV_FILE中的同名变量- 适合:
OPENCODE_MODEL、OPENCODE_SMALL_MODEL、OPENCODE_PROVIDER_ID、OPENCODE_EXTRA_PLUGINS、各类*_BASE_URL/*_API_KEY
- 通过
- 生成配置层
~/.config/opencode/opencode.json- 由启动脚本和
update_opencode_config.py动态生成
- 用户覆盖层
~/.config/opencode/opencode.user.json或~/.config/opencode/opencode.user.jsonc- 适合手工追加 provider、models、plugin 高级配置、额外 MCP 条目
内部升级说明
重建容器会更新镜像层,但是否重新安装 / 刷新 OpenCode 与 oh-my-opencode,取决于当前表单开关和持久化目录状态。
常见场景:
- 镜像层更新:在 1Panel 中重建容器
- 刷新 OpenCode 本体:进入容器执行
/app/scripts/update-opencode-userland.sh - 刷新 oh-my-opencode 行为:重建容器,或手动重新执行
bunx oh-my-opencode install --no-tui ... - 额外环境变量:升级脚本会确保
CUSTOM_ENV_FILE存在;后续可直接编辑该文件追加自定义变量
注意事项
- 不要把真实密钥硬编码进
opencode.user.json,优先使用环境变量 ~/.config/opencode/opencode.json是生成产物,不建议长期手工维护- 若不需要容器内调用 Docker,请将 Docker Socket 路径留空