Rename ssr to website, website to spa, add spa nginx config
This commit is contained in:
1 parent
fc6bf0218e
commit
8514342c2f
103 files changed
+801
-768
No files matched your search
+25
-25
@@ -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)"
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user