From d6897babe61691098cb226062fb55d9345a7b3cc Mon Sep 17 00:00:00 2001 From: okxlin Date: Wed, 1 Nov 2023 22:59:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0gh-proxy=E5=88=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/gh-proxy/README.md | 118 ++++++++++++++++++++++++ apps/gh-proxy/data.yml | 20 ++++ apps/gh-proxy/latest/.env.sample | 2 + apps/gh-proxy/latest/data.yml | 10 ++ apps/gh-proxy/latest/docker-compose.yml | 16 ++++ apps/gh-proxy/logo.png | Bin 0 -> 4929 bytes 6 files changed, 166 insertions(+) create mode 100644 apps/gh-proxy/README.md create mode 100644 apps/gh-proxy/data.yml create mode 100644 apps/gh-proxy/latest/.env.sample create mode 100644 apps/gh-proxy/latest/data.yml create mode 100644 apps/gh-proxy/latest/docker-compose.yml create mode 100644 apps/gh-proxy/logo.png diff --git a/apps/gh-proxy/README.md b/apps/gh-proxy/README.md new file mode 100644 index 00000000..19c87cc4 --- /dev/null +++ b/apps/gh-proxy/README.md @@ -0,0 +1,118 @@ +# gh-proxy + +## 简介 + +github release、archive以及项目文件的加速项目,支持clone,有Cloudflare Workers无服务器版本以及Python版本 + +## 演示 + +[https://gh.api.99988866.xyz/](https://gh.api.99988866.xyz/) + +演示站为公共服务,如有大规模使用需求请自行部署,演示站有点不堪重负 + +![imagea272c95887343279.png](https://img.maocdn.cn/img/2021/04/24/imagea272c95887343279.png) + +当然也欢迎[捐赠](#捐赠)以支持作者 + +## python版本和cf worker版本差异 + +- python版本支持进行文件大小限制,超过设定返回原地址 [issue #8](https://github.com/hunshcn/gh-proxy/issues/8) + +- python版本支持特定user/repo 封禁/白名单 以及passby [issue #41](https://github.com/hunshcn/gh-proxy/issues/41) + +## 使用 + +直接在copy出来的url前加`https://gh.api.99988866.xyz/`即可 + +也可以直接访问,在input输入 + +***大量使用请自行部署,以上域名仅为演示使用。*** + +访问私有仓库可以通过 + +`git clone https://user:TOKEN@ghproxy.com/https://github.com/xxxx/xxxx` [#71](https://github.com/hunshcn/gh-proxy/issues/71) + +以下都是合法输入(仅示例,文件不存在): + +- 分支源码:https://github.com/hunshcn/project/archive/master.zip + +- release源码:https://github.com/hunshcn/project/archive/v0.1.0.tar.gz + +- release文件:https://github.com/hunshcn/project/releases/download/v0.1.0/example.zip + +- 分支文件:https://github.com/hunshcn/project/blob/master/filename + +- commit文件:https://github.com/hunshcn/project/blob/1111111111111111111111111111/filename + +- gist:https://gist.githubusercontent.com/cielpy/351557e6e465c12986419ac5a4dd2568/raw/cmd.py + +## cf worker版本部署 + +首页:https://workers.cloudflare.com + +注册,登陆,`Start building`,取一个子域名,`Create a Worker`。 + +复制 [index.js](https://cdn.jsdelivr.net/gh/hunshcn/gh-proxy@master/index.js) 到左侧代码框,`Save and deploy`。如果正常,右侧应显示首页。 + +`ASSET_URL`是静态资源的url(实际上就是现在显示出来的那个输入框单页面) + +`PREFIX`是前缀,默认(根路径情况为"/"),如果自定义路由为example.com/gh/*,请将PREFIX改为 '/gh/',注意,少一个杠都会错! + +## Python版本部署 + +### Docker部署 + +``` +docker run -d --name="gh-proxy-py" \ + -p 0.0.0.0:80:80 \ + --restart=always \ + hunsh/gh-proxy-py:latest +``` + +第一个80是你要暴露出去的端口 + +### 直接部署 + +安装依赖(请使用python3) + +```pip install flask requests``` + +按需求修改`app/main.py`的前几项配置 + +*注意:* 可能需要在`return Response`前加两行 +```python3 +if 'Transfer-Encoding' in headers: + headers.pop('Transfer-Encoding') +``` + +### 注意 + +python版本的机器如果无法正常访问github.io会启动报错,请自行修改静态文件url + +python版本默认走服务器(2021.3.27更新) + +## Cloudflare Workers计费 + +到 `overview` 页面可参看使用情况。免费版每天有 10 万次免费请求,并且有每分钟1000次请求的限制。 + +如果不够用,可升级到 $5 的高级版本,每月可用 1000 万次请求(超出部分 $0.5/百万次请求)。 + +## Changelog + +* 2020.04.10 增加对`raw.githubusercontent.com`文件的支持 +* 2020.04.09 增加Python版本(使用Flask) +* 2020.03.23 新增了clone的支持 +* 2020.03.22 初始版本 + +## 链接 + +[我的博客](https://hunsh.net) + +## 参考 + +[jsproxy](https://github.com/EtherDream/jsproxy/) + +## 捐赠 + +![wx.png](https://img.maocdn.cn/img/2021/04/24/image.md.png) +![ali.png](https://www.helloimg.com/images/2021/04/24/BK9vmb.md.png) \ No newline at end of file diff --git a/apps/gh-proxy/data.yml b/apps/gh-proxy/data.yml new file mode 100644 index 00000000..7f7353b8 --- /dev/null +++ b/apps/gh-proxy/data.yml @@ -0,0 +1,20 @@ +name: gh-proxy +tags: + - 工具 +title: GitHub release、archive 以及项目文件的加速项目 +type: 工具 +description: GitHub release、archive 以及项目文件的加速项目 +additionalProperties: + key: gh-proxy + name: gh-proxy + tags: + - Tool + shortDescZh: GitHub release、archive 以及项目文件的加速项目 + shortDescEn: Acceleration project for GitHub releases, archives, and project files + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://github.com/hunshcn/gh-proxy + github: https://github.com/hunshcn/gh-proxy + document: https://github.com/hunshcn/gh-proxy diff --git a/apps/gh-proxy/latest/.env.sample b/apps/gh-proxy/latest/.env.sample new file mode 100644 index 00000000..c807743c --- /dev/null +++ b/apps/gh-proxy/latest/.env.sample @@ -0,0 +1,2 @@ +CONTAINER_NAME="gh-proxy" +PANEL_APP_PORT_HTTP="40170" diff --git a/apps/gh-proxy/latest/data.yml b/apps/gh-proxy/latest/data.yml new file mode 100644 index 00000000..b2038603 --- /dev/null +++ b/apps/gh-proxy/latest/data.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: 40170 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/apps/gh-proxy/latest/docker-compose.yml b/apps/gh-proxy/latest/docker-compose.yml new file mode 100644 index 00000000..3827b5b8 --- /dev/null +++ b/apps/gh-proxy/latest/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3" +services: + gh-proxy: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + image: stilleshan/gh-proxy:latest + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/gh-proxy/logo.png b/apps/gh-proxy/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e0493c38b8bbf63f7869c2ec905a94e0ecbdf984 GIT binary patch literal 4929 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