一款 Harbor / Zot 的轻量替代——原生 OCI v2,内嵌 distribution v3,
自带漂亮的 Web UI,开箱支持 Docker Hub / GHCR 镜像加速,
全部塞进一个 Go 二进制。配 SQLite,docker compose up 就能跑。
stashhub 设计上就是要在你已经有的机器上跑——一台 VPS、一只 Raspberry Pi、一台办公电脑都够。
写给那些想要自己的私有仓库、却不想为此搭一套 Kubernetes 平台的团队。
一个 Go 二进制,内嵌 distribution v3,内嵌 React 19 前端,SQLite 持久化全部状态。docker compose up,仓库就活了。
没有代理、没有翻译。docker push / pull / login 直连标准 v2 协议,blob 与 manifest 走的就是 distribution 自己的实现。
把它配成 Docker daemon 的 registry-mirror。多上游路由、Manifest TTL、LRU sweeper、tag 白名单淘汰——全部在管理面板可调。
bcrypt + 旋转刷新 JWT,每用户 PAT(可作 docker 密码),实时会话列表,每一次 push / pull / delete 都有审计行落库。
用户、存储、GC、保留策略 dry-run、SMTP 测试、镜像加速策略——所有运行期可调项都在 Web UI,再也不用改 yaml 重启。
默认走文件系统驱动;改一段配置就能切到 S3 / R2 / MinIO / B2 / DO Spaces。同二进制、同 UX,不需要重新架构。
在管理后台为每个上游配置一个 path prefix——你 daemon 的拉取就成了局域网命中。Manifest TTL 让浮动 tag 保持新鲜,sweeper 让磁盘保持清爽。
/v2/[prefix]/…,区分 Docker Hub / GHCR / 私有上游。AES-256-GCM 加密落盘,密钥由 JWT secret 派生。React 19 + Tailwind 4 + Radix UI 写的现代前端,中英 i18n,暗色 / 亮色,Cupertino 风格设计系统。仓库列表、tag 详情、活动流、管理面板——全部在 Web 里,不再改 yaml 重启。
我们没打算替代 Harbor 给银行用。我们替代的是那个其实不需要 Harbor 的团队的 Harbor。
| 能力 | stashhub | Harbor | Zot |
|---|---|---|---|
| 单二进制部署 | 是 | 否 · 多服务 | 是 |
| 内置 Web UI | 是 · React 19 | 是 | — 极简 |
| 拉取代理缓存 | 多上游 | proxy 项目 | ~ 基础 |
| 管理后台 | 用户·GC·保留·SMTP | 企业级 | 无 |
| 审计日志 | 用户 + 仓库 | 是 | 无 |
| 部署时间 | ~ 30s | ~ 1h (helm) | ~ 2min |
| 内存占用 | ~ 60 MB | ~ 1 GB+ | ~ 80 MB |
| 气质 | 小团队 · 自托管 | 企业 · 银行 | CLI 优先 |
拉镜像、生成 JWT secret、把 bootstrap admin 密码写进日志。仅此而已。