Rename ssr to website, website to spa, add spa nginx config

This commit is contained in:
Your Name committed 2026-06-03 09:38:15 +07:00
1 parent fc6bf0218e
commit 8514342c2f
103 files changed
+801 -768

No files matched your search

+25 -25
View File
@@ -5,10 +5,10 @@
# ==============================================================================
# 1. TARGET PATHS (Nginx & PM2)
TARGET_WEBSITE="/home/ti/projects/MyNginxMain/nginx/html/homaroma.shop/website"
TARGET_SPA="/home/ti/projects/MyNginxMain/nginx/html/homaroma.shop/spa"
TARGET_ADMIN="/home/ti/projects/MyNginxMain/nginx/html/homaroma.shop/admin"
TARGET_BACKEND="/home/ti/projects/homaroma-api"
TARGET_SSR="/home/ti/projects/homaroma-ssr" # <-- Next.js SSR App
TARGET_WEBSITE="/home/ti/projects/homaroma-website" # <-- Next.js SSR App
# 2. REPOSITORY CONFIG
REPO="/home/ti/git/homaroma.git"
@@ -19,7 +19,7 @@ TEMP_DIR="/tmp/homaroma_build_$(date +%s)"
BUN="/home/ti/.bun/bin/bun"
PM2="/home/ti/.nvm/versions/node/v22.17.1/bin/pm2"
PM2_NAME_BACKEND="homaroma-backend"
PM2_NAME_SSR="homaroma-ssr" # <-- PM2 process name สำหรับ SSR
PM2_NAME_WEBSITE="homaroma-website" # <-- PM2 process name สำหรับ SSR
export PATH="$PATH:/home/ti/.bun/bin:/home/ti/.nvm/versions/node/v22.17.1/bin"
# 4. BUILD ENVIRONMENT
@@ -45,14 +45,14 @@ cd $TEMP_DIR
echo "Installing monorepo dependencies..."
$BUN install
# B. Build & Deploy WEBSITE (Frontend SPA)
echo ">>> Building Website..."
cd apps/website
# B. Build & Deploy SPA (Frontend สำหรับ LINE LIFF)
echo ">>> Building SPA..."
cd apps/spa
$BUN run build
echo "Deploying Website to $TARGET_WEBSITE..."
mkdir -p $TARGET_WEBSITE
rm -rf $TARGET_WEBSITE/*
cp -rv dist/* $TARGET_WEBSITE/
echo "Deploying SPA to $TARGET_SPA..."
mkdir -p $TARGET_SPA
rm -rf $TARGET_SPA/*
cp -rv dist/* $TARGET_SPA/
cd ../..
# C. Build & Deploy ADMIN PANEL
@@ -107,34 +107,34 @@ $PM2 restart $PM2_NAME_BACKEND 2>/dev/null || \
$PM2 start src/index.ts --name $PM2_NAME_BACKEND --interpreter $BUN
echo "✅ PM2 process '$PM2_NAME_BACKEND' is running."
# G. Build & Deploy SSR (Next.js)
# G. Build & Deploy WEBSITE (Next.js SSR)
echo ">>> Building Next.js SSR App inside monorepo temp dir..."
cd $TEMP_DIR/apps/ssr
cd $TEMP_DIR/apps/website
$BUN run build # build จาก monorepo (workspace:* resolve ได้)
# E. Prepare Next.js SSR
echo ">>> Preparing Next.js SSR App..."
rsync -av --delete \
$TEMP_DIR/apps/ssr/.next/standalone/ $TARGET_SSR/
$TEMP_DIR/apps/website/.next/standalone/ $TARGET_WEBSITE/
rsync -av \
$TEMP_DIR/apps/ssr/public/ $TARGET_SSR/apps/ssr/public/
$TEMP_DIR/apps/website/public/ $TARGET_WEBSITE/apps/website/public/
rsync -av \
$TEMP_DIR/apps/ssr/.next/static/ $TARGET_SSR/apps/ssr/.next/static/
$TEMP_DIR/apps/website/.next/static/ $TARGET_WEBSITE/apps/website/.next/static/
# F. Fix Permissions
echo ">>> Fixing Permissions..."
chown -R ti:ti $TARGET_BACKEND $TARGET_SSR
chown -R ti:ti $TARGET_BACKEND $TARGET_WEBSITE
# H. PM2 Management - SSR Next.js
cd $TARGET_SSR
cd $TARGET_WEBSITE
echo ">>> Creating symlink for .next..."
ln -sf apps/ssr/.next .next
cd apps/ssr
echo ">>> Managing PM2 Process: $PM2_NAME_SSR..."
$PM2 delete $PM2_NAME_SSR 2>/dev/null || true
PORT=$SSR_PORT $PM2 start $BUN --name $PM2_NAME_SSR \
ln -sf apps/website/.next .next
cd apps/website
echo ">>> Managing PM2 Process: $PM2_NAME_WEBSITE..."
$PM2 delete $PM2_NAME_WEBSITE 2>/dev/null || true
PORT=$SSR_PORT $PM2 start $BUN --name $PM2_NAME_WEBSITE \
-- server.js
echo "✅ PM2 process '$PM2_NAME_SSR' is running on port $SSR_PORT."
echo "✅ PM2 process '$PM2_NAME_WEBSITE' is running on port $SSR_PORT."
# I. Cleanup
echo "Cleaning up build artifacts..."
@@ -143,7 +143,7 @@ rm -rf $TEMP_DIR
echo "------- ✅ ALL DEPLOYMENTS COMPLETED SUCCESSFULLY -------"
echo ""
echo "📋 Service Summary:"
echo " 🌐 Website (SPA) → https://homaroma.shop"
echo " 🌐 Website (SSR) → https://homaroma.shop (PM2: $PM2_NAME_WEBSITE, Port: $SSR_PORT)"
echo " 📱 SPA (LIFF) → https://spa.homaroma.shop"
echo " 🔧 Admin Panel → https://admin.homaroma.shop"
echo " 🔌 API Backend → https://api.homaroma.shop (PM2: $PM2_NAME_BACKEND)"
echo " 🚀 SSR Next.js → https://ssr.homaroma.shop (PM2: $PM2_NAME_SSR, Port: $SSR_PORT)"
+33
View File
@@ -0,0 +1,33 @@
server {
listen 80;
server_name spa.homaroma.shop;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name spa.homaroma.shop;
ssl_certificate /etc/letsencrypt/live/homaroma.shop/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/homaroma.shop/privkey.pem;
root /home/ti/projects/MyNginxMain/nginx/html/homaroma.shop/spa;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
# Caching for static assets
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires max;
log_not_found off;
}
}