关于

搭建这个项目前提基本是你要有香港服务器,因为大陆下载GitHub文件一直很慢,利用香港服务器进行代理加速,不可用作与违反大陆相关法律,仅供学习使用。

该项目是GitHub上的一个开源文件加速工具,搭建出来是一个页面,利用该链接进行加速。
示例:DEMO
项目地址GITHUB文件加速

README

简介

github release、archive以及项目文件的加速项目,支持clone,有Cloudflare Workers无服务器版本以及Python版本

演示

https://gh.api.99988866.xyz/

演示站为公共服务,如有大规模使用需求请自行部署,演示站有点不堪重负

imagea272c95887343279.png

当然也欢迎捐赠以支持作者

python版本和cf worker版本差异

  • python版本支持进行文件大小限制,超过设定返回原地址 issue #8

  • python版本支持特定user/repo 封禁/白名单 以及passby issue #41

使用

直接在copy出来的url前加https://gh.api.99988866.xyz/即可

也可以直接访问,在input输入

大量使用请自行部署,以上域名仅为演示使用。

访问私有仓库可以通过

git clone https://user:TOKEN@ghproxy.com/https://github.com/xxxx/xxxx #71

以下都是合法输入(仅示例,文件不存在):

cf worker版本部署

首页:https://workers.cloudflare.com

注册,登陆,Start building,取一个子域名,Create a Worker

复制 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前加两行

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 初始版本

链接

我的博客

参考

jsproxy

捐赠

wx.png
ali.png

搭建方式

最简单的就是上面那个docker
不用部署其他环境,端口可以改一下,比如改到8080端口,然后nginx反向代理套一个域名

docker run -d --name="gh-proxy-py" \
  -p 8080:80 \
  --restart=always \
  hunsh/gh-proxy-py:latest

然后nginx加入配置

location /
{
    proxy_pass http://127.0.0.1:8080/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
}