Plus 制品服务器
一个现代化、高性能的软件包仓库服务器,专为替代传统的 nginx+createrepo 方案而设计。 github.com/elastic-io/…
🎯 为什么选择 Plus?
传统方案的痛点
- nginx+createrepo 配置复杂,需要多个组件协同工作
- 手动上传 包文件,缺乏统一的管理接口
- 元数据更新慢,每次都要重新生成整个仓库
- 监控困难,需要额外的工具和配置
- 扩展性差,难以适应云原生环境
Plus 的解决方案
✅ 一键部署 - 单个二进制文件,开箱即用
✅ RESTful API - 标准化的包管理接口
✅ 实时更新 - 自动生成和更新仓库元数据
✅ 内置监控 - 开箱即用的健康检查和指标
✅ 容器友好 - 原生支持 Docker 和 Kubernetes
🚀 核心特性
- 多格式支持: RPM、DEB 软件包
- 批量操作: 高效的批量上传和管理
- Web 界面: 现代化的仓库管理界面
- 高性能: 基于 fasthttp 构建,性能卓越
- 云存储: 支持本地存储和 S3 兼容存储
📦 快速开始
Docker 部署(推荐)
# 拉取并运行
docker run -d \
--name plus-server \
-p 8080:8080 \
-v $(pwd)/storage:/app/storage \
elastic-io/plus:latest
二进制安装
# 下载最新版本
wget https://github.com/elastic-io/plus/releases/latest/download/plus-linux-amd64
chmod +x plus-linux-amd64
mv plus-linux-amd64 /usr/local/bin/plus
# 运行服务
plus --config config.yaml
🔧 简单使用
创建仓库
curl -X POST http://localhost:8080/repos \
-H "Content-Type: application/json" \
-d '{"name": "my-repo", "path": "centos/7"}'
上传软件包
curl -X POST http://localhost:8080/repo/my-repo/upload \
-F "file=@package.rpm"
访问 Web 界面
打开浏览器访问: http://localhost:8080/static/
📊 性能对比
| 场景 | nginx+createrepo | Plus | 提升 |
|---|---|---|---|
| 文件服务 | 10,000-15,000 QPS | 15,000-25,000 QPS | +67% |
| 包上传 | 手动操作 | 500-1000 次/分钟 | 自动化 |
| 元数据生成 | 30-60 秒 | 1-5 秒 | 10倍faster |
| 内存占用 | ~200MB | ~50MB | 节省75% |
🎨 适用场景
- 企业内部 软件包仓库管理
- CI/CD 流水线 制品存储和分发
- 容器化部署 云原生环境
- 多环境管理 开发、测试、生产环境隔离
🛠️ 配置示例
# config.yaml
server:
listen: ":8080"
storage:
type: "local"
path: "./storage"
logging:
level: "info"
📈 发展路线
即将推出:
- DEB包管理支持
- 用户认证和权限管理
- S3 兼容存储后端
- 软件包签名验证
- 高级监控和告警
📞 获取支持
- 文档: GitHub 文档
- 问题反馈: GitHub Issues
- 社区讨论: GitHub Discussions
Plus 制品服务器 - 让软件包管理变得简单高效 🚀