源码部署

通过源码构建和部署 GPT-Load,适合开发者进行功能定制和调试。提供完全的控制权和灵活性。

环境要求

开发环境

需要本地安装 Go 开发环境和相关工具链

必需软件

  • Go 1.23+ 开发环境
  • Git 版本控制工具
  • Make 构建工具
  • 数据库服务(MySQL/PostgreSQL/SQLite)

可选软件

  • Redis 缓存服务
  • Node.js 和 npm(前端开发)
  • Docker(容器化测试)
  • IDE 或编辑器(VS Code/GoLand)

安装步骤

1

克隆源码

从 GitHub 克隆 GPT-Load 源码仓库:

git clone https://github.com/tbphp/gpt-load.git
cd gpt-load

提示:如果需要特定版本,可以使用git checkout v1.x.x切换到对应版本标签

2

安装依赖

下载并安装 Go 模块依赖:

go mod tidy

注意:确保网络连接正常,某些依赖可能需要从海外服务器下载

3

数据库配置

创建配置文件

cp .env.example .env

复制示例配置文件并根据你的环境进行修改

数据库连接配置

SQLite(推荐用于开发):

DATABASE_DSN=./data/gpt-load.db

MySQL:

DATABASE_DSN=root:123456@tcp(mysql:3306)/gpt-load?charset=utf8mb4&parseTime=True&loc=Local

PostgreSQL:

DATABASE_DSN=postgres://postgres:123456@postgres:5432/gpt-load?sslmode=disable
4

构建运行

构建前端

cd web && npm install && npm run build

运行后端开发服务

go run main.go

运行前端开发服务

cd web && npm run dev

开发指南

项目结构

gpt-load/
  ├── internal/ # 内部业务逻辑
  │    ├── app/ # 应用初始化
  │    ├── channel/ # 渠道类型管理
  │    ├── config/ # 配置管理
  │    ├── container/ # dig容器服务管理
  │    ├── db/ # DB初始化及迁移脚本
  │    ├── errors/ # 错误信息
  │    ├── handler/ # 管理端API接口
  │    ├── httpclient/ # HTTP客户端封装
  │    ├── keypool/ # 密钥池管理
  │    ├── middleware/ # 中间件
  │    ├── models/ # 数据模型
  │    ├── proxy/ # 代理服务
  │    ├── response/ # 响应封装
  │    ├── router/ # 路由
  │    ├── services/ # 逻辑服务层
  │    ├── store/ # 统一内存
  │    ├── syncer/ # 集群同步器
  │    ├── types/ # 类型定义
  │    ├── utils/ # 工具函数
  │    └── version/ # 版本常量
  ├── web/ # 前端资源
  ├── go.mod # Go 模块定义
  ├── .env.example # 配置示例
  ├── docker-compose.yml # 配置示例
  ├── Dockerfile # 配置示例
  ├── Makefile # 构建规则
  └── main.go # 入口程序

故障排除

常见问题

Go 版本过低

错误信息:go version go1.xx.x: minimum supported version is go1.23

解决方案:升级 Go 版本到 1.23 或更高版本

依赖下载失败

可能的原因:网络连接问题或代理设置

# 设置 Go 代理
go env -w GOPROXY=https://goproxy.cn,direct

下一步

源码部署完成后,您可以:

  • 深入了解代码结构,进行功能定制
  • 参与开源项目,提交 Pull Request
  • 构建自定义 Docker 镜像
  • 集成到 CI/CD 流程中