Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
15a0ea6
Enhance chat2api and ChatService with model fetching and error handli…
nanashiwang Apr 17, 2026
78370bd
Update GitHub Actions workflows for Docker builds: upgraded checkout …
nanashiwang Apr 17, 2026
472f869
测试
nanashiwang Apr 17, 2026
7ff13cb
更新构造流程
nanashiwang Apr 17, 2026
8dbbcff
构造镜像
nanashiwang Apr 17, 2026
57937fa
优化构建路径
nanashiwang Apr 17, 2026
c698ca3
构造升级
nanashiwang Apr 18, 2026
18348e8
增加前段界面
nanashiwang Apr 19, 2026
b928a75
侧边栏可点击
nanashiwang Apr 19, 2026
bf6d31d
1、增加一键部署;
nanashiwang Apr 19, 2026
91894db
增加测试时间,测试时间在前端更改
nanashiwang Apr 19, 2026
5cc5cd6
1、前端增加测试样例
nanashiwang Apr 19, 2026
af3f7f2
前端增加代理验证
nanashiwang Apr 19, 2026
f6386b4
增加删除按钮
nanashiwang Apr 19, 2026
858960c
增加更新token
nanashiwang Apr 19, 2026
3690832
优化系统封控
nanashiwang Apr 19, 2026
d860808
实现Antiban功能:增加动态IP绑定、请求间隔控制及错误报告机制,优化系统封控策略。
nanashiwang Apr 20, 2026
117ff5d
增加文件上传和解析功能,支持上传 .txt 和 .json 文件以预览 token,前端界面相应更新。
nanashiwang Apr 20, 2026
1a13f4a
对RefreshToken的识别更加鲁棒
nanashiwang Apr 20, 2026
4c08cff
增强日志管理功能:新增日志轮询和下载接口,前端实现日志查看和下载功能,支持按级别和关键字筛选。
nanashiwang Apr 20, 2026
ed32306
增强refreshToken功能:添加API调用的请求头以确保正确路由,并关闭TLS指纹模拟以提高安全性。
nanashiwang Apr 20, 2026
78ecc66
重构前端页面导航:更新页面链接和路由管理,优化用户界面,增强可用性和交互性。
nanashiwang Apr 20, 2026
9c78013
新增Harvester账号管理功能:实现账号元数据的增删改查接口,支持批量导入和状态上报,前端界面相应更新以增强用户交互体验。
nanashiwang Apr 20, 2026
908a9d3
新增Harvester浏览器登录功能:实现OAuth PKCE授权流程,包括启动授权会话和交换token的API,前端界面相应更新以支持用…
nanashiwang Apr 21, 2026
939533c
新增SessionToken支持:实现从浏览器粘贴的__Secure-next-auth.session-token cookie导入功能…
nanashiwang Apr 21, 2026
efe5a37
增强SessionToken导入功能:支持多种格式的NextAuth session cookie粘贴,自动识别并拼接分片,前端界面更新以…
nanashiwang Apr 21, 2026
f078cf4
新增IP白名单和信任代理功能:实现管理后台的IP白名单检查,增强安全性,支持通过环境变量配置,前端接口相应更新以确保未授权IP无法访问。同…
nanashiwang Apr 21, 2026
12fe9ba
新增多账号多实例部署方案 B + 编排管理面板(Orchestrator)
nanashiwang Apr 26, 2026
98eb1bb
切换 watchtower 到 nickfedor/watchtower fork(containrrr 仓库已 archived,lat…
nanashiwang Apr 26, 2026
3ffa926
修复多实例部署的两个 bug
nanashiwang Apr 26, 2026
80cd251
深层修复:让 orchestrator 容器内挂载点 = 宿主 MULTI_HOST_PATH
nanashiwang Apr 26, 2026
ef2cd43
去掉 orchestrator working_dir 覆盖:保留 Dockerfile WORKDIR=/app 让 uvicorn 找…
nanashiwang Apr 26, 2026
40afd97
healthcheck 改用 python TCP 探活 5005(chat2api 镜像不含 curl)
nanashiwang Apr 26, 2026
fd91e18
新增/删账号后主动 nginx reload(compose 不会因 nginx.conf 改动重启 nginx)
nanashiwang Apr 26, 2026
6915761
前端所有请求都带 X-CSRF-Token 头(修复 GET /api/secrets reveal 报 CSRF 校验失败)
nanashiwang Apr 26, 2026
cd51b00
凭证弹窗去掉 API_PREFIX 显示,强化对外可点 admin URL 与 v1 调用示例
nanashiwang Apr 26, 2026
53ac484
nginx 反向改写 chat2api 硬编码 API_PREFIX 到对外 slug 路径
nanashiwang Apr 26, 2026
b03c9d4
proxy_redirect 用 $scheme://$http_host 保留客户端端口(修 60403 丢失)
nanashiwang Apr 26, 2026
b462dc4
nginx 反向 rewrite 兜底:捕获 chat2api 前端 JS 动态拼出的 /api-XXX/ 路径
nanashiwang Apr 26, 2026
c66a7cc
兜底从 internal rewrite 改成 307 外部重定向
nanashiwang Apr 26, 2026
f76ad2b
默认关闭 antiban 桶机制(一容器一账号已物理隔离,桶逻辑反而拦截请求)
nanashiwang Apr 26, 2026
a69b144
增加部署快捷键
nanashiwang May 4, 2026
dc56664
优化前端配置
nanashiwang May 4, 2026
6a7b690
优化容器登录bug
nanashiwang May 5, 2026
d7f3b30
修改bug
nanashiwang May 5, 2026
54b8a4a
优化bug
nanashiwang May 5, 2026
afb62b9
优化跳转容器的bug
nanashiwang May 6, 2026
cf9552a
优化容器映射地址错误的bug
nanashiwang May 7, 2026
86b10c7
优化bug
nanashiwang May 7, 2026
230eefe
优化readme文档
nanashiwang May 7, 2026
74e9cf3
更新文档
nanashiwang May 7, 2026
d693089
增加自动花心token功能,保证账号不掉
nanashiwang May 11, 2026
ec04bf0
优化浏览器登录按钮缺失问题
nanashiwang May 11, 2026
0dd5560
删除账号与令牌
nanashiwang May 11, 2026
01e8113
容器管理界面增加可用模型看板
nanashiwang May 11, 2026
9b058be
优化更新快捷键bug
nanashiwang May 11, 2026
652d05c
优化前端bug
nanashiwang May 11, 2026
440845e
优化多实例自动更新流程
nanashiwang May 11, 2026
4ccf814
增加具体可用模型
nanashiwang May 11, 2026
6399fc7
可以对模型就行探测,获得可用列表
nanashiwang May 11, 2026
b283811
增强多实例更新容错
nanashiwang May 11, 2026
4ac7a15
兼容模型探测旧路径
nanashiwang May 11, 2026
50aeecc
增加编排面板诊断日志
nanashiwang May 11, 2026
16126f9
增加深度研究功能
nanashiwang May 11, 2026
4dd0553
增强模型探测错误日志
nanashiwang May 11, 2026
5fdf0ce
修复指纹头类型导致模型探测失败
nanashiwang May 11, 2026
7b596f3
展示深度研究模型别名
nanashiwang May 11, 2026
dcb79ae
简化多实例部署说明
nanashiwang May 11, 2026
64e8099
一键安装同步多实例脚本
nanashiwang May 11, 2026
1f81334
支持一键部署多实例面板
nanashiwang May 11, 2026
e9508cd
添加卸载命令
nanashiwang May 11, 2026
39566c2
单实例更新同步管理命令
nanashiwang May 11, 2026
80ec2ab
默认一键部署多实例
nanashiwang May 11, 2026
de8029e
修复单实例到多实例端口冲突
nanashiwang May 11, 2026
110db67
增加编排面板管理中心
nanashiwang May 11, 2026
0dd62eb
非git安装同步编排面板文件
nanashiwang May 11, 2026
868c26d
优化列表布局
nanashiwang May 11, 2026
b7168ee
增加统一调度功能
nanashiwang May 12, 2026
6a4e6bf
修复统一API外部地址
nanashiwang May 12, 2026
f7c0075
优化复制报错bug
nanashiwang May 12, 2026
d941475
展示统一API支持接口
nanashiwang May 12, 2026
0680bc2
前端ui布局优化
nanashiwang May 12, 2026
67c4744
优化前端更新bug
nanashiwang May 12, 2026
8cbdb30
优化 Orchestrator 字体显示
nanashiwang May 12, 2026
52d8078
新增 Responses API 兼容路由
nanashiwang May 12, 2026
78a861b
支持Playground自定义模型
nanashiwang May 13, 2026
67ebae6
添加账号风险嗅探功能,记录系统消息中的软警告,更新相关文件以支持新功能
nanashiwang May 13, 2026
0840731
禁用编排面板静态缓存
nanashiwang May 13, 2026
9554375
增强 ChatService 和 fp 模块,添加 OpenAI 客户端版本和构建号支持,改进指纹生成逻辑,优化抗反自动化功能,确保请求头…
nanashiwang May 13, 2026
de4be90
兼容统一入口流式调用
nanashiwang May 13, 2026
33d4900
增强流式兼容部署校验
nanashiwang May 14, 2026
1912fea
复用原请求头处理流式兼容
nanashiwang May 14, 2026
c99f3e9
重构 ChatService 类,合并授权、模型和文件处理功能,移除冗余代码,优化请求上下文初始化逻辑,增强代码可读性和维护性
nanashiwang May 14, 2026
a2e6bc8
添加使用日志功能,记录请求的使用情况,包括请求ID、IP、模型、状态和耗时等信息,并在前端展示使用数据的过滤和汇总功能,增强用户对系统使用…
nanashiwang May 15, 2026
3953dae
添加对图像生成模块的导入,以支持新功能的集成
nanashiwang May 15, 2026
9366577
增强指纹浏览器配置
nanashiwang May 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
84 changes: 66 additions & 18 deletions .github/workflows/build_docker_dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,62 +9,110 @@ on:
- 'docker-compose.yml'
- 'docker-compose-warp.yml'
- 'docs/**'
- '.github/workflows/build_docker_main.yml'
- '.github/workflows/build_docker_dev.yml'
workflow_dispatch:

permissions:
contents: write
packages: write

jobs:
main:
runs-on: ubuntu-latest

steps:
- name: Check out the repository
uses: actions/checkout@v2
uses: actions/checkout@v5
with:
fetch-depth: 0

- name: Read the version from version.txt
id: get_version
run: |
version=$(cat version.txt)
echo "Current version: v$version-dev"
echo "::set-output name=version::v$version-dev"
echo "version=v$version-dev" >> "$GITHUB_OUTPUT"

- name: Commit and push version tag
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
version=${{ steps.get_version.outputs.version }}
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git tag "$version"
git push https://x-access-token:${GHCR_PAT}@github.com/lanqian528/chat2api.git "$version"
if git rev-parse "$version" >/dev/null 2>&1; then
echo "Tag $version already exists"
else
git tag "$version"
git push origin "$version"
fi

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Log in to GHCR
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Docker meta for GHCR
id: meta_ghcr
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/chat2api
tags: |
type=raw,value=latest-dev
type=raw,value=${{ steps.get_version.outputs.version }}

- name: Build and push GHCR image
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
file: Dockerfile
push: true
tags: ${{ steps.meta_ghcr.outputs.tags }}
labels: ${{ steps.meta_ghcr.outputs.labels }}

- name: Detect Docker Hub credentials
id: dockerhub_creds
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
if [ -n "$DOCKER_USERNAME" ] && [ -n "$DOCKER_PASSWORD" ]; then
echo "present=true" >> "$GITHUB_OUTPUT"
else
echo "present=false" >> "$GITHUB_OUTPUT"
echo "Docker Hub credentials not configured; skipping Docker Hub publish."
fi

- name: Log in to Docker Hub
uses: docker/login-action@v3
if: ${{ steps.dockerhub_creds.outputs.present == 'true' }}
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Docker meta
id: meta
- name: Docker meta for Docker Hub
if: ${{ steps.dockerhub_creds.outputs.present == 'true' }}
id: meta_dockerhub
uses: docker/metadata-action@v5
with:
images: lanqian528/chat2api
images: nanashiwang/chat2api
tags: |
type=raw,value=latest-dev
type=raw,value=${{ steps.get_version.outputs.version }}

- name: Build and push
uses: docker/build-push-action@v5
- name: Build and push Docker Hub image
if: ${{ steps.dockerhub_creds.outputs.present == 'true' }}
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
file: Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
tags: ${{ steps.meta_dockerhub.outputs.tags }}
labels: ${{ steps.meta_dockerhub.outputs.labels }}
84 changes: 66 additions & 18 deletions .github/workflows/build_docker_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,62 +9,110 @@ on:
- 'docker-compose.yml'
- 'docker-compose-warp.yml'
- 'docs/**'
- '.github/workflows/build_docker_main.yml'
- '.github/workflows/build_docker_dev.yml'
workflow_dispatch:

permissions:
contents: write
packages: write

jobs:
main:
runs-on: ubuntu-latest

steps:
- name: Check out the repository
uses: actions/checkout@v2
uses: actions/checkout@v5
with:
fetch-depth: 0

- name: Read the version from version.txt
id: get_version
run: |
version=$(cat version.txt)
echo "Current version: v$version"
echo "::set-output name=version::v$version"
echo "version=v$version" >> "$GITHUB_OUTPUT"

- name: Commit and push version tag
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
version=${{ steps.get_version.outputs.version }}
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git tag "$version"
git push https://x-access-token:${GHCR_PAT}@github.com/lanqian528/chat2api.git "$version"
if git rev-parse "$version" >/dev/null 2>&1; then
echo "Tag $version already exists"
else
git tag "$version"
git push origin "$version"
fi

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Log in to GHCR
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Docker meta for GHCR
id: meta_ghcr
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/chat2api
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{ steps.get_version.outputs.version }}

