论坛
BBS
默认
简体中文
繁體中文
登录
全球主机MJJ交流论坛
»
论坛
›
主机交流
›
水池
›
可以下线 Nexus 了:纯开源制品仓库 kkRepo v0.9.0 发布 ...
返回列表
发新帖
查看:
1
|
回复:
0
可以下线 Nexus 了:纯开源制品仓库 kkRepo v0.9.0 发布,新增 Alpine、Hugging Face Models 与全局搜索
[复制链接]
g632104866
g632104866
当前离线
积分
39
9
主题
6
回帖
39
积分
新手上路
新手上路, 积分 39, 距离下一级还需 11 积分
新手上路, 积分 39, 距离下一级还需 11 积分
积分
39
关注TA
发消息
发表于
4 天前
|
显示全部楼层
|
阅读模式
上次在 V2EX 跟大家分享了 kkRepo v0.8.0 ,这次 v0.9.0 也正式发布了。
这一版不只是继续增加仓库格式,还补上了全局制品搜索、版本更新提醒、代理重定向白名单,以及一批界面和稳定性改进。
项目地址:
https://github.com/klboke/kkRepo
v0.9.0 Release:
https://github.com/klboke/kkRepo/releases/tag/v0.9.0
kkRepo 是什么?
kkRepo 是一款社区驱动、完全开源的自托管制品仓库,目标是解决 Sonatype Nexus Community Edition 在格式支持、容量限制、迁移和高可用部署等方面的痛点。
项目围绕 Nexus 的客户端协议、权限模型和 /repository/<repo>/... 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 三种仓库类型:
Hosted 支持 APK v2 软件包发布和签名索引生成
Proxy 支持上游索引透传,以及验签后重新签名
Group 支持按成员顺序统一解析多个 Alpine 仓库
支持 Browse 、Search 、Cleanup 和安全扫描
使用真实 apk 客户端验证 update、search、fetch、add 和 upgrade
支持从经过验证的 Nexus 3.94 数据结构迁移
2. 新增 Hugging Face Models 代理仓库
现在可以把 kkRepo 作为团队内部的 Hugging Face Models 代理:
支持通过 HF_ENDPOINT 接入
支持 hf download、huggingface_hub 和 snapshot_download
支持 Transformers 与 Diffusers 下载模型
服务端桥接 Git LFS 与 Xet 存储
按 commit 固定并缓存模型文件,避免 mutable revision 带来的不确定性
支持多副本协调、Browse 、Search 、Cleanup 和安全扫描
当前版本聚焦 Models proxy ,不包含 hosted/group 、Datasets 、Spaces 和推理 API 。
3. 新增带权限校验的全局制品搜索
Browse 和 Admin 现在都可以跨仓库搜索制品:
搜索前校验仓库权限和 Content Selector
无权限的仓库与制品不会出现在结果中
使用稳定的 keyset pagination
针对大规模 MySQL 数据做了自适应查询优化
修复了 MySQL FULLTEXT 无法匹配短词坐标的问题
这项功能解决了仓库数量较多时,需要先进入某个仓库才能查找制品的问题。
4. 其他改进
新增基于 GitHub Release 的版本更新提醒
Proxy 仓库可以配置可信的重定向目标域名,同时保留全局 SSRF 防护
统一节点本地 TTL 缓存抽象,继续保持多副本下缓存可丢失、可重建
优化 Browse 仓库详情、OIDC/LDAP 、账号、登录、顶部导航和欢迎页
修复 URL 中经过百分号编码的 + 被错误解析为空格的问题
修复长代理地址写入审计字段时可能导致 MySQL 请求失败的问题
现有核心能力
除仓库格式外,kkRepo 目前还支持:
Nexus 存量仓库、制品、用户、角色和权限迁移
Local 、LDAP 、OIDC 认证与细粒度权限管理
CycloneDX SBOM 、漏洞扫描、策略、豁免和下载阻断
面向全部仓库格式的 Cleanup Policy
Prometheus 指标和 Grafana 面板
MySQL 或 PostgreSQL 元数据存储
OSS 、S3 和 File blob storage
JVM 与 GraalVM Native 两种运行时
多副本高可用部署
按仓库配置 HTTP 或 SOCKS5 出站代理
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
启动后访问:
管理控制台:http://127.0.0.1:19090/admin/
用户侧浏览器:http://127.0.0.1:19090/browse/
健康检查:http://127.0.0.1:19091/actuator/health
首次进入页面时,在 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 、反馈和参与贡献。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
Archiver
|
手机版
|
小黑屋
|
全球主机MJJ交流论坛
Powered by
Discuz!
X5.0
© 2001-2026
Discuz! Team
.
在本版发帖
返回顶部
快速回复
返回顶部
返回列表