diff --git a/serverinfo/post-receive b/serverinfo/post-receive index 2a4482b..8ea866e 100644 --- a/serverinfo/post-receive +++ b/serverinfo/post-receive @@ -69,31 +69,36 @@ cd ../.. # D. Deploy & Manage BACKEND (API) echo ">>> Updating Backend at $TARGET_BACKEND..." mkdir -p $TARGET_BACKEND +mkdir -p $TARGET_BACKEND/apps +mkdir -p $TARGET_BACKEND/packages -# Sync Backend Source (--exclude .env เพื่อป้องกันการลบ .env บน server!) +# Sync Backend Source inside a monorepo-like layout so workspace deps resolve rsync -av --delete \ --exclude='.env' \ --exclude='public/' \ --exclude='node_modules/' \ - apps/backend/ $TARGET_BACKEND/ + apps/backend/ $TARGET_BACKEND/apps/backend/ # Sync Shared Packages -mkdir -p $TARGET_BACKEND/packages rsync -av packages/ $TARGET_BACKEND/packages/ +cp package.json bun.lock $TARGET_BACKEND/ + cd $TARGET_BACKEND echo "Installing backend dependencies..." $BUN install # สร้าง public/ folder สำหรับ static files (upload images) -mkdir -p $TARGET_BACKEND/public +mkdir -p $TARGET_BACKEND/apps/backend/public + +cd $TARGET_BACKEND/apps/backend # Generate Prisma Client (สำคัญมาก! ต้องรันทุกครั้งหลัง install) echo ">>> Generating Prisma Client..." $BUN x prisma generate # E. Database Migration (Safe Method) -if [ -f ".env" ]; then +if [ -f "$TARGET_BACKEND/.env" ]; then echo ">>> Running Prisma Migrate Deploy..." $BUN x prisma migrate deploy else @@ -105,7 +110,7 @@ fi # F. PM2 Management - BACKEND echo ">>> Managing PM2 Process: $PM2_NAME_BACKEND..." $PM2 restart $PM2_NAME_BACKEND 2>/dev/null || \ -$PM2 start src/index.ts --name $PM2_NAME_BACKEND --interpreter $BUN +$PM2 start $TARGET_BACKEND/apps/backend/src/index.ts --name $PM2_NAME_BACKEND --interpreter $BUN echo "✅ PM2 process '$PM2_NAME_BACKEND' is running." # G. Build & Deploy WEBSITE (Next.js SSR)