- name: Build and push GHCR image
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
file: Dockerfile
push: true
tags: ${{ steps.meta_ghcr.outputs.tags }}
labels: ${{ steps.meta_ghcr.outputs.labels }}

- name: Detect Docker Hub credentials
id: dockerhub_creds
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
if [ -n "$DOCKER_USERNAME" ] && [ -n "$DOCKER_PASSWORD" ]; then
echo "present=true" >> "$GITHUB_OUTPUT"
else
echo "present=false" >> "$GITHUB_OUTPUT"
echo "Docker Hub credentials not configured; skipping Docker Hub publish."
fi

- name: Log in to Docker Hub
uses: docker/login-action@v3
if: ${{ steps.dockerhub_creds.outputs.present == 'true' }}
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Docker meta
id: meta
- name: Docker meta for Docker Hub
if: ${{ steps.dockerhub_creds.outputs.present == 'true' }}
id: meta_dockerhub
uses: docker/metadata-action@v5
with:
images: lanqian528/chat2api
images: nanashiwang/chat2api
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{ steps.get_version.outputs.version }}

- name: Build and push
uses: docker/build-push-action@v5
- name: Build and push Docker Hub image
if: ${{ steps.dockerhub_creds.outputs.present == 'true' }}
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
file: Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
tags: ${{ steps.meta_dockerhub.outputs.tags }}
labels: ${{ steps.meta_dockerhub.outputs.labels }}
Loading