Showing
4 changed files
with
81 additions
and
97 deletions
| 1 | # Shared Configuration | 1 | # Shared Configuration |
| 2 | -PUBLIC_IP="106.120.52.146" | 2 | +export PUBLIC_IP="106.120.52.146" |
| 3 | 3 | ||
| 4 | # Ports (External Access) | 4 | # Ports (External Access) |
| 5 | -LOCAL_BACKEND_PORT="9998" | ||
| 6 | -PUBLIC_BACKEND_PORT="39998" | ||
| 7 | -LOCAL_FRONTEND_PORT="9013" | ||
| 8 | -PUBLIC_FRONTEND_PORT="39013" | ||
| 9 | -LOCAL_TURBO_PORT="7002" | ||
| 10 | -PUBLIC_TURBO_PORT="37002" | ||
| 11 | -PUBLIC_OSS_PORT="34000" | ||
| 12 | -PUBLIC_ZIMAGE_PORT="39009" | 5 | +export LOCAL_BACKEND_PORT="7000" |
| 6 | +export PUBLIC_BACKEND_PORT="37000" | ||
| 7 | +export LOCAL_FRONTEND_PORT="7001" | ||
| 8 | +export PUBLIC_FRONTEND_PORT="37001" | ||
| 9 | +export LOCAL_TURBO_PORT="7002" | ||
| 10 | +export PUBLIC_TURBO_PORT="37002" | ||
| 11 | +export PUBLIC_OSS_PORT="34000" | ||
| 12 | +export PUBLIC_ZIMAGE_PORT="39009" | ||
| 13 | 13 | ||
| 14 | 14 | ||
| 15 | # Business Logic Configuration | 15 | # Business Logic Configuration |
| 16 | -VIDEO_GENERATION_LIMIT="1" | ||
| 17 | -LIKES_FOR_REWARD="5" | 16 | +export VIDEO_GENERATION_LIMIT="1" |
| 17 | +export LIKES_FOR_REWARD="5" | ||
| 18 | + | ||
| 19 | +# pm2 name set | ||
| 20 | +export BACKEND_NAME="backend_beta" | ||
| 21 | +export FRONTEND_NAME="frontend_beta" |
ecosystem.config.js
0 → 100644
| 1 | +const path = require('path'); | ||
| 2 | + | ||
| 3 | +module.exports = { | ||
| 4 | + apps: [ | ||
| 5 | + { | ||
| 6 | + name: process.env.BACKEND_NAME || "z-image-backend", | ||
| 7 | + script: "./venv/bin/uvicorn", | ||
| 8 | + // Use LOCAL_BACKEND_PORT from environment, default to 7000 | ||
| 9 | + args: `backend.main:app --host 0.0.0.0 --port ${process.env.LOCAL_BACKEND_PORT || 7000}`, | ||
| 10 | + cwd: __dirname, | ||
| 11 | + interpreter: "none", | ||
| 12 | + autorestart: true, | ||
| 13 | + watch: false, | ||
| 14 | + max_memory_restart: '1G' | ||
| 15 | + }, | ||
| 16 | + { | ||
| 17 | + name: process.env.FRONTEND_NAME || "z-image-frontend", | ||
| 18 | + script: "serve", | ||
| 19 | + env: { | ||
| 20 | + // Use LOCAL_FRONTEND_PORT from environment, default to 7001 | ||
| 21 | + PM2_SERVE_PATH: path.join(__dirname, 'z-image-generator/dist'), | ||
| 22 | + PM2_SERVE_PORT: process.env.LOCAL_FRONTEND_PORT || 7001, | ||
| 23 | + PM2_SERVE_SPA: 'true', | ||
| 24 | + PM2_SERVE_HOMEPAGE: '/index.html' | ||
| 25 | + } | ||
| 26 | + } | ||
| 27 | + ] | ||
| 28 | +}; |
| @@ -16,33 +16,18 @@ export NO_PROXY="localhost,127.0.0.1,0.0.0.0,::1" | @@ -16,33 +16,18 @@ export NO_PROXY="localhost,127.0.0.1,0.0.0.0,::1" | ||
| 16 | 16 | ||
| 17 | FRONTEND_DIR="$BASE_DIR/z-image-generator" | 17 | FRONTEND_DIR="$BASE_DIR/z-image-generator" |
| 18 | BACKEND_DIR="$BASE_DIR" | 18 | BACKEND_DIR="$BASE_DIR" |
| 19 | -CONSTANTS_FILE="$FRONTEND_DIR/constants.ts" | ||
| 20 | CONFIG_JS_FILE="$BASE_DIR/public/config.js" | 19 | CONFIG_JS_FILE="$BASE_DIR/public/config.js" |
| 21 | LOGS_DIR="$BASE_DIR/logs" | 20 | LOGS_DIR="$BASE_DIR/logs" |
| 22 | 21 | ||
| 23 | # Ensure logs directory exists | 22 | # Ensure logs directory exists |
| 24 | mkdir -p "$LOGS_DIR" | 23 | mkdir -p "$LOGS_DIR" |
| 25 | 24 | ||
| 26 | -# Function to rotate logs | ||
| 27 | -rotate_log() { | ||
| 28 | - local log_file="$1" | ||
| 29 | - if [ -f "$log_file" ]; then | ||
| 30 | - local timestamp=$(date +"%Y%m%d_%H%M%S") | ||
| 31 | - local filename=$(basename "$log_file") | ||
| 32 | - local archived_log="$LOGS_DIR/${filename%.*}_$timestamp.log" | ||
| 33 | - echo "Rotating log: $log_file -> $archived_log" | ||
| 34 | - mv "$log_file" "$archived_log" | ||
| 35 | - fi | ||
| 36 | -} | ||
| 37 | - | ||
| 38 | echo "==================================================" | 25 | echo "==================================================" |
| 39 | -echo "Initializing Front-Backend Z-Image Services" | 26 | +echo "Initializing Front-Backend Z-Image Services (PM2)" |
| 40 | echo "==================================================" | 27 | echo "==================================================" |
| 41 | 28 | ||
| 42 | # 1. Generate Runtime Config (config.js) | 29 | # 1. Generate Runtime Config (config.js) |
| 43 | echo "Generating runtime configuration in $CONFIG_JS_FILE..." | 30 | echo "Generating runtime configuration in $CONFIG_JS_FILE..." |
| 44 | - | ||
| 45 | -# Ensure directory exists | ||
| 46 | mkdir -p "$(dirname "$CONFIG_JS_FILE")" | 31 | mkdir -p "$(dirname "$CONFIG_JS_FILE")" |
| 47 | 32 | ||
| 48 | cat > "$CONFIG_JS_FILE" <<EOF | 33 | cat > "$CONFIG_JS_FILE" <<EOF |
| @@ -57,52 +42,34 @@ window.APP_CONFIG = { | @@ -57,52 +42,34 @@ window.APP_CONFIG = { | ||
| 57 | EOF | 42 | EOF |
| 58 | export TURBO_DIFFUSION_LOCAL_URL="http://127.0.0.1:$LOCAL_TURBO_PORT" | 43 | export TURBO_DIFFUSION_LOCAL_URL="http://127.0.0.1:$LOCAL_TURBO_PORT" |
| 59 | export VITE_API_BASE_URL="http://$PUBLIC_IP:$PUBLIC_BACKEND_PORT" | 44 | export VITE_API_BASE_URL="http://$PUBLIC_IP:$PUBLIC_BACKEND_PORT" |
| 60 | -export WHITELIST_PATH="/home/inspur/work_space/gen_img_video/TurboDiffusion-Space/TurboDiffusion/front_backend_zImage/backend/whitelist.txt" | 45 | +export WHITELIST_PATH="$BASE_DIR/backend/whitelist.txt" |
| 61 | 46 | ||
| 62 | echo "Configuration generated." | 47 | echo "Configuration generated." |
| 63 | 48 | ||
| 64 | -# 2. Start Backend Service | ||
| 65 | -echo "--------------------------------------------------" | ||
| 66 | -echo "Starting Backend Service..." | ||
| 67 | -echo "Host: 0.0.0.0, Port: $LOCAL_BACKEND_PORT" | ||
| 68 | -echo "Public URL: http://$PUBLIC_IP:$PUBLIC_BACKEND_PORT" | ||
| 69 | - | ||
| 70 | -cd "$BACKEND_DIR" || exit 1 | ||
| 71 | -PID_BACKEND=$(lsof -t -i:$LOCAL_BACKEND_PORT) | ||
| 72 | -if [ -n "$PID_BACKEND" ]; then | ||
| 73 | - echo "Killing existing backend process on port $LOCAL_BACKEND_PORT (PID: $PID_BACKEND)..." | ||
| 74 | - kill -9 "$PID_BACKEND" | 49 | +# 2. Check/Build Frontend |
| 50 | +echo "Checking frontend build..." | ||
| 51 | +if [ ! -d "$FRONTEND_DIR/dist" ]; then | ||
| 52 | + echo "Dist folder not found. Building frontend..." | ||
| 53 | + cd "$FRONTEND_DIR" | ||
| 54 | + npm run build | ||
| 55 | + cd "$BASE_DIR" | ||
| 75 | fi | 56 | fi |
| 76 | 57 | ||
| 77 | -rotate_log "$BASE_DIR/backend.log" | ||
| 78 | - | ||
| 79 | -# Use venv uvicorn | ||
| 80 | -UVICORN_BIN="$BASE_DIR/venv/bin/uvicorn" | ||
| 81 | -if [ ! -f "$UVICORN_BIN" ]; then | ||
| 82 | - echo "Warning: venv uvicorn not found at $UVICORN_BIN, trying system uvicorn..." | ||
| 83 | - UVICORN_BIN="uvicorn" | ||
| 84 | -fi | ||
| 85 | - | ||
| 86 | -nohup "$UVICORN_BIN" backend.main:app --host 0.0.0.0 --port "$LOCAL_BACKEND_PORT" > backend.log 2>&1 & | ||
| 87 | -echo "Backend started with PID: $!" | ||
| 88 | - | ||
| 89 | -# 3. Start Frontend Service | ||
| 90 | -echo "--------------------------------------------------" | ||
| 91 | -echo "Starting Frontend Service..." | ||
| 92 | -echo "Host: 0.0.0.0, Port: $LOCAL_FRONTEND_PORT" | ||
| 93 | -echo "Public URL: http://$PUBLIC_IP:$PUBLIC_FRONTEND_PORT" | ||
| 94 | - | ||
| 95 | -cd "$FRONTEND_DIR" || exit 1 | ||
| 96 | -PID_FRONTEND=$(lsof -t -i:$LOCAL_FRONTEND_PORT) | ||
| 97 | -if [ -n "$PID_FRONTEND" ]; then | ||
| 98 | - echo "Killing existing frontend process on port $LOCAL_FRONTEND_PORT (PID: $PID_FRONTEND)..." | ||
| 99 | - kill -9 "$PID_FRONTEND" | 58 | +# 3. Start PM2 |
| 59 | +echo "Starting services with PM2..." | ||
| 60 | +cd "$BASE_DIR" | ||
| 61 | +if command -v pm2 &> /dev/null; then | ||
| 62 | + # 显式指定配置文件,并使用 --update-env 确保环境变量同步 | ||
| 63 | + pm2 start ecosystem.config.js --update-env | ||
| 64 | + pm2 save | ||
| 65 | + echo "Services started via PM2." | ||
| 66 | + pm2 list | ||
| 67 | +else | ||
| 68 | + echo "Error: PM2 not found. Please install pm2 (npm install -g pm2) or use old start script." | ||
| 69 | + exit 1 | ||
| 100 | fi | 70 | fi |
| 101 | 71 | ||
| 102 | -rotate_log "$BASE_DIR/frontend.log" | ||
| 103 | - | ||
| 104 | -nohup npm run dev -- --port "$LOCAL_FRONTEND_PORT" --host 0.0.0.0 > ../frontend.log 2>&1 & | ||
| 105 | -echo "Frontend started with PID: $!" | ||
| 106 | - | ||
| 107 | echo "==================================================" | 72 | echo "==================================================" |
| 108 | -echo "All services initiated." | 73 | +echo "Frontend: http://$PUBLIC_IP:$PUBLIC_FRONTEND_PORT (Mapped from $LOCAL_FRONTEND_PORT)" |
| 74 | +echo "Backend: http://$PUBLIC_IP:$PUBLIC_BACKEND_PORT (Mapped from $LOCAL_BACKEND_PORT)" | ||
| 75 | +echo "==================================================" |
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | - | ||
| 3 | BASE_DIR=$(cd "$(dirname "$0")"; pwd) | 2 | BASE_DIR=$(cd "$(dirname "$0")"; pwd) |
| 4 | 3 | ||
| 5 | -# Load shared configuration | 4 | +# Load shared configuration to get ports |
| 6 | if [ -f "$BASE_DIR/.env.sh" ]; then | 5 | if [ -f "$BASE_DIR/.env.sh" ]; then |
| 7 | source "$BASE_DIR/.env.sh" | 6 | source "$BASE_DIR/.env.sh" |
| 8 | else | 7 | else |
| @@ -10,33 +9,19 @@ else | @@ -10,33 +9,19 @@ else | ||
| 10 | exit 1 | 9 | exit 1 |
| 11 | fi | 10 | fi |
| 12 | 11 | ||
| 13 | -echo "==================================================" | ||
| 14 | -echo "Stopping Front-Backend Z-Image Services" | ||
| 15 | -echo "==================================================" | ||
| 16 | - | ||
| 17 | -# 1. Stop Backend Service | ||
| 18 | -echo "Checking Backend Service on port $LOCAL_BACKEND_PORT..." | ||
| 19 | -PID_BACKEND=$(lsof -t -i:$LOCAL_BACKEND_PORT) | ||
| 20 | -if [ -n "$PID_BACKEND" ]; then | ||
| 21 | - echo "Found backend process (PID: $PID_BACKEND). Stopping..." | ||
| 22 | - kill -9 "$PID_BACKEND" | ||
| 23 | - echo "Backend service stopped." | ||
| 24 | -else | ||
| 25 | - echo "No backend service found running on port $LOCAL_BACKEND_PORT." | ||
| 26 | -fi | ||
| 27 | - | ||
| 28 | -echo "--------------------------------------------------" | 12 | +echo "Stopping Z-Image Services..." |
| 29 | 13 | ||
| 30 | -# 2. Stop Frontend Service | ||
| 31 | -echo "Checking Frontend Service on port $LOCAL_FRONTEND_PORT..." | ||
| 32 | -PID_FRONTEND=$(lsof -t -i:$LOCAL_FRONTEND_PORT) | ||
| 33 | -if [ -n "$PID_FRONTEND" ]; then | ||
| 34 | - echo "Found frontend process (PID: $PID_FRONTEND). Stopping..." | ||
| 35 | - kill -9 "$PID_FRONTEND" | ||
| 36 | - echo "Frontend service stopped." | 14 | +if command -v pm2 &> /dev/null; then |
| 15 | + pm2 stop z-image-backend z-image-frontend | ||
| 16 | + pm2 delete z-image-backend z-image-frontend | ||
| 17 | + echo "Stopped via PM2." | ||
| 37 | else | 18 | else |
| 38 | - echo "No frontend service found running on port $LOCAL_FRONTEND_PORT." | 19 | + # Fallback to port-based kill using variables from .env.sh |
| 20 | + pids=$(lsof -t -i:$LOCAL_BACKEND_PORT -i:$LOCAL_FRONTEND_PORT) | ||
| 21 | + if [ -n "$pids" ]; then | ||
| 22 | + kill -9 $pids | ||
| 23 | + echo "Killed PIDs on ports $LOCAL_BACKEND_PORT and $LOCAL_FRONTEND_PORT: $pids" | ||
| 24 | + else | ||
| 25 | + echo "No processes found on ports $LOCAL_BACKEND_PORT/$LOCAL_FRONTEND_PORT" | ||
| 26 | + fi | ||
| 39 | fi | 27 | fi |
| 40 | - | ||
| 41 | -echo "==================================================" | ||
| 42 | -echo "All Z-Image services stopped." |
-
Please register or login to post a comment