Skip to content

crazypeace/gh-proxy

 
 

Repository files navigation

gh-proxy

本项目是一个解决github脚本和资源访问不通问题的方案, 示例
https://youtu.be/F9re4Tuy7BA

可以对github脚本的无限嵌套调用提供解决方案, 示例
https://youtu.be/5zCJsCoi_lQ

免费使用 cloudflare worker 搭后端服务

注册 Cloudflare 用户, 略

创建 worker

image image image

修改 worker 的代码

image

默认内容全部删掉

image

把本项目的 worker.js 内容复制粘贴过去
https://github.com/crazypeace/gh-proxy/raw/refs/heads/master/worker.js

右上角 Deploy 部署

image

这样, 你就得到了一个 ghproxy 后端
https://worker项目名.cloudflare用户名.workers.dev/

请注意, 在你想使用本项目的环境中, 检测一下能否访问ghproxy后端, 比如

curl -L https://worker项目名.cloudflare用户名.workers.dev/ 

如果不行, 你需要给你的 worker 套上你自己的域名.
参考教程
https://zelikk.blogspot.com/2022/05/domain-cloudflare-worker-dev.html

用 python 搭后端服务

python环境

apt install -y python3-pip
pip3 install flask requests --break-system-packages

下载 ghproxy 文件

wget https://github.com/crazypeace/gh-proxy/raw/refs/heads/master/app/main.py
wget https://github.com/crazypeace/gh-proxy/raw/refs/heads/master/app/uwsgi.ini

修改 main.py

image

图中的修改方式 有点"危险". 适合你自己临时跑起来, 用完了就关.
长期使用的话, 还是要前面加个比如 caddy 套 https 然后反代.

启动

python3 ./main.py

这样你就得到了一个 ghproxy 后端

http://你的IP:8000/

使用方式

用下面这样的方式转换 github 一键脚本命令.
举例, 假如你的ghproxy后端地址是 https://ghproxy.crazypeace.workers.dev/ 那么,
转换前

bash <(wget -qO- -o- https://git.io/v2ray.sh)

转换后

bash <(wget -qO- -o- https://ghproxy.crazypeace.workers.dev/https://git.io/v2ray.sh | perl -pe "$(curl -L https://ghproxy.crazypeace.workers.dev/perl-pe-para)")

为了方便使用,做了个工具页面
https://crazypeace.github.io/gh-proxy/

注意页面底部的 "Github Proxy 后端" 填写正确的内容

操作演示
https://youtu.be/Cf5tWuGMm6U?si=Ne2odu_PKgJJX9Tc&t=164

本项目相对于源项目的修改

增加支持 api.github.com

增加支持 git.io

做了工具页面, 方便使用
https://crazypeace.github.io/gh-proxy/

用法演示视频
https://youtu.be/F9re4Tuy7BA

支持github脚本的无限嵌套调用 演示视频
https://youtu.be/5zCJsCoi_lQ

在 Cloudflare 的 worker 上自建 Github 代理 教程
https://zelikk.blogspot.com/2023/06/gh-proxy-worker.html

在 Replit 上自建 Github 代理 教程
https://zelikk.blogspot.com/2023/07/replit-gh-proxy.html

处理嵌套github脚本的原理说明
https://zelikk.blogspot.com/search/label/ghproxy

源项目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:[email protected]/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

About

github release、archive以及项目文件的加速项目. 支持 api.github.com, git.io 支持github脚本的无限嵌套调用

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 33.3%
  • Python 30.5%
  • HTML 21.0%
  • Shell 12.3%
  • CSS 2.9%