Skip to content

Commit 06af148

Browse files
GenistarWynthclaude
andcommitted
ci+docs: publish Docker image to ghcr.io; fork section in all language READMEs
- docker-build.yml: publish the fork's multi-arch image to ghcr.io/genistarwynth/wynth-api via the built-in GITHUB_TOKEN (no Docker Hub account/secrets); add packages:write to the manifest job. - Add the "Wynth fork — changes relative to upstream" section to README.en / zh_CN / zh_TW / fr / ja (English README.md already had it). Upstream New API / QuantumNous branding + licensing preserved. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent bdcc1d0 commit 06af148

6 files changed

Lines changed: 95 additions & 18 deletions

File tree

.github/workflows/docker-build.yml

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,18 @@ jobs:
6161
- name: Set up Docker Buildx
6262
uses: docker/setup-buildx-action@v3
6363

64-
- name: Log in to Docker Hub
64+
- name: Log in to GitHub Container Registry
6565
uses: docker/login-action@v3
6666
with:
67-
username: ${{ secrets.DOCKERHUB_USERNAME }}
68-
password: ${{ secrets.DOCKERHUB_TOKEN }}
67+
registry: ghcr.io
68+
username: ${{ github.actor }}
69+
password: ${{ secrets.GITHUB_TOKEN }}
6970

7071
- name: Extract metadata (labels)
7172
id: meta
7273
uses: docker/metadata-action@v5
7374
with:
74-
images: calciumion/new-api
75+
images: ghcr.io/genistarwynth/wynth-api
7576

7677
- name: Build & push
7778
id: build
@@ -81,8 +82,8 @@ jobs:
8182
platforms: ${{ matrix.platform }}
8283
push: true
8384
tags: |
84-
calciumion/new-api:${{ env.TAG }}-${{ matrix.arch }}
85-
calciumion/new-api:latest-${{ matrix.arch }}
85+
ghcr.io/genistarwynth/wynth-api:${{ env.TAG }}-${{ matrix.arch }}
86+
ghcr.io/genistarwynth/wynth-api:latest-${{ matrix.arch }}
8687
labels: ${{ steps.meta.outputs.labels }}
8788
cache-from: type=gha
8889
cache-to: type=gha,mode=max
@@ -93,13 +94,13 @@ jobs:
9394
uses: sigstore/cosign-installer@v3
9495

9596
- name: Sign image with cosign
96-
run: cosign sign --yes calciumion/new-api@${{ steps.build.outputs.digest }}
97+
run: cosign sign --yes ghcr.io/genistarwynth/wynth-api@${{ steps.build.outputs.digest }}
9798

9899
- name: Image summary
99100
run: |
100101
echo "### Docker Image Digest (${{ matrix.arch }})" >> $GITHUB_STEP_SUMMARY
101102
echo '```' >> $GITHUB_STEP_SUMMARY
102-
echo "calciumion/new-api:${TAG}-${{ matrix.arch }}" >> $GITHUB_STEP_SUMMARY
103+
echo "ghcr.io/genistarwynth/wynth-api:${TAG}-${{ matrix.arch }}" >> $GITHUB_STEP_SUMMARY
103104
echo "${{ steps.build.outputs.digest }}" >> $GITHUB_STEP_SUMMARY
104105
echo '```' >> $GITHUB_STEP_SUMMARY
105106
@@ -109,33 +110,39 @@ jobs:
109110
runs-on: ubuntu-latest
110111
if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch'
111112

113+
permissions:
114+
packages: write
115+
contents: read
116+
id-token: write
117+
112118
steps:
113119
- name: Set version
114120
run: echo "TAG=${{ needs.build_single_arch.outputs.tag }}" >> $GITHUB_ENV
115121

116-
- name: Log in to Docker Hub
122+
- name: Log in to GitHub Container Registry
117123
uses: docker/login-action@v3
118124
with:
119-
username: ${{ secrets.DOCKERHUB_USERNAME }}
120-
password: ${{ secrets.DOCKERHUB_TOKEN }}
125+
registry: ghcr.io
126+
username: ${{ github.actor }}
127+
password: ${{ secrets.GITHUB_TOKEN }}
121128

122129
- name: Create & push manifest (version)
123130
run: |
124131
docker buildx imagetools create \
125-
-t calciumion/new-api:${TAG} \
126-
calciumion/new-api:${TAG}-amd64 \
127-
calciumion/new-api:${TAG}-arm64
132+
-t ghcr.io/genistarwynth/wynth-api:${TAG} \
133+
ghcr.io/genistarwynth/wynth-api:${TAG}-amd64 \
134+
ghcr.io/genistarwynth/wynth-api:${TAG}-arm64
128135
129136
- name: Create & push manifest (latest)
130137
run: |
131138
docker buildx imagetools create \
132-
-t calciumion/new-api:latest \
133-
calciumion/new-api:latest-amd64 \
134-
calciumion/new-api:latest-arm64
139+
-t ghcr.io/genistarwynth/wynth-api:latest \
140+
ghcr.io/genistarwynth/wynth-api:latest-amd64 \
141+
ghcr.io/genistarwynth/wynth-api:latest-arm64
135142
136143
- name: Manifest summary
137144
run: |
138145
echo "### Multi-arch Manifest" >> $GITHUB_STEP_SUMMARY
139146
echo '```' >> $GITHUB_STEP_SUMMARY
140-
docker buildx imagetools inspect calciumion/new-api:${TAG} >> $GITHUB_STEP_SUMMARY
147+
docker buildx imagetools inspect ghcr.io/genistarwynth/wynth-api:${TAG} >> $GITHUB_STEP_SUMMARY
141148
echo '```' >> $GITHUB_STEP_SUMMARY

