Supported Registries
mise-server acts as a pull-through cache for 12+ package registries, plus custom HTTP sources.
All registries follow the same flow: check cache, fetch upstream on miss, store as a BLAKE3-hashed blob, return to client. Upstream URLs are rewritten so clients only talk to mise-server.
Registry Overview
| Registry | Path Prefix | Default Upstream |
|---|---|---|
| npm | /npm/ | https://registry.npmjs.org |
| PyPI | /pypi/ | https://pypi.org |
| Go | /go/ | https://proxy.golang.org |
| Cargo | /cargo/ | https://index.crates.io |
| Docker | /v2/ | https://registry-1.docker.io |
| GitHub Releases | /github/ | https://api.github.com |
| RubyGems | /rubygems/ | https://rubygems.org |
| Maven | /maven/ | https://repo1.maven.org/maven2 |
| NuGet | /nuget/ | https://api.nuget.org/v3-flatcontainer |
| Helm | /helm/ | https://charts.helm.sh/stable |
| APT | /apt/ | http://deb.debian.org/debian |
| Conda | /conda/ | https://conda.anaconda.org |
| Custom | /custom/{name} | User-defined |
Overriding Upstreams
Each registry's upstream can be overridden via config or environment variable:
toml
# mise-server.toml
[settings.piers.npm]
upstream = "https://registry.npmmirror.com"Or via environment variable:
bash
export MISE_SERVER_NPM_UPSTREAM=https://registry.npmmirror.com