Switch Next.js to standalone output for reliable SSR deployment

This commit is contained in:
Your Name committed 2026-06-03 09:09:02 +07:00
1 parent e223705fa2
commit 4171261bea
2 files changed
+14 -20

No files matched your search

+13 -20
View File
@@ -112,32 +112,25 @@ echo ">>> Building Next.js SSR App inside monorepo temp dir..."
cd $TEMP_DIR/apps/ssr
$BUN run build # build จาก monorepo (workspace:* resolve ได้)
echo ">>> Syncing built SSR App to $TARGET_SSR..."
mkdir -p $TARGET_SSR
# Sync ทั้ง source + .next/ ไปยัง TARGET_SSR
# E. Prepare Next.js SSR
echo ">>> Preparing Next.js SSR App..."
rsync -av --delete \
--exclude='.env' \
--exclude='.env.local' \
--exclude='node_modules/' \
$TEMP_DIR/apps/ssr/ $TARGET_SSR/
$TEMP_DIR/apps/ssr/.next/standalone/ $TARGET_SSR/
rsync -av \
$TEMP_DIR/apps/ssr/public/ $TARGET_SSR/apps/ssr/public/
rsync -av \
$TEMP_DIR/apps/ssr/.next/static/ $TARGET_SSR/apps/ssr/.next/static/
# Sync packages ไปด้วย
mkdir -p $TARGET_SSR/packages
rsync -av $TEMP_DIR/packages/ $TARGET_SSR/packages/
# Sync root node_modules ไปยัง TARGET_SSR
# (bun workspace ติดตั้ง next ไว้ที่ root node_modules ไม่ใช่ apps/ssr/node_modules)
echo ">>> Syncing root node_modules to $TARGET_SSR..."
rsync -a --delete $TEMP_DIR/node_modules/ $TARGET_SSR/node_modules/
# F. Fix Permissions
echo ">>> Fixing Permissions..."
chown -R ti:ti $TARGET_BACKEND $TARGET_SSR
# H. PM2 Management - SSR Next.js
cd $TARGET_SSR
echo ">>> Managing PM2 Process: $PM2_NAME_SSR..."
NEXT_VER=$(grep '"next":' package.json | sed -E 's/.*"next": "[\^~]?([0-9\.]+)".*/\1/')
$PM2 restart $PM2_NAME_SSR 2>/dev/null || \
$PM2 start $BUN --name $PM2_NAME_SSR \
-- x next@$NEXT_VER start -p $SSR_PORT
$PM2 delete $PM2_NAME_SSR 2>/dev/null || true
PORT=$SSR_PORT $PM2 start $BUN --name $PM2_NAME_SSR \
-- apps/ssr/server.js
echo "✅ PM2 process '$PM2_NAME_SSR' is running on port $SSR_PORT."
# I. Cleanup