README.en.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,20 @@
6060
6161
---
6262

63+
## 🍱 Wynth Fork — changes relative to upstream
64+
65+
> **Wynth** (`GenistarWynth/wynth-api`) is a downstream fork of [New API](https://github.com/QuantumNous/new-api) by **QuantumNous**. It tracks upstream New API and layers the additions below on top. All upstream New API functionality, branding, and licensing are preserved; see [`CHANGELOG.md`](./CHANGELOG.md) for the full per-release log.
66+
67+
Added on top of upstream New API:
68+
69+
- **Account Pool (号池)** — multi-platform account pooling (OpenAI/Codex, Anthropic, Gemini incl. Code Assist / Antigravity / Google One, Vertex AI service-account, xAI OAuth, grok.com web cookie) with failure-grading cooldown, per-user concurrency, account affinity, load-aware selection, per-account request quotas, Redis HA, proxy health-probe, import/export, and a multi-platform admin UI.
70+
- **grok.com Web Reverse-Proxy channel** *(fragile / best-effort, reverse-engineered)* — a `grok_web` pool platform using a grok.com web cookie / `console.x.ai` SSO token as upstream, coexisting with the official X.AI OAuth channel. Supports text chat, image generation, reasoning, and deep-search via OpenAI ↔ grok web-SSE translation. Not guaranteed to be stable; labeled as such in code.
71+
- **Upstream-source channel generation** — auto-generate/sync channels from an upstream source, skipping & disabling channels whose upstream returns no usable models.
72+
73+
Last upstream sync: New API `main` @ 2026-06-28 (see CHANGELOG).
74+
75+
---
76+
6377
## 🤝 Trusted Partners
6478

6579
<p align="center">

README.fr.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,20 @@
6262
6363
---
6464

65+
## 🍱 Fork Wynth — modifications par rapport à l'amont
66+
67+
> **Wynth** (`GenistarWynth/wynth-api`) est un fork en aval de [New API](https://github.com/QuantumNous/new-api) par **QuantumNous**. Il suit New API en amont et ajoute par-dessus les fonctionnalités ci-dessous. Toutes les fonctionnalités, la marque et la licence de New API en amont sont préservées ; voir [`CHANGELOG.md`](./CHANGELOG.md) pour le journal complet par version.
68+
69+
Ajouté par-dessus New API en amont :
70+
71+
- **Pool de comptes (号池)** — pool de comptes multi-plateformes (OpenAI/Codex, Anthropic, Gemini dont Code Assist / Antigravity / Google One, compte de service Vertex AI, OAuth xAI, cookie web grok.com) avec refroidissement gradué en cas d'échec, concurrence par utilisateur, affinité de compte, sélection sensible à la charge, quotas de requêtes par compte, haute disponibilité Redis, sonde de santé des proxys, import/export et une interface d'administration multi-plateformes.
72+
- **Canal proxy inverse web grok.com** *(fragile / best-effort, rétro-ingénierie)* — une plateforme de pool `grok_web` utilisant un cookie web grok.com / un jeton SSO `console.x.ai` comme amont, coexistant avec le canal OAuth officiel X.AI. Prend en charge le chat textuel, la génération d'images, le raisonnement et la deep-search via une traduction bidirectionnelle OpenAI ↔ SSE web grok. Stabilité non garantie ; signalé comme tel dans le code.
73+
- **Génération de canaux depuis une source amont** — génère/synchronise automatiquement des canaux depuis une source amont ; ignore le mappage et désactive les canaux générés dont l'amont ne renvoie aucun modèle utilisable.
74+
75+
Dernière synchronisation amont : New API `main` @ 2026-06-28 (voir CHANGELOG).
76+
77+
---
78+
6579
## 🤝 Partenaires de confiance
6680

6781
<p align="center">

README.ja.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,20 @@
6262
6363
---
6464

65+
## 🍱 Wynth フォーク — 上流からの変更点
66+
67+
> **Wynth**`GenistarWynth/wynth-api`)は **QuantumNous** による [New API](https://github.com/QuantumNous/new-api) の下流フォークです。上流の New API に追従しつつ、以下の機能を上に追加しています。上流 New API の全機能・ブランド・ライセンスはすべて保持しています。リリースごとの完全な記録は [`CHANGELOG.md`](./CHANGELOG.md) を参照してください。
68+
69+
上流 New API への追加:
70+
71+
- **アカウントプール(号池)** — マルチプラットフォームのアカウントプール(OpenAI/Codex、Anthropic、Gemini〔Code Assist / Antigravity / Google One 含む〕、Vertex AI サービスアカウント、xAI OAuth、grok.com Web Cookie)。失敗段階別クールダウン、ユーザー単位の同時実行、アカウントアフィニティ、負荷を考慮した選択、アカウント単位のリクエストクォータ、Redis HA、プロキシのヘルスチェック、インポート/エクスポート、マルチプラットフォーム管理 UI を備えます。
72+
- **grok.com Web リバースプロキシチャネル** *(脆弱 / ベストエフォート、リバースエンジニアリング)* — grok.com の Web Cookie / `console.x.ai` SSO トークンを上流として使う `grok_web` プールプラットフォーム。公式 X.AI OAuth チャネルと共存します。OpenAI ↔ grok Web SSE の双方向変換により、テキストチャット・画像生成・推論・deep-search に対応。安定性は保証されず、コード内にその旨を明記しています。
73+
- **上流ソースからのチャネル生成** — 上流ソースからチャネルを自動生成/同期し、上流が利用可能なモデルを返さない場合はマッピングをスキップして該当の生成チャネルを無効化します。
74+
75+
最終の上流同期:New API `main` @ 2026-06-28(CHANGELOG 参照)。
76+
77+
---
78+
6579
## 🤝 信頼できるパートナー
6680

6781
<p align="center">

README.zh_CN.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,20 @@
6262
6363
---
6464

65+
## 🍱 Wynth 分支 — 相较上游的改动
66+
67+
> **Wynth**`GenistarWynth/wynth-api`)是 **QuantumNous**[New API](https://github.com/QuantumNous/new-api) 的下游分支。它持续跟进上游 New API,并在其之上叠加下列新增功能。上游 New API 的全部功能、品牌与许可均予保留;完整的逐版本记录见 [`CHANGELOG.md`](./CHANGELOG.md)
68+
69+
在上游 New API 之上新增:
70+
71+
- **账号池(号池)** — 多平台账号池(OpenAI/Codex、Anthropic、Gemini〔含 Code Assist / Antigravity / Google One〕、Vertex AI 服务账号、xAI OAuth、grok.com 网页 cookie),具备失败分级冷却、按用户并发、账号亲和、负载感知选号、按账号请求配额、Redis 高可用、代理健康探测、导入/导出,以及多平台管理后台。
72+
- **grok.com 网页反代通道** *(脆弱 / 尽力而为,逆向实现)* — 一个 `grok_web` 池平台,使用 grok.com 网页 cookie / `console.x.ai` SSO token 作为上游,与官方 X.AI OAuth 通道并存。通过 OpenAI ↔ grok 网页 SSE 双向翻译,支持文本对话、图像生成、推理与 deep-search。不保证长期稳定,代码中已如实标注。
73+
- **上游源渠道生成** — 从上游源自动生成/同步渠道;当上游返回无可用模型时,跳过映射并禁用对应生成渠道。
74+
75+
最近一次上游同步:New API `main` @ 2026-06-28(详见 CHANGELOG)。
76+
77+
---
78+
6579
## 🤝 我们信任的合作伙伴
6680

6781
<p align="center">

README.zh_TW.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,20 @@
6262
6363
---
6464

65+
## 🍱 Wynth 分支 — 相較上游的變更
66+
67+
> **Wynth**`GenistarWynth/wynth-api`)是 **QuantumNous**[New API](https://github.com/QuantumNous/new-api) 的下游分支。它持續跟進上游 New API,並在其之上疊加下列新增功能。上游 New API 的全部功能、品牌與授權均予保留;完整的逐版本記錄見 [`CHANGELOG.md`](./CHANGELOG.md)
68+
69+
在上游 New API 之上新增:
70+
71+
- **帳號池(號池)** — 多平台帳號池(OpenAI/Codex、Anthropic、Gemini〔含 Code Assist / Antigravity / Google One〕、Vertex AI 服務帳號、xAI OAuth、grok.com 網頁 cookie),具備失敗分級冷卻、依使用者並發、帳號親和、負載感知選號、依帳號請求配額、Redis 高可用、代理健康探測、匯入/匯出,以及多平台管理後台。
72+
- **grok.com 網頁反代通道** *(脆弱 / 盡力而為,逆向實作)* — 一個 `grok_web` 池平台,使用 grok.com 網頁 cookie / `console.x.ai` SSO token 作為上游,與官方 X.AI OAuth 通道並存。透過 OpenAI ↔ grok 網頁 SSE 雙向翻譯,支援文字對話、影像生成、推理與 deep-search。不保證長期穩定,程式碼中已如實標註。
73+
- **上游源通道生成** — 從上游源自動生成/同步通道;當上游回傳無可用模型時,略過對應並停用該生成通道。
74+
75+
最近一次上游同步:New API `main` @ 2026-06-28(詳見 CHANGELOG)。
76+
77+
---
78+
6579
## 🤝 我們信任的合作伙伴
6680

6781
<p align="center">

0 commit comments

Comments
 (0)