Tools and datasets to support, sustain, and secure critical digital infrastructure.

Package registry proxy

proxy.ecosyste.ms caches downloads from public package registries. Configure your package manager below to fetch packages through the proxy.

Use the proxy

Copy the settings below for your package manager. No account or API key is required, and packages retain their original licences.

Full installation instructions
Release cooldown

Hold back newly published releases for the selected period.

npmJavaScript

Add to your project's .npmrc, or ~/.npmrc for all projects.

.npmrc
registry=https://proxy.ecosyste.ms/npm/
PyPI / pip / uvPython

Set the index URL for your package manager in the current shell.

pip
export PIP_INDEX_URL=https://proxy.ecosyste.ms/pypi/simple/
uv
export UV_DEFAULT_INDEX=https://proxy.ecosyste.ms/pypi/simple/
RubyGems / BundlerRuby

Configure Bundler's mirror for this project. Keep your existing RubyGems source in the Gemfile.

Shell
bundle config set --local mirror.https://rubygems.org https://proxy.ecosyste.ms/gem
Go modulesGo

Set GOPROXY in your shell or build environment. The direct fallback uses the source repository when a module is unavailable.

Shell
export GOPROXY=https://proxy.ecosyste.ms/go,direct
CargoRust

Add a source replacement to your project's .cargo/config.toml or ~/.cargo/config.toml.

.cargo/config.toml
[source.crates-io]
replace-with = "proxy"

[source.proxy]
registry = "sparse+https://proxy.ecosyste.ms/cargo/"
ComposerPHP

Add the proxy as a Composer repository for this project.

Shell
composer config repositories.proxy composer https://proxy.ecosyste.ms/composer
HexElixir

Set the mirror in your shell before running mix deps.get.

Hex cooldowns require disabling registry signature verification. Origin verification stays enabled. See Hex's verification settings.

Shell
export HEX_MIRROR=https://proxy.ecosyste.ms/hex
pub.devDart / Flutter

Set the hosted package URL before running dart pub get or flutter pub get.

Shell
export PUB_HOSTED_URL=https://proxy.ecosyste.ms/pub
MavenJava / Kotlin

Add a mirror for Maven Central in ~/.m2/settings.xml.

settings.xml
<settings>
  <mirrors>
    <mirror>
      <id>proxy</id>
      <mirrorOf>central</mirrorOf>
      <url>https://proxy.ecosyste.ms/maven/</url>
    </mirror>
  </mirrors>
</settings>
NuGet.NET

Add the proxy as a package source for dotnet restore. Remove the direct nuget.org source if all downloads should use the proxy.

Shell
dotnet nuget add source https://proxy.ecosyste.ms/nuget/v3/index.json -n proxy
CondaPython / R

Set the channels in ~/.condarc. These URLs also work with clients such as pixi.

.condarc
channels:
  - https://proxy.ecosyste.ms/conda/main
  - https://proxy.ecosyste.ms/conda/conda-forge
HomebrewmacOS / Linux

Set the API and artifact domains in your shell before running brew.

Shell
export HOMEBREW_API_DOMAIN=https://proxy.ecosyste.ms/homebrew
export HOMEBREW_ARTIFACT_DOMAIN=https://proxy.ecosyste.ms
DockerContainer images

Add a Docker Hub mirror to /etc/docker/daemon.json, preserving any existing settings, then restart Docker.

/etc/docker/daemon.json
{
  "registry-mirrors": ["https://proxy.ecosyste.ms"]
}
Gradle HTTP Build CacheJava / Kotlin

The public build cache is read-only. Add this to settings.gradle.kts to read cached entries; uploads require your own instance with writes enabled.

settings.gradle.kts
buildCache {
  remote<HttpBuildCache> {
    url = uri("https://proxy.ecosyste.ms/gradle/")
  }
}
ConanC / C++

Add the proxy remote and disable direct downloads from ConanCenter.

Shell
conan remote add proxy https://proxy.ecosyste.ms/conan
conan remote disable conancenter
Chef SupermarketBerkshelf / Policyfiles

Set the source in your Berksfile. For Policyfiles, use default_source :supermarket, "https://proxy.ecosyste.ms/chef".

Berksfile
source "https://proxy.ecosyste.ms/chef"
CRANR

Set the CRAN repository in your R session, or add this to ~/.Rprofile.

R
options(repos = c(CRAN = "https://proxy.ecosyste.ms/cran"))
JuliaJulia

Set the package server in your shell before starting Julia.

Shell
export JULIA_PKG_SERVER=https://proxy.ecosyste.ms/julia
SwiftSwift

Set the default registry for the current Swift package. Registry dependencies use scoped package identifiers in Package.swift.

Shell
swift package-registry set https://proxy.ecosyste.ms/swift
Debian / APTDebian

In your Debian .sources file, replace the main archive URI with the line below. Keep your existing suites, components, signing key and separate security archive.

Debian archive URI
URIs: https://proxy.ecosyste.ms/debian
RPM / Yum / DNFFedora

Use this base URL in your Fedora repository configuration. Keep the existing signing keys and signature checks.

Repository base URL
baseurl=https://proxy.ecosyste.ms/rpm/releases/$releasever/Everything/$basearch/os/
Alpine / apkAlpine Linux

In /etc/apk/repositories, replace the Alpine mirror URL prefix with the prefix below. Keep the release and component paths already in your file.

Repository URL prefix
https://proxy.ecosyste.ms/apk/alpine
Arch Linux / pacmanArch Linux

Put this server at the top of /etc/pacman.d/mirrorlist. Keep your existing signature settings.

mirrorlist
Server = https://proxy.ecosyste.ms/arch/archlinux/$repo/os/$arch
FreeBSD / pkgFreeBSD

In /usr/local/etc/pkg/repos/FreeBSD.conf, override each repository URL using this prefix. Keep its ABI and branch path, set mirror_type: "none", and retain the existing signature settings.

Repository URL prefix
https://proxy.ecosyste.ms/freebsd/freebsd

See the full configuration guide for more options.

Run your own proxy

This service runs the open source git-pkgs/proxy. The repository includes instructions for running your own instance.