告别nginx+createrepo,拥抱现代化包管理

65 阅读2分钟

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+createrepoPlus提升
文件服务10,000-15,000 QPS15,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 兼容存储后端
  • 软件包签名验证
  • 高级监控和告警

📞 获取支持


Plus 制品服务器 - 让软件包管理变得简单高效 🚀