diff --git a/docker-compose.yml b/docker-compose.yml index 29f173f..e01a3fa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,10 @@ services: lightmirrors: image: lightmirrors/mirrors - build: ./mirrors + build: + context: ./src volumes: - - ./mirrors:/app + - ./src/:/app - ./data/cache:/app/cache env_file: - .env diff --git a/mirrors/Dockerfile b/src/Dockerfile similarity index 92% rename from mirrors/Dockerfile rename to src/Dockerfile index 530adbc..8de2f43 100644 --- a/mirrors/Dockerfile +++ b/src/Dockerfile @@ -8,7 +8,6 @@ ADD https://hub.gitmirror.com/https://github.com/mayswind/AriaNg/releases/downlo RUN unzip AriaNg-1.3.7.zip && rm AriaNg-1.3.7.zip - ADD requirements.txt /app/requirements.txt RUN pip install -r /app/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ @@ -17,6 +16,6 @@ WORKDIR /app EXPOSE 8080 -CMD ["python", "server.py"] +CMD ["python", "mirrorsrun/server.py"] diff --git a/mirrors/Makefile b/src/Makefile similarity index 100% rename from mirrors/Makefile rename to src/Makefile diff --git a/mirrors/proxy/__init__.py b/src/mirrorsrun/__init__.py similarity index 100% rename from mirrors/proxy/__init__.py rename to src/mirrorsrun/__init__.py diff --git a/mirrors/aria2_api.py b/src/mirrorsrun/aria2_api.py similarity index 96% rename from mirrors/aria2_api.py rename to src/mirrorsrun/aria2_api.py index 29676ef..522ffe7 100644 --- a/mirrors/aria2_api.py +++ b/src/mirrorsrun/aria2_api.py @@ -4,7 +4,7 @@ import uuid import httpx -from config import RPC_SECRET, ARIA2_RPC_URL +from mirrorsrun.config import RPC_SECRET, ARIA2_RPC_URL logger = logging.getLogger(__name__) diff --git a/mirrors/config.py b/src/mirrorsrun/config.py similarity index 100% rename from mirrors/config.py rename to src/mirrorsrun/config.py diff --git a/mirrors/sites/__init__.py b/src/mirrorsrun/proxy/__init__.py similarity index 100% rename from mirrors/sites/__init__.py rename to src/mirrorsrun/proxy/__init__.py diff --git a/mirrors/proxy/direct.py b/src/mirrorsrun/proxy/direct.py similarity index 100% rename from mirrors/proxy/direct.py rename to src/mirrorsrun/proxy/direct.py diff --git a/mirrors/proxy/file_cache.py b/src/mirrorsrun/proxy/file_cache.py similarity index 97% rename from mirrors/proxy/file_cache.py rename to src/mirrorsrun/proxy/file_cache.py index 727befc..187cac9 100644 --- a/mirrors/proxy/file_cache.py +++ b/src/mirrorsrun/proxy/file_cache.py @@ -11,9 +11,9 @@ from starlette.requests import Request from starlette.responses import Response from starlette.status import HTTP_500_INTERNAL_SERVER_ERROR, HTTP_504_GATEWAY_TIMEOUT -from aria2_api import add_download +from mirrorsrun.aria2_api import add_download -from config import CACHE_DIR, EXTERNAL_URL_ARIA2 +from mirrorsrun.config import CACHE_DIR, EXTERNAL_URL_ARIA2 from typing import Optional, Callable logger = logging.getLogger(__name__) diff --git a/mirrors/server.py b/src/mirrorsrun/server.py similarity index 91% rename from mirrors/server.py rename to src/mirrorsrun/server.py index 56d7c32..6f11357 100644 --- a/mirrors/server.py +++ b/src/mirrorsrun/server.py @@ -1,3 +1,7 @@ +import os +import sys +sys.path.append(os.path.dirname(os.path.dirname(__file__))) + import base64 import signal import urllib.parse @@ -10,17 +14,17 @@ from starlette.requests import Request from starlette.responses import RedirectResponse, Response from starlette.staticfiles import StaticFiles -from config import ( +from mirrorsrun.config import ( BASE_DOMAIN, RPC_SECRET, EXTERNAL_URL_ARIA2, EXTERNAL_HOST_ARIA2, SCHEME, ) -from sites.docker import docker -from sites.npm import npm -from sites.pypi import pypi -from sites.torch import torch +from mirrorsrun.sites.docker import docker +from mirrorsrun.sites.npm import npm +from mirrorsrun.sites.pypi import pypi +from mirrorsrun.sites.torch import torch app = FastAPI() diff --git a/src/mirrorsrun/sites/__init__.py b/src/mirrorsrun/sites/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mirrors/sites/docker.py b/src/mirrorsrun/sites/docker.py similarity index 96% rename from mirrors/sites/docker.py rename to src/mirrorsrun/sites/docker.py index ef2f723..69930ac 100644 --- a/mirrors/sites/docker.py +++ b/src/mirrorsrun/sites/docker.py @@ -9,8 +9,8 @@ import httpx from starlette.requests import Request from starlette.responses import Response -from proxy.direct import direct_proxy -from proxy.file_cache import try_file_based_cache +from mirrorsrun.proxy.direct import direct_proxy +from mirrorsrun.proxy.file_cache import try_file_based_cache logger = logging.getLogger(__name__) diff --git a/mirrors/sites/npm.py b/src/mirrorsrun/sites/npm.py similarity index 80% rename from mirrors/sites/npm.py rename to src/mirrorsrun/sites/npm.py index 8912619..3fc0beb 100644 --- a/mirrors/sites/npm.py +++ b/src/mirrorsrun/sites/npm.py @@ -1,6 +1,6 @@ from starlette.requests import Request -from proxy.direct import direct_proxy +from mirrorsrun.proxy.direct import direct_proxy BASE_URL = "https://registry.npmjs.org/" diff --git a/mirrors/sites/pypi.py b/src/mirrorsrun/sites/pypi.py similarity index 92% rename from mirrors/sites/pypi.py rename to src/mirrorsrun/sites/pypi.py index 712e928..c643386 100644 --- a/mirrors/sites/pypi.py +++ b/src/mirrorsrun/sites/pypi.py @@ -3,8 +3,8 @@ import re from starlette.requests import Request from starlette.responses import Response -from proxy.direct import direct_proxy -from proxy.file_cache import try_file_based_cache +from mirrorsrun.proxy.direct import direct_proxy +from mirrorsrun.proxy.file_cache import try_file_based_cache pypi_file_base_url = "https://files.pythonhosted.org" pypi_base_url = "https://pypi.org" diff --git a/mirrors/sites/torch.py b/src/mirrorsrun/sites/torch.py similarity index 83% rename from mirrors/sites/torch.py rename to src/mirrorsrun/sites/torch.py index d806966..7ac13c6 100644 --- a/mirrors/sites/torch.py +++ b/src/mirrorsrun/sites/torch.py @@ -1,8 +1,8 @@ from starlette.requests import Request from starlette.responses import Response -from proxy.file_cache import try_file_based_cache -from proxy.direct import direct_proxy +from mirrorsrun.proxy.file_cache import try_file_based_cache +from mirrorsrun.proxy.direct import direct_proxy BASE_URL = "https://download.pytorch.org" diff --git a/mirrors/poetry.lock b/src/poetry.lock similarity index 100% rename from mirrors/poetry.lock rename to src/poetry.lock diff --git a/mirrors/pyproject.toml b/src/pyproject.toml similarity index 100% rename from mirrors/pyproject.toml rename to src/pyproject.toml diff --git a/mirrors/requirements.txt b/src/requirements.txt similarity index 100% rename from mirrors/requirements.txt rename to src/requirements.txt diff --git a/mirrors/setup.cfg b/src/setup.cfg similarity index 100% rename from mirrors/setup.cfg rename to src/setup.cfg