Quetz 开源项目教程
quetz The Open-Source Server for Conda Packages 项目地址: https://gitcode.com/gh_mirrors/qu/quetz
1. 项目介绍
Quetz 是一个开源的 Conda 包服务器,旨在为 Conda 包提供一个高效、可扩展的托管解决方案。Quetz 基于 FastAPI 构建,采用 API 优先的设计理念,支持多用户、多渠道和多包的管理。通过 Quetz,用户可以实现对渠道和包的细粒度权限控制。Quetz 还提供了一个可选的客户端 quetz-client
,用于将包上传到 Quetz 服务器实例。
2. 项目快速启动
2.1 环境准备
在开始之前,请确保你已经安装了 mamba
或 conda
。
2.2 获取 Quetz 源码
git clone https://github.com/mamba-org/quetz.git
cd quetz
2.3 创建环境
mamba env create -f environment.yml
conda activate quetz
ln -s "$CONDA_PREFIX" venv # 这是为了 pyright 的需要
2.4 安装 Quetz
如果你是开发者,建议使用可编辑模式安装:
pip install -e .
2.5 启动 Quetz 实例
quetz run test_quetz --copy-conf /dev_config.toml --dev --reload
2.6 访问 Quetz
- 使用 GitHub 账户登录:http://localhost:8000/
- 使用测试用户登录:http://localhost:8000/api/dummylogin/alice(可选用户:alice, bob, carol, dave)
- 查看 Swagger UI:http://localhost:8000/docs
2.7 下载测试包
./download-test-package.sh
2.8 上传包
安装 quetz-client
:
mamba install quetz-client
然后使用 quetz-client
上传包。
3. 应用案例和最佳实践
3.1 创建新渠道
首先,确保你已登录到 Web 应用。然后,使用 Swagger 文档(http://localhost:8000/docs)创建一个新的渠道:
{
"name": "my-channel",
"description": "Description for my-channel",
"private": false
}
3.2 权限管理
Quetz 允许对渠道和包进行细粒度的权限管理,确保只有授权用户才能访问和操作特定的渠道和包。
4. 典型生态项目
4.1 Mamba
Mamba 是一个快速的 Conda 包管理器,与 Quetz 无缝集成,提供高效的包管理和安装体验。
4.2 Boa
Boa 是一个 Conda 包构建器,与 Quetz 结合使用,可以实现从包构建到托管的一站式解决方案。
4.3 FastAPI
FastAPI 是 Quetz 的基础框架,提供了高性能的 API 支持,使得 Quetz 能够快速响应和处理大量的请求。
通过以上步骤,你可以快速启动并使用 Quetz,同时了解其典型生态项目和最佳实践。
quetz The Open-Source Server for Conda Packages 项目地址: https://gitcode.com/gh_mirrors/qu/quetz