源码部署
通过源码构建和部署 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