diff --git a/README.md b/README.md index db98c28..41a1246 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,11 @@ LightMirrors是一个开源的缓存镜像站服务,用于加速软件包下 --- +## Motivation + +由于国内访问国外软件源的速度较慢,特别是DockerHub缺少国内镜像站, +因此我们在本地部署镜像站来加速网络访问和节省外网带宽。 + ## Quick Start ### Prerequisites @@ -28,7 +33,7 @@ LightMirrors是一个开源的缓存镜像站服务,用于加速软件包下 > 如果需要使用HTTPS,可以在外层新增一个HTTP网关(如Caddy),请参考后续章节。 -### QuickStart +执行以下命令以启动LightMirrors: ```bash @@ -37,22 +42,10 @@ docker-compose up ``` -### Deployment +并尝试通过控制台输出的地址进行访问,http://aria2.local.homeinfra.org/aria2/index.html +为aria2的管理界面,用于查看下载状态`。 -修改 `.env` 文件,设置下列参数: - -- `BASE_DOMAIN`: 基础域名,如 `local.homeinfra.org`,镜像站将会使用 `*.local.homeinfra.org` 的子域名。 -- `RPC_SECRET`:Aria2的RPC密钥。 -- `all_proxy`:代理服务器地址,如有必要。 -- `SCHEME`:`http` 或 `https`。 - -如果您需要HTTPS,请确保docker-compose.yml文件中开放443端口,并使用`cloudflare` 相关的Caddyfile和Dockerfile. - -```bash -docker-compose up -``` - -测试命令: +可以使用以下命令进行测试镜像站是否正常工作: ```bash docker pull docker.local.homeinfra.org/alpine @@ -60,37 +53,74 @@ pip3 download -i http://pypi.local.homeinfra.org/simple/ jinja2 --trusted-host p 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`:代理服务器地址,如有必要。 +- `SCHEME`:`http` 或 `https`。 + +配置完成之后,执行以下命令: + +```bash +docker-compose up +``` + +#### HTTPS + +在 .env 中配置 `SCHEME=https` 与 CLOUDFLARE_DNS_API_TOKEN。 +本项目提供了一个基于Cloudflare DNS的 `Caddyfile` 和 `Dockerfile`。如果您希望使用其他DNS Provider或者LB,请自行修改。 + +配置完成后,使用以下命令代替上述的`docker-compose up` (多了 `-f docker-compose-caddy.yml`) : + +```bash +docker-compose -f docker-compose-caddy.yml up +``` + ## Design LightMirrors依赖于两个组件: - aria2 : 下载器与管理UI。 - mirrors: 镜像HTTP服务器,根据不同域名转发请求到不同模块。 - - Aria2Ng - - PyPI - - DockerHub - - ... + - Aria2Ng + - PyPI + - DockerHub + - ... -## Test +## Mirror Sites -> 假设我们的域名为 local.homeinfra.org +> 假设我们的域名为 local.homeinfra.org,并且开启了了https,如果您使用的是http,请自行替换。 -| subdomain | source | test command | test command (http) | -|-----------|---------------------------------|-------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| -| pypi | https://pypi.org | `pip3 download -i https://pypi.local.homeinfra.org/simple jinja2` | `pip3 download -i http://pypi.local.homeinfra.org/simple jinja2 --trusted-host pypi.local.homeinfra.org` | -| torch | https://download.pytorch.org | `pip3 download -i https://torch.local.homeinfra.org/whl/ torch` | `pip3 download -i http://torch.local.homeinfra.org/whl/ torch --trusted-host torch.local.homeinfra.org` | -| dockerhub | https://registry-1.docker.io/v2 | `docker pull docker.local.homeinfra.org/alpine` | `docker pull docker.local.homeinfra.org/alpine` | +### DockerHub -## HTTPS +docker pull 的时候添加前缀 `docker.local.homeinfra.org` 即可。 -在 .env 中配置 `SCHEME=https` 与 CLOUDFLARE_DNS_API_TOKEN。 -本项目提供了一个基于Cloudflare DNS的Caddyfile和Dockerfile,可以直接使用。如果您希望使用其他DNS Provider,请自行修改。 +### 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` -```bash -docker-compose -f docker-compose-caddy.yml up -``` +### 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 diff --git a/ROADMAP.md b/ROADMAP.md index 0808b6a..b9a7f01 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,3 +1,5 @@ +- A homepage which shows doc and status +- Style checker - Test - Publish to ghcr and dockerhub - Configurable upstreams \ No newline at end of file