这一版不只是继续增加仓库格式,还补上了全局制品搜索、版本更新提醒、代理重定向白名单,以及一批界面和稳定性改进。
kkRepo 是什么?
kkRepo 是一款社区驱动、完全开源的自托管制品仓库,目标是解决 Sonatype Nexus Community Edition 在格式支持、容量限制、迁移和高可用部署等方面的痛点。
项目围绕 Nexus 的客户端协议、权限模型和 /repository//... URL 布局实现兼容,并提供存量仓库、制品、用户、角色和权限迁移能力,尽量让原有客户端配置与 CI 流程保持不变。
目前已经支持 20+ 种仓库格式,包括:
Maven 、npm 、PyPI 、Go 、Helm 、Cargo/Rust 、Dart/Pub 、Composer/PHP 、Terraform 、Swift Package Registry 、Ansible Galaxy 、Conda 、APT/Debian 、Conan 2 、Alpine/APK 、Hugging Face Models 、Docker/OCI 、NuGet 、RubyGems 、Yum 和 Raw 。
不同格式按协议能力支持 hosted 、proxy 或 group 仓库。
v0.9.0 主要更新
1. 新增 Alpine / APK 仓库
本次新增 Alpine/APK 的 hosted 、proxy 和 group 三种仓库类型:
2. 新增 Hugging Face Models 代理仓库
现在可以把 kkRepo 作为团队内部的 Hugging Face Models 代理:
当前版本聚焦 Models proxy ,不包含 hosted/group 、Datasets 、Spaces 和推理 API 。
3. 新增带权限校验的全局制品搜索
Browse 和 Admin 现在都可以跨仓库搜索制品:
这项功能解决了仓库数量较多时,需要先进入某个仓库才能查找制品的问题。
4. 其他改进
现有核心能力
除仓库格式外,kkRepo 目前还支持:
Native 版本通常约 1 秒启动就绪,内存占用低于 200 MB 。
快速体验
机器上安装好 Docker 与 Docker Compose 后,执行:
curl -fsSL https://raw.githubusercontent.com/klboke/kkrepo/main/scripts/quickstart.sh | bash
启动 Native 版本:
curl -fsSL https://raw.githubusercontent.com/klboke/kkrepo/main/scripts/quickstart.sh | KKREPO_RUNTIME=native bash
启动后访问:
首次进入页面时,在 UI 中创建 Local/admin 管理员密码。
Quickstart 默认使用 File blob storage ,适合本地试用;生产环境建议使用独立的 MySQL/PostgreSQL 和 OSS/S3 。
容器镜像:
ghcr.io/klboke/kkrepo:0.9.0
ghcr.io/klboke/kkrepo:0.9.0-native
ghcr.io/klboke/kkrepo-scanner:0.9.0
均提供 Linux AMD64 和 ARM64 镜像。
从 v0.8.0 升级
v0.8.0 的 MySQL 和 PostgreSQL 部署可以通过 Flyway V46–V48 原地升级。
升级前请同时备份关系数据库和 blob store ,并等待数据库迁移完成后再恢复流量。新 schema 应用后,不要继续混合运行 v0.8.0 与 v0.9.0 实例。
组件数据量较大的部署,建议在低 I/O 时段执行 V47 索引迁移。
项目目前仍处于 1.0 之前,生产升级前请先阅读完整 Release Notes 。
如果你正在使用 Nexus ,也欢迎拿真实仓库和客户端测试 kkRepo 。遇到兼容性问题或缺少的仓库格式,可以直接在 GitHub 提 Issue 。
如果项目对你有帮助,也欢迎 Star 、反馈和参与贡献。

