This commit is contained in:
Anonymous 2024-02-24 18:45:37 +08:00
parent 2162be61d1
commit d92280ca49
2 changed files with 66 additions and 34 deletions

View File

@ -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

View File

@ -1,3 +1,5 @@
- A homepage which shows doc and status
- Style checker
- Test
- Publish to ghcr and dockerhub
- Configurable upstreams