chatgpt2api / docs /deployment.md
li2895's picture
Update to v1.7.0 with HuggingFace adaptation
c47ec10
|
Raw
History Blame Contribute Delete
5.39 kB

部署与升级指南

本文介绍 ChatGPT2API 的常见部署方式,以及后续升级项目时需要保留的数据和执行步骤。

部署前准备

服务器需要安装:

  • Docker
  • Docker Compose v2
  • Git

首次部署前建议确认:

docker version
docker compose version
git --version

项目核心持久化文件:

路径 作用
config.json 主配置、后台密钥、代理、图片、备份等配置
.env Docker compose 环境变量
data/ 账号、日志、图片、任务记录等运行数据

升级和迁移时重点保留以上内容。

方式一:普通 Docker 部署

适合不需要 WARP / FlareSolverr 清障的场景。

git clone git@github.com:basketikun/chatgpt2api.git
cd chatgpt2api

设置 config.json 中的 auth-key,或在 docker-compose.yml 中配置:

environment:
  - CHATGPT2API_AUTH_KEY=your_secret_key

启动:

docker compose up -d

访问:

http://localhost:3000

API 基础地址:

http://localhost:3000/v1

查看日志:

docker logs -f chatgpt2api

停止:

docker compose down

方式二:WARP / FlareSolverr 部署

适合上游请求经常遇到 Cloudflare 拦截的场景。该方式会启动:

  • warp-proxy
  • privoxy
  • flaresolverr
  • init-config
  • app

复制环境变量模板:

cp .env.example .env

至少修改 .env 中的:

CHATGPT2API_AUTH_KEY=your_secret_key_here

启动:

docker compose -f docker-compose.warp.yml up -d --build

访问:

http://localhost:3000

FlareSolverr 相关配置可以在后台设置页的 FlareSolverr tab 中查看和测试。

查看容器状态:

docker compose -f docker-compose.warp.yml ps

查看日志:

docker logs -f chatgpt2api-warp
docker logs -f chatgpt2api-flaresolverr

停止:

docker compose -f docker-compose.warp.yml down

方式三:源码运行

适合本地开发或临时调试。

后端:

git clone git@github.com:basketikun/chatgpt2api.git
cd chatgpt2api
uv sync
uv run main.py

前端开发服务:

cd web
bun install
bun run dev

源码方式运行时,后端默认读取项目根目录的 config.jsondata/

存储后端

默认使用本地 JSON 文件:

STORAGE_BACKEND=json

可选值:

说明
json 本地 JSON 文件,默认方式
sqlite 本地 SQLite,通常存放在 data/accounts.db
postgres 外部 PostgreSQL
git Git 私有仓库存储账号数据

PostgreSQL 示例:

environment:
  - STORAGE_BACKEND=postgres
  - DATABASE_URL=postgresql://user:password@host:5432/dbname

SQLite 示例:

environment:
  - STORAGE_BACKEND=sqlite
  - DATABASE_URL=sqlite:////app/data/accounts.db

升级前备份

升级前建议备份:

mkdir -p backups
tar -czf backups/chatgpt2api-$(date +%Y%m%d-%H%M%S).tgz config.json .env data

如果没有 .env,可以去掉:

tar -czf backups/chatgpt2api-$(date +%Y%m%d-%H%M%S).tgz config.json data

也可以在后台设置页配置 Cloudflare R2 备份,用于定时备份关键数据。

升级:普通 Docker 部署

进入项目目录:

cd chatgpt2api

备份:

mkdir -p backups
tar -czf backups/chatgpt2api-$(date +%Y%m%d-%H%M%S).tgz config.json .env data

拉取最新代码和镜像:

git pull
docker compose pull
docker compose up -d

查看状态:

docker compose ps
docker logs -f chatgpt2api

升级:WARP / FlareSolverr 部署

进入项目目录:

cd chatgpt2api

备份:

mkdir -p backups
tar -czf backups/chatgpt2api-$(date +%Y%m%d-%H%M%S).tgz config.json .env data

拉取最新代码并重新构建:

git pull
docker compose -f docker-compose.warp.yml up -d --build

查看状态:

docker compose -f docker-compose.warp.yml ps
docker logs -f chatgpt2api-warp

升级:源码运行

cd chatgpt2api
git pull
uv sync

如果需要重新构建前端静态产物:

cd web
bun install
bun run build

然后按你的进程管理方式重启后端服务。

回滚

如果升级后需要回滚代码:

git log --oneline -n 20
git checkout <旧版本commit>

普通 Docker 部署:

docker compose up -d

WARP / FlareSolverr 部署:

docker compose -f docker-compose.warp.yml up -d --build

如果需要恢复数据:

tar -xzf backups/你的备份文件.tgz

恢复数据前建议先停止容器,避免运行中写入覆盖:

docker compose down

或:

docker compose -f docker-compose.warp.yml down

常用维护命令

查看容器:

docker compose ps

查看主服务日志:

docker logs -f chatgpt2api

查看 WARP 部署主服务日志:

docker logs -f chatgpt2api-warp

重启普通部署:

docker compose restart

重启 WARP 部署:

docker compose -f docker-compose.warp.yml restart

清理未使用镜像:

docker image prune

不要直接删除 data/config.json.env,除非已经确认有可用备份。