3.4.0开始, GHProxy的Docker反代功能支持多target存在

主要更新

Docker反代支持多target

3.4.0开始支持以下方式调用, 未加域名前缀时, 会指向配置文件内配置的target

docker pull所需的短期token会缓存在服务端的weakcache内, 具体定义请参看 Docker(OCI) Distribution Spec (Docker(OCI) 分发器规范) 的Token(JWT)部分

此部分实现灵感来源于DaoCloud/crproxy, 在此特别鸣谢

在实现上, 我们采取了不同于crproxy的策略, 并不通过github.com/docker/distribution/registry/client/auth/challenge提供的challenge.Manager来统一管理挑战, 而是通过httpc(touka-httpc)简单的请求与处理, 加上weakcache对返回的短期令牌的缓存以实现多target的auth机制, 各位可自行查阅源码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
docker pull gh.example.com/wjqserver/ghproxy
docker pull gh.example.com/adguard/adguardhome

docker pull gh.example.com/docker.io/wjqserver/ghproxy
docker pull gh.example.com/docker.io/adguard/adguardhome

# Google
docker pull gh.example.com/gcr.io/kaniko-project/executor:debug

# GitHub
docker pull gh.example.com/ghcr.io/openfaas/queue-worker

# Kubernetes
docker pull gh.example.com/k8s.gcr.io/etcd:3.5.7-0

# 新Kubernetes
docker pull gh.example.com/registry.k8s.io/kube-apiserver:v1.30.0

# Red Hat
docker pull gh.example.com/quay.io/calico/cni

# Microsoft
docker pull gh.example.com/mcr.microsoft.com/powershell

# Elastic
docker pull gh.example.com/docker.elastic.co/elasticsearch/elasticsearch:8.1.0

# NVIDIA
docker pull gh.example.com/nvcr.io/nvidia/cuda:12.1.0-runtime-ubuntu20.04

新增主题 Hub

dark.png

light.png

CHANGLOG (更新日志)

3.4.0 - 2025-05-21

  • ADD: 初步实现多target Docker代理
  • ADD: 加入weakcache用于处理短期令牌
  • ADD: 新增hub主题
  • ADD: 新增/api/shell_nest/status/api/oci_proxy/status API

项目简介

pullDocker Image Size (tag)Go Report Card

基于Go的高性能,多功能,可扩展的Github代理

  • 基于 Go 语言实现,跨平台的同时提供高并发性能
  • 🌐 使用字节旗下的 HertZ 作为 Web 框架
  • 📡 使用 Touka-HTTPC 作为 HTTP 客户端
  • 📥 支持 Git clone、raw、releases 等文件拉取
  • 🐳 支持反代Docker, GHCR等镜像仓库
  • 🎨 支持多个前端主题
  • 🚫 支持自定义黑名单/白名单
  • 🗄️ 支持 Git Clone 缓存(配合 Smart-Git
  • 🐳 支持自托管与Docker容器化部署
  • 支持速率限制
  • 支持带宽速率限制
  • 🔒 支持用户鉴权
  • 🐚 支持 shell 脚本多层嵌套加速

DEMO

TG讨论群组

相关文章

项目文档

GHProxy项目文档Next(仍在建设中)

结语

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