目标
在 devbox 中交付可用于单机开发环境的 Docker Compose 应用管理,与 Kubernetes runtime 并列,并统一复用应用商店、应用列表和管理抽屉。当前范围是:单机、文件原生、持久异步任务驱动、安全受控的 Compose Stack 管理器、原生 1Panel 开源应用商店兼容,以及系统 Compose project 自动发现与安全接管。
Compose 应用管理(已完成)
原生 1Panel 应用商店(已完成)
直接读取 1Panel 官方仓库格式(根 data.yaml、apps/<key>/data.yml、版本 data.yml/formFields、docker-compose.yml),不要求上游转换为 devbox 私有 catalog。
系统 Compose project 自动发现与安全接管(已完成)
安全边界
- blocked 永不可 override:privileged、docker.sock、host network/PID/UTS/userns、cap_add ALL、系统关键 bind 等。
- Secret 只进入权限受限的
.env/临时期望文件,HTTP、revision、Task、audit、CLI error、日志全链路脱敏。
- 动态 Git 来源通过 Git CLI 获取,URL 校验到 clone 之间仍存在无法 pin DNS 的 rebinding 时间窗;该残余风险已写入研究文档。
- 自动发现依赖仍保留的容器 metadata;完全
compose down 后不做文件系统全盘搜索。
验证
明确边界
- CasaOS:官方 v2 协议已做一手评估,但构建产物、路径模型与参数模型不同,本 PR 不放入半成品 adapter。
- fnOS / Unraid:本轮不在范围,不作未经核验的开闭源断言。
- 多主机、数据备份/恢复、GitOps 自动 reconcile、K8s↔Compose 自动转换:不属于当前单机里程碑。
实现与验证见 PR #3。
目标
在 devbox 中交付可用于单机开发环境的 Docker Compose 应用管理,与 Kubernetes runtime 并列,并统一复用应用商店、应用列表和管理抽屉。当前范围是:单机、文件原生、持久异步任务驱动、安全受控的 Compose Stack 管理器、原生 1Panel 开源应用商店兼容,以及系统 Compose project 自动发现与安全接管。
Compose 应用管理(已完成)
apps.Controller统一领域 seam,Compose/Kubernetes adapter 隐藏在模块内部。devbox/v1HTTP/Git catalog 进入同一可信安装链路。原生 1Panel 应用商店(已完成)
直接读取 1Panel 官方仓库格式(根
data.yaml、apps/<key>/data.yml、版本data.yml/formFields、docker-compose.yml),不要求上游转换为 devbox 私有 catalog。1panel。apps.db,与只读 YAML 来源合并;token 只写不回显;来源变更与审计同事务。Controller.Apply、Task、revision 与风险策略。1panel-network、container_name、不执行脚本、password 默认值、可变镜像、残留插值、sparse clone、last-good cache 和来源 generation。系统 Compose project 自动发现与安全接管(已完成)
openat2原子打开,拒绝 symlink/path traversal/magic-link/跨文件系统/非普通文件/超限或读取中变化;FIFO 不会阻塞请求。安全边界
.env/临时期望文件,HTTP、revision、Task、audit、CLI error、日志全链路脱敏。compose down后不做文件系统全盘搜索。验证
git diff --checkmake test(Go race;pkg/apps71.6%)go vet ./...make build-all,嵌入 UI 与 Linux amd64 二进制同步明确边界
实现与验证见 PR #3。