This commit is contained in:
unknown committed 2026-10-17 14:25:27 +07:00
1 parent 5ba4afb2de
commit 731619af9d
4 files changed
+109 -8

No files matched your search

@@ -19,7 +19,8 @@
[ External Gateway / Firewall / Nginx Proxy ]
│
├── Forward Traffic (Domain: bigbike.ddcsprocket.com) ──► 192.168.1.26:3002 (Next.js SSR)
└── Forward Traffic (Domain: api.bigbike.ddcsprocket.com) ─► 192.168.1.26:3005 (Elysia API)
├── Forward Traffic (Domain: api.bigbike.ddcsprocket.com) ─► 192.168.1.26:3005 (Elysia API)
└── Forward Traffic (Domain: admin.bigbike.ddcsprocket.com) ─► 192.168.1.26:80 (Nginx Static: /var/www/html/bigbike_admin)
```
---
@@ -68,6 +69,7 @@
| :--- | :--- | :---: | :--- | :--- |
| **Backend API** | `bigbike-backend` | **`3005`** | `bun run src/index.ts` | `/home/sql/code/bigbike/apps/backend` |
| **Website (SSR)** | `bigbike-website` | **`3002`** | `node server.js` (.next/standalone) | `/home/sql/code/bigbike/apps/website` |
| **Admin Panel** | *N/A (Nginx Static)* | **`80`** | `Nginx Static Build` | `/var/www/html/bigbike_admin` |
### ตารางตรวจสอบพอร์ตเดิมบน Server (เพื่อป้องกันพอร์ตชน)
| Port | Service เดิมที่ใช้งานอยู่ | สถานะ |
@@ -131,14 +133,47 @@
* รัน `$BUN x prisma migrate deploy` (นำ migration files ใหม่ไป Apply ลง DB อัตโนมัติ)
* รัน `$BUN x prisma db push --accept-data-loss` (ซิงก์ schema เข้า DB ทันที ป้องกันกรณีแก้ schema.prisma โดยไม่ได้รัน migrate dev)
* สั่ง `pm2 restart bigbike-backend --update-env` (หากยังไม่เคยรัน จะสั่ง `pm2 start` บนพอร์ต `3005`)
4. **Website Service (Next.js SSR):**
4. **Admin Panel (React Vite SPA):**
* รัน `$BUN run build` ใน `apps/admin` (พร้อม Inject `VITE_API_URL`)
* ซิงก์ไฟล์ build จาก `apps/admin/dist/` ไปยัง `/var/www/html/bigbike_admin/` อัตโนมัติ
5. **Website Service (Next.js SSR):**
* บิลด์ Next.js ด้วย `NODE_ENV=production $BUN run build`
* สั่ง `pm2 restart bigbike-website --update-env` (หากยังไม่เคยรัน จะสั่งรัน standalone `server.js` บนพอร์ต `3002`)
5. **Persist State:** สั่ง `pm2 save` เพื่อบันทึกรายชื่อโปรเซส ให้ฟื้นตัวอัตโนมัติเมื่อเซิร์ฟเวอร์รีบูต
6. **Persist State:** สั่ง `pm2 save` เพื่อบันทึกรายชื่อโปรเซส ให้ฟื้นตัวอัตโนมัติเมื่อเซิร์ฟเวอร์รีบูต
---
## 7. คำสั่งที่ใช้ในการตรวจสอบและแก้ไขปัญหา (Runbook & Troubleshooting)
## 7. ขั้นตอนการตั้งค่า Nginx สำหรับ Admin Panel (One-Time Setup)
ทำเพียงครั้งเดียวบนเซิร์ฟเวอร์ `sql@192.168.1.26` ผ่าน SSH:
### ขั้นที่ 1: สร้างโฟลเดอร์ Web Root และมอบสิทธิ์ให้ user `sql`
```bash
sudo mkdir -p /var/www/html/bigbike_admin
sudo chown -R sql:sql /var/www/html/bigbike_admin
```
### ขั้นที่ 2: นำไฟล์ Nginx Config ไปเปิดใช้งาน
```bash
# คัดลอกคอนฟิกไปยัง sites-available
sudo cp /home/sql/code/bigbike/serverinfo/192.168.1.26/bigbike.ddcsprocket.com/nginx/admin.bigbike.ddcsprocket.com.conf /etc/nginx/sites-available/admin.bigbike.ddcsprocket.com.conf
# ทำ Symlink เปิดใช้งานเว็บใน sites-enabled
sudo ln -sf /etc/nginx/sites-available/admin.bigbike.ddcsprocket.com.conf /etc/nginx/sites-enabled/
# ตรวจสอบความถูกต้องและสั่ง Reload
sudo nginx -t
sudo systemctl reload nginx
```
### ขั้นที่ 3: ซิงก์ไฟล์ Build ล่าสุดเข้าโฟลเดอร์ทันที (ไม่ต้องรอ Push รอบถัดไป)
```bash
rsync -av --delete /home/sql/code/bigbike/apps/admin/dist/ /var/www/html/bigbike_admin/
```
---
## 8. คำสั่งที่ใช้ในการตรวจสอบและแก้ไขปัญหา (Runbook & Troubleshooting)
### ตรวจสอบสถานะและ Logs บน Server:
```bash
@@ -151,7 +186,11 @@ ssh sql@192.168.1.26 "pm2 logs bigbike-backend --lines 100"
# ดู Logs สดของ Website SSR
ssh sql@192.168.1.26 "pm2 logs bigbike-website --lines 100"
# ดู Nginx Error Log สำหรับ Admin Panel
ssh sql@192.168.1.26 "tail -n 50 /var/log/nginx/bigbike_admin_error.log"
# ทดสอบ Curl พอร์ตภายในเครื่อง
ssh sql@192.168.1.26 "curl -I http://localhost:3005"
ssh sql@192.168.1.26 "curl -I http://localhost:3002"
ssh sql@192.168.1.26 "curl -I -H 'Host: admin.bigbike.ddcsprocket.com' http://localhost"
```