# ✅ Deployment Checklist

## 📋 สรุปการเตรียมโปรเจค

### ✅ สิ่งที่ทำเสร็จแล้ว:
- [x] เปลี่ยน Port จาก 8080 เป็น **9087**
- [x] Build ไฟล์ `leadapp.exe` สำเร็จ (14.6 MB)
- [x] สร้างไฟล์ Configuration ครบถ้วน
- [x] สร้างเอกสารคู่มือการติดตั้ง

---

## 🎯 ขั้นตอนการ Deploy (เลือกตาม Server)

### 📍 ข้อมูล Deployment
```
Source:      C:\xampp\htdocs\projects\_go.lead
Destination: C:\xampp\htdocs\advice\_go.lead
Port:        9087
URL:         https://advice.ezmember.org/_go.lead
```

---

## 🪟 สำหรับ Windows Server (XAMPP)

### ขั้นตอนที่ 1: คัดลอกไฟล์
```
คัดลอกโฟลเดอร์ทั้งหมดไปยัง: C:\xampp\htdocs\advice\_go.lead
```

### ขั้นตอนที่ 2: เลือกวิธีรัน (เลือก 1 ใน 2)

#### วิธีที่ 1: รันแบบ Manual (สำหรับทดสอบ)
1. Double-click `start-server.bat`
2. ดูข้อความ "✅ Server running at http://localhost:9087"

#### วิธีที่ 2: ติดตั้งเป็น Service (แนะนำ - รันอัตโนมัติ)
1. ดาวน์โหลด NSSM: https://nssm.cc/download
2. คลิกขวา `install-service.bat` → Run as Administrator
3. Service จะรันอัตโนมัติทุกครั้งที่เปิดเครื่อง

### ขั้นตอนที่ 3: ตั้งค่า Apache (ถ้าต้องการใช้ Reverse Proxy)
1. เปิดไฟล์ `C:\xampp\apache\conf\httpd.conf`
2. Uncomment บรรทัดเหล่านี้:
   ```apache
   LoadModule proxy_module modules/mod_proxy.so
   LoadModule proxy_http_module modules/mod_proxy_http.so
   ```
3. เพิ่ม Configuration จากไฟล์ `apache-config.conf`
4. Restart Apache

### ขั้นตอนที่ 4: ทดสอบ
```cmd
# เช็คว่า Port 9087 ทำงาน
netstat -ano | findstr 9087

# เปิดเบราว์เซอร์ทดสอบ
start http://localhost:9087
```

---

## 🐧 สำหรับ Linux Server

### ขั้นตอนที่ 1: อัปโหลดไฟล์
```bash
# ใช้ SCP
scp -r ./* user@server:/var/www/html/advice/_go.lead/

# หรือใช้ FTP/SFTP Client
```

### ขั้นตอนที่ 2: Build Application
```bash
ssh user@server
cd /var/www/html/advice/_go.lead
go build -o leadapp main.go
chmod +x leadapp
```

### ขั้นตอนที่ 3: ติดตั้ง Systemd Service
```bash
sudo cp go-lead.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable go-lead
sudo systemctl start go-lead
sudo systemctl status go-lead
```

### ขั้นตอนที่ 4: ตั้งค่า Nginx
```bash
sudo cp nginx-config.conf /etc/nginx/sites-available/advice-go-lead
sudo ln -s /etc/nginx/sites-available/advice-go-lead /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
```

### ขั้นตอนที่ 5: ตั้งค่า SSL
```bash
sudo certbot --nginx -d advice.ezmember.org
```

### ขั้นตอนที่ 6: ทดสอบ
```bash
# เช็ค Service
sudo systemctl status go-lead

# เช็ค Port
netstat -tlnp | grep 9087

# ทดสอบ Local
curl http://localhost:9087/

# ทดสอบจากภายนอก
curl https://advice.ezmember.org/_go.lead/
```

---

## 🧪 การทดสอบหลัง Deploy

### ✅ Checklist การทดสอบ:
- [ ] แอปรันบน Port 9087
- [ ] เข้า Login Page ได้: https://advice.ezmember.org/_go.lead/
- [ ] Login ด้วย Username/Password ได้
- [ ] เลือก Brand แสดงสินค้าได้
- [ ] กรอกข้อมูล Lead และบันทึกได้
- [ ] ข้อมูลบันทึกลง Database สำเร็จ
- [ ] รูปภาพใน _img/ แสดงผลได้
- [ ] Logout ได้

---

## 📊 Monitoring & Maintenance

### ดู Logs
```bash
# Linux
sudo journalctl -u go-lead -f

# Windows
netstat -ano | findstr 9087
```

### Restart Service
```bash
# Linux
sudo systemctl restart go-lead

# Windows
nssm restart GoLeadApp
```

### Update Code
```bash
# Linux
cd /var/www/html/advice/_go.lead
git pull  # (ถ้าใช้ git)
go build -o leadapp main.go
sudo systemctl restart go-lead
```

---

## ⚠️ Troubleshooting

### ปัญหา: Port 9087 ถูกใช้แล้ว
```bash
# Windows
netstat -ano | findstr 9087
taskkill /PID <pid> /F

# Linux
sudo lsof -i :9087
sudo kill <pid>
```

### ปัญหา: Database Connection Error
ตรวจสอบ:
- Server 192.168.10.61 เข้าถึงได้หรือไม่
- Port 1433 เปิดอยู่หรือไม่
- Username/Password ถูกต้องหรือไม่
- Network Firewall อนุญาตหรือไม่

### ปัญหา: 404 Not Found
ตรวจสอบ:
- Apache/Nginx Reverse Proxy ตั้งค่าถูกต้องหรือไม่
- Path /_go.lead/ ตรงกันทั้งสองฝั่งหรือไม่
- Application รันอยู่จริงหรือไม่

---

## 📞 ติดต่อ

หากมีปัญหาหรือข้อสงสัย:
1. ตรวจสอบ `DEPLOY.md` (คู่มือละเอียด)
2. ตรวจสอบ `QUICK_START.md` (คู่มือเริ่มต้นด่วน)
3. ดู Logs เพื่อหาสาเหตุ

---

## 📦 ไฟล์ทั้งหมดในโปรเจค

### ไฟล์สำคัญที่ต้อง Deploy:
```
✅ leadapp.exe (หรือ leadapp)   - Application ตัวหลัก
✅ index.html                    - หน้า Login
✅ main.html                     - หน้าหลัก
✅ maininsert.html               - หน้ากรอกข้อมูล
✅ preview.html                  - หน้า Preview
✅ _img/                         - โฟลเดอร์รูปภาพ
```

### ไฟล์ Configuration:
```
📄 DEPLOY.md                     - คู่มือ Deploy ฉบับเต็ม
📄 QUICK_START.md                - คู่มือเริ่มต้นด่วน
📄 DEPLOYMENT_CHECKLIST.md       - ไฟล์นี้
📄 FILES_TO_UPLOAD.txt           - รายการไฟล์ที่ต้ออัปโหลด
📄 go-lead.service               - Linux Systemd service
📄 nginx-config.conf             - Nginx configuration
📄 apache-config.conf            - Apache configuration
📄 deploy.sh                     - Linux deployment script
📄 start-server.bat              - Windows start script
📄 install-service.bat           - Windows service installer
```

---

## 🎉 เสร็จสิ้น!

เมื่อทำตามขั้นตอนครบถ้วนแล้ว โปรเจคจะพร้อมใช้งานที่:

🌐 **https://advice.ezmember.org/_go.lead**

---

*สร้างเมื่อ: 14 Feb 2026*
*Version: 1.0*
