Skip to content

quetz - a conda package server and proxy

The quetz project is an open source server for conda packages. It is built upon FastAPI with an API-first approach. A quetz server can have many users, channels and packages. Quetz allows for setting fine-grained permissions on channel and package-name level.

Our quetz-instance max-quetz support the creation of private and public channels.

Creating channels

to do anything with max-quetz you will need to open the page in your browser and login (SSO via keycloak). The quetz web-page actually doesn't offer anything other than viewing the already existing (public) channels. To create your own channel or to upload packages you will need to work with the API and an API key.

The simplest approach is to use the swagger API documentation of max-quetz. The basic usage is describe in the quetz documentation. You will also find your API key there.

Alternatives are curl, python requests or the python quetz client.

Using quetz in mamba or conda

it works pretty much with any other conda channel, you just need to tell mamba where to look for the channel:

mamba install --strict-channel-priority -c https://max-quetz.desy.de/get/conda-forge scipy

The channels can also be added persistently using conda config --add channels.

Proxying channels

quetz can serve as a proxy, which might become useful in private networks without access to the outside world. Currently, only conda-forge and a channel from ESRF are being proxied, but additional channels can easily be added, just let us know.

QoS

the quetz server is currently more experimental than production:

  • it's not designed for speed or high availability
  • the underlying database is not yet being backed up, and also not yet a high availability service
  • caching is somewhat limited (there is no dedicated Redis service implemented yet)
  • indexes of proxied channels are stored locally and are not-necessarily completely up-to-date.

We will consolidate the setup - once the service turns out to be useful.