คู่มือเริ่มต้นใช้งาน
คู่มือนี้จะช่วยให้คุณ deploy บริการแรกของคุณด้วย Suthep ในไม่กี่นาที
ขั้นตอนที่ 1: เริ่มต้นการตั้งค่า
สร้างไฟล์การตั้งค่าใหม่แบบโต้ตอบ:
suthep initคำสั่งนี้จะถามคุณเกี่ยวกับ:
- ชื่อและเวอร์ชันโปรเจกต์
- รายละเอียดบริการ (ชื่อ, พอร์ต, โดเมน)
- การตั้งค่า Docker (หากจำเป็น)
- การตั้งค่า health check
- อีเมลสำหรับใบรับรอง SSL
หรือคุณสามารถคัดลอกการตั้งค่าตัวอย่าง:
cp suthep.example.yml suthep.ymlจากนั้นแก้ไข suthep.yml ด้วยการตั้งค่าของคุณ
ขั้นตอนที่ 2: ตั้งค่าสิ่งที่จำเป็น
ติดตั้งและตั้งค่า Nginx และ Certbot:
suthep setupสิ่งนี้จะ:
- ติดตั้ง Nginx (หากยังไม่ได้ติดตั้ง)
- ติดตั้ง Certbot (หากยังไม่ได้ติดตั้ง)
- ตั้งค่าการพึ่งพาระบบ
หมายเหตุ: คำสั่งนี้ต้องการสิทธิ์ sudo
ขั้นตอนที่ 3: Deploy บริการของคุณ
Deploy โปรเจกต์ของคุณ:
suthep deployคำสั่งนี้จะ:
- ตั้งค่า Nginx reverse proxy สำหรับบริการทั้งหมด
- รับใบรับรอง SSL ผ่าน Certbot (หากเปิดใช้งาน)
- Deploy บริการด้วยกลยุทธ์ zero-downtime
ตัวอย่าง: Deploy API แบบง่าย
มาดูการ deploy บริการ API Node.js:
1. สร้างการตั้งค่า
สร้าง suthep.yml:
project:
name: my-api
version: 1.0.0
services:
- name: api
port: 3000
domains:
- api.example.com
healthCheck:
path: /health
interval: 30
environment:
NODE_ENV: production
nginx:
configPath: /etc/nginx/sites-available
reloadCommand: sudo nginx -t && sudo systemctl reload nginx
certbot:
email: admin@example.com
staging: false
deployment:
strategy: rolling
healthCheckTimeout: 300002. ตั้งค่าสิ่งที่จำเป็น
suthep setup3. Deploy
suthep deploy4. ตรวจสอบการ Deploy
หลังจาก deploy Suthep จะแสดง URL บริการ:
📋 Service URLs:
api: https://api.example.comเยี่ยมชม URL ในเบราว์เซอร์ของคุณเพื่อตรวจสอบว่าบริการทำงานอยู่
ตัวอย่าง: Deploy Docker Container
เพื่อ deploy Docker container:
services:
- name: webapp
port: 8080
docker:
image: nginx:latest
container: webapp-container
port: 80
domains:
- example.com
- www.example.comจากนั้นรัน:
suthep deployคำสั่งทั่วไป
ตรวจสอบสถานะบริการ
# แสดงรายการบริการทั้งหมดและสถานะ
suthep list
# หรือใช้ alias
suthep ls
# ดูการตั้งค่า Nginx
sudo nginx -t
# ตรวจสอบ containers ที่กำลังรัน
docker ps
# ดู logs บริการ
docker logs <container-name>อัปเดตการตั้งค่า
- แก้ไข
suthep.yml - Redeploy (หยุดและ deploy อีกครั้ง):
suthep down <service-name> && suthep deploy <service-name> # หรือใช้ index (ดู index ด้วย `suthep list`): suthep down 1 && suthep deploy 1 # หรือสำหรับบริการทั้งหมด: suthep down --all && suthep deploy - หรือแค่รีสตาร์ทบริการ:
suthep restart <service-name> # หรือใช้ index: suthep restart 1 # หรือรีสตาร์ทบริการทั้งหมด: suthep restart --all
หยุดบริการ
# หยุดบริการเฉพาะ
suthep down <service-name>
# หยุดบริการทั้งหมด
suthep down --allเริ่มบริการ
# เริ่มบริการเฉพาะ
suthep up <service-name>
# เริ่มบริการทั้งหมด
suthep up --allสิ่งที่เกิดขึ้นระหว่างการ Deploy?
เมื่อคุณรัน suthep deploy, Suthep จะ:
- โหลดการตั้งค่า - อ่านไฟล์
suthep.ymlของคุณ - เริ่ม Docker Containers - หากตั้งค่า Docker แล้ว จะเริ่ม containers
- ตั้งค่า Nginx - สร้างและเขียนไฟล์การตั้งค่า Nginx
- เปิดใช้งาน Sites - สร้าง symlinks เพื่อเปิดใช้งาน Nginx sites
- รับใบรับรอง SSL - ขอใบรับรองจาก Let's Encrypt
- อัปเดต Nginx สำหรับ HTTPS - เพิ่มการตั้งค่า SSL ไปที่ Nginx
- Reload Nginx - ใช้การเปลี่ยนแปลงทั้งหมด
- ทำ Health Checks - ตรวจสอบว่าบริการทำงานถูกต้อง
การแก้ปัญหาเริ่มต้นใช้งาน
โดเมนไม่ resolve
ตรวจสอบว่าโดเมนของคุณชี้ไปที่เซิร์ฟเวอร์ของคุณ:
# ตรวจสอบ DNS
nslookup api.example.com
# ตรวจสอบว่า IP เซิร์ฟเวอร์ตรงกัน
curl -I http://api.example.comพอร์ตถูกใช้งานอยู่แล้ว
หากคุณได้รับข้อผิดพลาด "port already in use":
-
ค้นหาสิ่งที่ใช้พอร์ต:
sudo lsof -i :3000 -
หยุดบริการที่ขัดแย้ง หรือ เปลี่ยนพอร์ต ใน
suthep.yml
ปัญหาใบรับรอง SSL
หากการสร้างใบรับรอง SSL ล้มเหลว:
-
ตรวจสอบ DNS โดเมน - ตรวจสอบว่าโดเมนชี้ไปที่เซิร์ฟเวอร์ของคุณ
-
ใช้โหมด staging สำหรับการทดสอบ:
certbot: staging: true -
ตรวจสอบ firewall - ตรวจสอบว่าพอร์ต 80 และ 443 เปิดอยู่
ข้อผิดพลาดการตั้งค่า Nginx
หาก Nginx reload ล้มเหลว:
# ทดสอบการตั้งค่า Nginx
sudo nginx -t
# ตรวจสอบ error logs ของ Nginx
sudo tail -f /var/log/nginx/error.logขั้นตอนถัดไป
ตอนนี้คุณได้ deploy บริการแรกของคุณแล้ว:
- คู่มือการตั้งค่า - เรียนรู้เกี่ยวกับตัวเลือกการตั้งค่าทั้งหมด
- คำสั่งอ้างอิง - สำรวจคำสั่งทั้งหมดที่มี
- ตัวอย่าง - ดูตัวอย่างการ deploy เพิ่มเติม
ก่อนหน้า: การติดตั้ง | ถัดไป: คู่มือการตั้งค่า →