Files
appstore/apps/opencode-workstation

OpenCode Workstation

产品介绍

这是一个面向 1Panel 的 OpenCode Workstation 应用,提供可持久化的 OpenCode 运行环境,支持 Web UIserve)和 ACP 接口(acp)两种运行模式,并可按需集成 oh-my-opencode、DCP、GPT Unlocked 等扩展能力。

主要功能

  • 官方 HOME 路径持久化:直接按 OpenCode 官方目录模型运行,减少兼容问题
  • 双模式运行:支持 serveWeb 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)→ /workspace
  • APP_DATA_DIR_2./data/home-config)→ /home/opencode/.config
  • APP_DATA_DIR_3./data/home-share)→ /home/opencode/.local/share
  • APP_DATA_DIR_4./data/home-agents)→ /home/opencode/.agents
  • APP_DATA_DIR_5./data/home-claude)→ /home/opencode/.claude
  • APP_DATA_DIR_6./data/home-opencode)→ /home/opencode/.opencode

其中:

  • home-configOpenCode 配置、skills、插件配置
  • home-share:OpenCode 安装本体、数据库、日志、运行时数据
  • home-agentsagent-compatible skills / agents
  • home-claudeclaude-compatible skills
  • home-opencodeOpenCode HOME / project-style 兼容目录
  • CUSTOM_ENV_FILE(默认 ./data/custom.env):额外环境变量文件,适合放测试服务、VPS、私有 API 网关等自定义变量

表单填写指南

必填字段

字段 说明
Serve Port Web UI 访问端口,默认 4096
ACP Port ACP 协议端口,默认 8765
时区 容器时区,默认 Asia/Shanghai
各挂载目录 OpenCode HOME 及工作区持久化目录
运行模式 serveWeb 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 提交作者信息

配置分层

推荐按三层使用:

  1. 部署级环境变量层
    • 通过 .env / 1Panel 表单 / CUSTOM_ENV_FILE 注入
    • .env / 1Panel 表单中的显式变量优先级高于 CUSTOM_ENV_FILE 中的同名变量
    • 适合:OPENCODE_MODELOPENCODE_SMALL_MODELOPENCODE_PROVIDER_IDOPENCODE_EXTRA_PLUGINS、各类 *_BASE_URL / *_API_KEY
  2. 生成配置层
    • ~/.config/opencode/opencode.json
    • 由启动脚本和 update_opencode_config.py 动态生成
  3. 用户覆盖层
    • ~/.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 路径留空