GHProxy V1.4.0

GHProxy v1.4.0 版本更新介绍

我们很高兴地宣布 GhProxy v1.4.0 的发布!这个版本带来了多个重要的改进和新功能,旨在提升性能和用户体验。以下是本次更新的详细内容:

CHANGELOG (更新日志)

  • CHANGE: 优化代码结构,提升性能
  • ADD: 新增auth子模块whitelist.go,支持白名单功能
  • ADD: 新增whitelist.json文件,用于配置白名单
  • CHANGE&ADD: 在config.yaml文件中新增白名单配置块
  • FIX: 由于临时加入且未在原开发路线上计划的白名单功能,导致函数命名冲突,在此修复blacklist.go的函数命名问题
  • FIX: 修复黑/白名单是否生效相关问题

项目地址

Demo

主要更新内容

功能优化

  • 黑名单功能优化:由于临时加入且未在原开发路线上计划的白名单功能,导致函数命名冲突,在此修复 blacklist.go 的函数命名问题,并优化相关结构

新增功能

  • 新增白名单功能:加入白名单功能,支持配置白名单,白名单优先级高于黑名单。具体实现逻辑请参看 白名单功能

  • 新增 auth 子模块 whitelist.go:为了支持白名单功能,我们引入了一个新的子模块。

  • 新增 whitelist.json 文件:黑名单配置现在位于 config/whitelist.json 文件中。用户可以在此文件中指定允许访问的仓库,其余仓库将被阻断。例如:

{
    "whitelist": [
      "test/test1",
      "example/repo2",
      "another/repo3"
    ]
  }
  • 功能须知:白名单与黑名单功能均可同时开启或关闭,但若同时开启,则优先级高于黑名单。具体实现逻辑请参看

配置文件更新

  • config.yaml 格式修改:为了提高可读性,我们对 config.yaml 文件的格式进行了调整。用户可以更直观地进行配置管理。
  • config.yaml 新配置格式如下
# 核心配置
server:
  port: 8080  # 监听端口(小白请勿修改)
  host: "127.0.0.1"  # 监听地址(小白请勿修改)
  sizelimit: 131072000 # 125MB

# 日志配置
logger:
  logfilepath: "/data/ghproxy/log/ghproxy.log"  # 日志文件路径(小白请勿修改)
  maxlogsize: 5 # MB

# CORS 配置
cors:
  enabled: true  # 是否开启CORS

# 鉴权配置
auth:
  enabled: false  # 是否开启鉴权
  authtoken: "test"  # 鉴权Token

# 黑名单配置
blacklist:
  enabled: true  # 是否开启黑名单
  blacklistfile: "/data/ghproxy/config/blacklist.json"

# 白名单配置
whitelist:
  enabled: false  # 是否开启白名单
  whitelistfile: "/data/ghproxy/config/whitelist.json"

提醒

  • config.yaml相关 : 此次更新新增whitelist配置块,若需使用白名单功能,请在配置文件加入whitelist相关配置;若无需使用白名单功能,您无需修改配置文件。

项目特点回顾

GhProxy 是一个基于 Go 语言实现的工具,旨在加速特定地区对 GitHub 仓库的访问。它支持速率限制、用户鉴权,并且可以通过 Docker 部署。GhProxy 还支持自定义黑名单,符合 RFC 7234 的 HTTP 缓存标准,并使用 Caddy 作为 Web 服务器。

项目地址

Demo

前端界面: ghproxy-demo.png

结语

我们感谢所有用户的支持与反馈,并期待 GhProxy v1.4.0 能为您的开发工作带来更大的便利和效率!若此项目对您有所帮助,请不要忘记 star 项目,您的支持是我们前进的动力!