ソースコードデプロイメント

ソースコードから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/ # 型定義
  │    └── 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

次のステップ

ソースコードデプロイメントが完了したら、以下のことができます:

  • コード構造を深く理解し、機能をカスタマイズ
  • オープンソースプロジェクトに参加し、プルリクエストを提出
  • カスタムDockerイメージをビルド
  • CI/CDパイプラインに統合