diff --git a/.gitignore b/.gitignore index b12833f..609b66b 100644 --- a/.gitignore +++ b/.gitignore @@ -142,7 +142,8 @@ celerybeat.pid *.sage.py # Environments -.env +!.env +!.env.example .venv env/ venv/ diff --git a/docker/app/.env b/docker/app/.env new file mode 100644 index 0000000..beac11e --- /dev/null +++ b/docker/app/.env @@ -0,0 +1,46 @@ +APP_ENV=prod +APP_NAME=YG Fine-Tune Platform API +MODELTF_ROUTE_PREFIX=/modelTF +CORS_ALLOW_ORIGINS=http://localhost:16801,http://127.0.0.1:16801 + +FRONTEND_IMAGE=yg-ft-frontend-runtime:latest +BACKEND_API_IMAGE=yg-ft-backend-api:latest + +# Five-digit host ports exposed outside the application server. +FRONTEND_PORT=16801 +BACKEND_API_PORT=17861 +POSTGRES_PORT=15432 +REDIS_PORT=16379 + +POSTGRES_DB=yg_ft +POSTGRES_USER=root +POSTGRES_PASSWORD=8811614287327Leo +DATABASE_URL=postgresql+psycopg://root:8811614287327Leo@www.caoxiaozhu.com:5432/yg_ft + +REDIS_URL=redis://redis:6379/0 + +# PostgreSQL uses the shared external database. The local postgres service is disabled in docker-compose.yml. +# Redis still uses the built-in service during current development. +USE_BUILTIN_POSTGRES=false +USE_BUILTIN_REDIS=true + +LOG_LEVEL=INFO +LOG_DIR=/opt/yg-ft/logs/backend +LOG_FILE_PREFIX=backend +LOG_ERROR_FILE_PREFIX=error +LOG_MAX_BYTES=20971520 +LOG_RETENTION_DAYS=10 + +BACKEND_PROXY_PASS=http://backend-api:8000 + +# Split deployment: set these to the compute server address, for example http://10.10.20.31:19100. +COMPUTE_API_BASE_URL=http://compute-api:9100 +COMPUTE_SERVICE_TOKEN=change_me +FILE_GATEWAY_BASE_URL=http://compute-api:9101 + +# The application side polls Compute API for job state to avoid opening reverse network access. +COMPUTE_MODE=real +COMPUTE_STATUS_SYNC_MODE=polling +COMPUTE_POLL_INTERVAL_SECONDS=10 +COMPUTE_POLL_BATCH_SIZE=100 +COMPUTE_REQUEST_TIMEOUT_SECONDS=5 diff --git a/docker/compute/.env b/docker/compute/.env new file mode 100644 index 0000000..b85b457 --- /dev/null +++ b/docker/compute/.env @@ -0,0 +1,40 @@ +COMPUTE_ENV=prod +COMPUTE_HOST_ID=gpu-node-01 +COMPUTE_EXECUTION_MODE=real +MODELTF_ROUTE_PREFIX=/modelTF +# Five-digit host ports exposed outside the compute server. +COMPUTE_API_PORT=19100 +FILE_GATEWAY_PORT=19101 +COMPUTE_API_IMAGE=yg-ft-compute-api:latest + +# The application server actively polls Compute API; compute server does not need reverse access. +COMPUTE_AUTH_ENABLED=true +COMPUTE_SERVICE_TOKEN=change_me +ENABLE_APP_CALLBACK=false + +# LLaMA-Factory is provided by the official hiyouga/llamafactory base image. +LLAMA_FACTORY_HOME=/app/LLaMA-Factory + +YG_FT_DATA_ROOT=/data/yg-ft +YG_FT_DATA_ROOT_HOST=./data/yg-ft +YG_FT_MODEL_ROOT=/data/yg-ft/models +YG_FT_MODEL_ROOT_HOST=./data/yg-ft/models +YG_FT_DATASET_ROOT=/data/yg-ft/datasets +YG_FT_DATASET_ROOT_HOST=./data/yg-ft/datasets +YG_FT_OUTPUT_ROOT=/data/yg-ft/outputs +YG_FT_OUTPUT_ROOT_HOST=./data/yg-ft/outputs +TRAINING_LOG_ROOT=/opt/yg-ft/logs/training +TRAINING_LOG_ROOT_HOST=./data/yg-ft/logs/training +COMPUTE_LOG_ROOT_HOST=./data/yg-ft/logs/compute + +# Optional fallback used when nvidia-smi is unavailable. +# Leave COMPUTE_GPU_COUNT=0 on real GPU servers with working NVIDIA runtime. +COMPUTE_GPU_COUNT=0 +COMPUTE_GPU_NAME=NVIDIA A800-SXM4-80GB +COMPUTE_GPU_MEMORY_GB=80 +COMPUTE_GPU_POWER_LIMIT_W=300 + +LOG_DIR=/opt/yg-ft/logs/compute +CUDA_VISIBLE_DEVICES=all +NVIDIA_VISIBLE_DEVICES=all +NVIDIA_DRIVER_CAPABILITIES=compute,utility