Skip to main content

Source Deployment

This page explains how to build and deploy TGO from source code, suitable for customization or development debugging.

Difference from Image Deployment

MethodDescriptionUse Case
Image Deployment (default)Uses pre-built Docker imagesProduction, quick deployment
Source DeploymentBuilds images from local sourceDevelopment, customization

Source Deployment Steps

1. Clone Repository

git clone https://github.com/tgoai/tgo.git
cd tgo

For users in China:

git clone https://gitee.com/tgoai/tgo.git
cd tgo

2. Initialize Submodules

TGO service source code is managed as Git submodules in the repos/ directory:

git submodule update --init --recursive

3. Run Source Installation

Use the --source parameter for source deployment:

./tgo.sh install --source

For users in China, add --cn for mirrors:

./tgo.sh install --source --cn

Source Directory Structure

tgo/
└── repos/
├── tgo-api/ # Backend API service
├── tgo-ai/ # AI inference service
├── tgo-rag/ # RAG service
├── tgo-platform/ # Platform management service
├── tgo-web/ # Web console
└── tgo-widget/ # Widget component

Build Specific Services

If you only modified one service, rebuild it individually:

# Build specific service
./tgo.sh build api # Build tgo-api
./tgo.sh build ai # Build tgo-ai
./tgo.sh build rag # Build tgo-rag
./tgo.sh build platform # Build tgo-platform
./tgo.sh build web # Build tgo-web
./tgo.sh build widget # Build tgo-widget

# Build all services
./tgo.sh build all

Restart services after building:

./tgo.sh down
./tgo.sh up --source

Development Workflow

Modify Code

  1. Enter the service directory:

    cd repos/tgo-api
  2. Make your changes

  3. Rebuild and restart:

    cd ../..
    ./tgo.sh build api
    ./tgo.sh down
    ./tgo.sh up --source

View Logs

# View all logs
docker compose logs -f

# View specific service logs
docker compose logs -f tgo-api

Enter Container for Debugging

docker compose exec tgo-api bash

Notes

  1. First build takes longer: Source build requires downloading dependencies and compiling, may take 10-30 minutes initially

  2. Disk Space: Source deployment requires more disk space for source code and build cache

  3. Network Requirements: Build process needs to download dependency packages, ensure network connectivity

  4. Branch Sync: If main repo is updated, remember to sync submodules:

    git pull
    git submodule update --recursive