Code Monkey home page Code Monkey logo

lightmirrors's Introduction

LightMirrors

LightMirrors是一个开源的缓存镜像站服务,用于加速软件包下载和镜像拉取。 目前支持DockerHub、PyPI、PyTorch、NPM等镜像缓存服务。

GitHub GitHub

Demo


Motivation

由于国内访问国外软件源的速度较慢,特别是DockerHub缺少国内镜像站, 因此我们在本地部署镜像站来加速网络访问和节省外网带宽。

Quick Start

Prerequisites

  • docker + docker-compose.
  • 一个域名,设置 *.yourdomain 的A记录指向您服务器的IP.
    • *.local.homeinfra.org 默认指向 127.0.0.1,本地测试可以直接使用。
  • 代理服务器(如有必要).

如果需要使用HTTPS,可以在外层新增一个HTTP网关(如Caddy),请参考后续章节。

执行以下命令以启动LightMirrors:

cp .env.example .env
docker-compose up

并尝试通过控制台输出的地址进行访问,http://aria2.local.homeinfra.org/aria2/index.html 为aria2的管理界面,用于查看下载状态`。

可以使用以下命令进行测试镜像站是否正常工作:

docker pull docker.local.homeinfra.org/alpine
pip3 download -i http://pypi.local.homeinfra.org/simple/ jinja2 --trusted-host pypi.local.homeinfra.org
pip3 download -i http://torch.local.homeinfra.org/whl/ torch --trusted-host torch.local.homeinfra.org

Deployment

修改 .env 文件,设置下列参数:

  • BASE_DOMAIN: 基础域名,如 local.homeinfra.org,可以通过 *.local.homeinfra.org 访问镜像站。
  • RPC_SECRET:Aria2的RPC密钥。
  • all_proxy:代理服务器地址,如有必要。
  • SCHEMEhttphttps

配置完成之后,执行以下命令:

docker-compose up

HTTPS

在 .env 中配置 SCHEME=https 与 CLOUDFLARE_DNS_API_TOKEN。 本项目提供了一个基于Cloudflare DNS的 CaddyfileDockerfile。如果您希望使用其他DNS Provider或者LB,请自行修改。

配置完成后,使用以下命令代替上述的docker-compose up (多了 -f docker-compose-caddy.yml) :

docker-compose -f docker-compose-caddy.yml up

Design

LightMirrors依赖于两个组件:

  • aria2 : 下载器与管理UI。
  • mirrors: 镜像HTTP服务器,根据不同域名转发请求到不同模块。
    • Aria2Ng
    • PyPI
    • DockerHub
    • ...

Mirror Sites

假设我们的域名为 local.homeinfra.org,并且开启了了https,如果您使用的是http,请自行替换。

DockerHub

docker pull 的时候添加前缀 docker.local.homeinfra.org 即可。

PyPI

  • https: pip install jinja2 --index-url https://pypi.local.homeinfra.org/simple/
  • http: pip install jinja2 --index-url http://pypi.local.homeinfra.org/simple/ --trusted-host pypi.local.homeinfra.org

PyTorch

  • https: pip install torch --index-url https://torch.local.homeinfra.org/whl/
  • http: pip install torch --index-url http://torch.local.homeinfra.org/whl/ --trusted-host torch.local.homeinfra.org

download.pytorch.org替换为 torch.local.homeinfra.org , 如果使用的是http,还需添加 --trusted-host torch.local.homeinfra.org

可以根据不同的硬件类型,切换不同的索引,如 https://download.pytorch.org/whl/cpu ,其中 cpu 可以替换为cu116/cu118/cu121/rocm5.4.2 等等。 具体请参考:https://pytorch.org/get-started/previous-versions/

NPM

npm 命令后加上 --registry https://npm.local.homeinfra.org 即可。

  • https: npm install -S express --registry https://npm.local.homeinfra.org
  • http: npm install -S express --registry http://npm.local.homeinfra.org

Star History

Star History Chart

lightmirrors's People

Contributors

noclin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.