คำสั่งอ้างอิง
คู่มือนี้ครอบคลุมคำสั่ง Suthep ทั้งหมดที่มีและตัวเลือกของพวกเขา
ภาพรวมคำสั่ง
Suthep ให้คำสั่งต่อไปนี้:
suthep init- เริ่มต้นไฟล์การตั้งค่าsuthep setup- ตั้งค่าสิ่งที่จำเป็นsuthep deploy- Deploy บริการsuthep down- หยุดบริการsuthep up- เริ่มบริการsuthep restart- รีสตาร์ทบริการsuthep list- แสดงรายการบริการทั้งหมดและสถานะsuthep logs- ดู logs ของบริการsuthep self-update- อัปเดต suthep เป็นเวอร์ชันล่าสุดจาก npm
suthep init
เริ่มต้นไฟล์การตั้งค่า deployment ใหม่พร้อมพร้อมต์แบบโต้ตอบ
การใช้งาน
suthep init [options]ตัวเลือก
| ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|---|
--file | -f | Path ไฟล์การตั้งค่า | suthep.yml |
ตัวอย่าง
# สร้างไฟล์การตั้งค่าเริ่มต้น
suthep init
# สร้างไฟล์การตั้งค่าแบบกำหนดเอง
suthep init -f my-config.ymlพร้อมต์แบบโต้ตอบ
คำสั่ง init จะถามคุณเกี่ยวกับ:
-
ข้อมูลโปรเจกต์
- ชื่อโปรเจกต์
- เวอร์ชันโปรเจกต์
-
การตั้งค่าบริการ (สำหรับแต่ละบริการ)
- ชื่อบริการ
- พอร์ตบริการ
- ชื่อโดเมน (คั่นด้วยเครื่องหมายจุลภาค)
- การใช้ Docker
- Docker image (หากใช้ Docker)
- ชื่อ container
- พอร์ต container
- การตั้งค่า health check
- Health check path
- ช่วงเวลา health check
-
ใบรับรอง SSL
- อีเมลสำหรั บ Let's Encrypt
- สภาพแวดล้อม staging (สำหรับการทดสอบ)
suthep setup
ติดตั้งและตั้งค่า Nginx และ Certbot บนระบบของคุณ
การใช้งาน
suthep setup [options]ตัวเลือก
| ตัวเลือก | คำอธิบาย |
|---|---|
--nginx-only | ติดตั้งและตั้งค่าเฉพาะ Nginx |
--certbot-only | ติดตั้งและตั้งค่าเฉพาะ Certbot |
ตัวอย่าง
# ตั้งค่าทั้ง Nginx และ Certbot
suthep setup
# ตั้งค่าเฉพาะ Nginx
suthep setup --nginx-only
# ตั้งค่าเฉพาะ Certbot
suthep setup --certbot-onlyสิ่งที่มันทำ
- ตรวจสอบการติดตั้งที่มีอยู่
- ติดตั้งส่วนประกอบที่หายไป:
- Nginx (ผ่าน apt-get, yum, หรือ Homebrew)
- Certbot (ผ่าน apt-get, yum, หรือ Homebrew)
- เริ่มและเปิดใช้งานบริการ
หมายเหตุ: ต้องการสิทธิ์ sudo
suthep deploy
Deploy โปรเจกต์ของคุณโดยใช้ไฟล์การตั้งค่า
การใช้งาน
suthep deploy [service-name] [options]อาร์กิวเมนต์
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
service-name | ชื่อหรือ index (1-based) ของบริการที่จะ deploy (ไม่บังคับ, จะ deploy บริการทั้งหมดหากไม่ระบุ). ใช้ suthep list เพื่อดูบริการที่มีพร้อม index |
ตัวเลือก
| ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|---|
--file | -f | Path ไฟล์การตั้งค่า | suthep.yml |
--no-https | - | ข้ามการตั้งค่า HTTPS/SSL certificate | false |
--no-nginx | - | ข้ามการตั้งค่า Nginx | false |
--env | -e | ตั้งค่ า environment variables (สามารถใช้หลายครั้ง เช่น -e KEY1=value1 -e KEY2=value2) | - |
ตัวอย่าง
# Deploy บริการทั้งหมดด้วยการตั้งค่าเริ่มต้น
suthep deploy
# Deploy บริการเฉพาะด้วยชื่อ
suthep deploy api
# Deploy บริการเฉพาะด้วย index (ดู index ด้วย `suthep list`)
suthep deploy 1
# Deploy ด้วยไฟล์ config แบบกำหนดเอง
suthep deploy -f production.yml
# Deploy บริการเฉพาะโดยไม่มี HTTPS (สำหรับการทดสอบ)
suthep deploy api --no-https
# Deploy โดยไม่มี Nginx (สำหรับการทดสอบ)
suthep deploy --no-nginx
# Deploy โดยไม่มีทั้งสอง
suthep deploy --no-https --no-nginx
# Deploy พร้อม environment variables
suthep deploy api -e NODE_ENV=production -e API_KEY=secret123
# Deploy พร้อม environment variables และ config แบบกำหนดเอง
suthep deploy -f production.yml -e DATABASE_URL=postgres://localhost/db -e REDIS_URL=redis://localhostสิ่งที่มันทำ
- โหลดการตั้งค่า จาก
suthep.yml - เริ่ม Docker containers (หากตั้งค่าแล้ว)
- ตั้งค่า Nginx reverse proxy
- รับใบรับรอง SSL (หากเปิดใช้งาน)
- อัปเดต Nginx ด้วยการตั้งค่า HTTPS
- Reload Nginx เพื่อใช้การเปลี่ยนแปลง
- ทำ health checks (หากตั้งค่าแล้ว)
suthep down
หยุดบริการ (หยุด containers และปิดการใช้งาน Nginx configs)
การใช้งาน
suthep down [service-name] [options]อาร์กิวเมนต์
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
service-name | ชื่อหรือ index (1-based) ของบริการที่จะหยุด (ไม่บังคับ). ใช้ suthep list เ พื่อดูบริการที่มีพร้อม index |
ตัวเลือก
| ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|---|
--file | -f | Path ไฟล์การตั้งค่า | suthep.yml |
--all | - | หยุดบริการทั้งหมด | false |
ตัวอย่าง
# หยุดบริการเฉพาะด้วยชื่อ
suthep down api
# หยุดบริการเฉพาะด้วย index
suthep down 1
# หยุดบริการทั้งหมด
suthep down --all
# หยุดด้วย config แบบกำหนดเอง
suthep down api -f production.ymlสิ่งที่มันทำ
- หยุด Docker containers (หากตั้งค่าแล้ว)
- ปิดการใช้งานการตั้งค่า Nginx
- Reload Nginx เพื่อใช้การเปลี่ยนแปลง
suthep up
เริ่มบริการ (เริ่ม containers และเปิดใช้งาน Nginx configs)
การใช้งาน
suthep up [service-name] [options]อาร์กิวเมนต์
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
service-name | ชื่อหรือ index (1-based) ของบริการที่จะเริ่ม (ไม่บังคับ). ใช้ suthep list เพื่อดูบริการที่มีพร้อม index |
ตัวเลือก
| ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|---|
--file | -f | Path ไฟล์การตั้งค่า | suthep.yml |
--all | - | เริ่มบริการทั้งหมด | false |
--no-https | - | ข้ามการตั้งค่า HTTPS | false |
--no-nginx | - | ข้ามการตั้งค่า Nginx | false |
ตัวอย่าง
# เริ่มบริการเฉพาะด้วยชื่อ
suthep up api
# เริ่มบริการเฉพาะด้วย index
suthep up 1
# เริ่มบริการทั้งหมด
suthep up --all
# เริ่มโดยไม่มี HTTPS
suthep up api --no-httpsสิ่งที่มันทำ
- เริ่ม Docker containers (หากตั้งค่าแล้ว)
- เปิดใช้งานการตั้งค่า Nginx
- ตั้งค่า HTTPS (หากเปิดใช้งาน)
- Reload Nginx เพื่อใช้การเปลี่ยนแปลง
suthep restart
รีสตาร์ทบริการ (หยุดและเริ่ม containers อีกครั้ง, อัปเดต Nginx configs)
การใช้งาน
suthep restart [service-name] [options]อาร์กิวเมนต์
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
service-name | ชื่อหรือ index (1-based) ของบริการที่จะรีสตาร์ท (ไม่บังคับ). ใช้ suthep list เพื่อดูบริการที่มีพร้อม index |
ตัวเลือก
| ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|---|
--file | -f | Path ไฟล์การตั้งค่า | suthep.yml |
--all | - | รีสตาร์ทบริการทั้งหมด | false |
--no-https | - | ข้ามการตั้งค่า HTTPS | false |
--no-nginx | - | ข้ามการตั้งค่า Nginx | false |
ตัวอย่าง
# รีสตาร์ทบริการเฉพาะด้วยชื่อ
suthep restart api
# รีสตาร์ทบริการเฉพาะด้วย index
suthep restart 1
# รีสตาร์ทบริการทั้งหมด
suthep restart --all
# รีสตาร์ทโดยไม่มี HTTPS
suthep restart api --no-https
# รีสตาร์ทโดยไม่อัปเดต Nginx
suthep restart api --no-nginx
# รีสตาร์ทด้วย config แบบกำหนดเอง
suthep restart api -f production.ymlสิ่งที่มันทำ
- หยุด Docker containers (หากกำลังทำงาน)
- เริ่ม Docker containers อีกครั้ง
- รอ health checks (หากตั้งค่าแล้ว)
- อัปเดตการตั้งค่า Nginx
- ตั้งค่า HTTPS (หากเปิดใช้งาน)
- Reload Nginx เพื่อใช้การเปลี่ยนแปลง
suthep list
แสดงรายการบริการทั้งหมดและสถานะ (running, stopped, สถานะ container, การตั้งค่า Nginx)
การใช้งาน
suthep list [options]
# หรือ
suthep ls [options]ตัวเลือก
| ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|---|
--file | -f | Path ไฟล์การตั้งค่า | suthep.yml |
ตัวอย่าง
# แสดงรายการบริการทั้งหมด
suthep list
# ใช้ alias
suthep ls
# แสดงรายการด้วยไฟล์ config แบบกำหนดเอง
suthep list -f production.ymlสิ่งที่มันทำ
- โหลดการตั้งค่า จาก
suthep.yml - ตรวจสอบสถานะ Docker container สำหรับแต่ละบริการ (หากตั้งค่าแล้ว)
- ตรวจสอบสถานะการตั้งค่า Nginx สำหรับแต่ละบริการ
- แสดงตารางที่จัดรูปแบบ แสดง:
- หมายเลข index ของบริการ (1, 2, 3...)
- ชื่อบริการ
- สถานะโดยรวม (Running/Stopped/Partial)
- หมายเลขพอร์ต
- ชื่อ container และสถานะ
- สถานะการตั้งค่า Nginx
- ชื่อโดเมน
- แสดงสถิติสรุป (running, stopped, total)
รูปแบบ Output
คำสั่งจะแสดงตารางที่มีสี:
- ● Running (สีเขียว) - บริการทำงานเต็มที่ (container ทำงาน + Nginx เปิดใช้งาน)
- ○ Stopped (สีแดง) - บริการหยุดทำงาน (container หยุด + Nginx ปิดใช้งาน)
- ⚠ Partial (สีเหลือง) - สถานะผสม (เช่น container ทำงานแต่ Nginx ไม่ได้เปิดใช้งาน)
ตัวบ่งชี้สถานะ
- สถานะ Container: แสดงว่า Docker containers กำลังทำงานหรือหยุด
- สถานะ Nginx: แสดงว่าการตั้งค่า Nginx เปิดใช้งาน ปิดใช้งาน หรือไม่ได้ตั้งค่า
- สถานะโดยรวม: รวมสถานะ container และ Nginx เพื่อแสดงสถานะบริการที่สมบูรณ์
หมายเหตุ
- Service indices: หมายเลข index ที่แสดงในรายการสามารถใช้กับคำสั่งอื่นๆ ได้ (เช่น
suthep restart 1แทนsuthep restart api) - การเลือกด้วย index: คำสั่งบริการทั้งหมด (
deploy,up,down,restart,logs) รองรับทั้งชื่อบริการและ index - Docker services: สถานะขึ้นอยู่กับทั้ง container และการตั้งค่า Nginx
- Non-Docker services: สถานะขึ้นอยู่กับการตั้งค่า Nginx เท่านั้น
- สถานะ Partial: บ่งชี้ว่าบริการที่ตั้งค่าบางส่วน (เช่น container ทำงานแต่ Nginx ไม่ได้เปิดใช้งาน)
- คำสั่งจะตรวจสอบสถานะ container และไฟล์ระบบจริง ไม่ใช่แค่การตั้งค่า
suthep logs
ดู logs สำหรับ Docker services ที่ทำงานในโปรเจกต์ของคุณ
การใช้งาน
suthep logs [service-name] [options]อาร์กิวเมนต์
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
service-name | ชื่อหรือ index (1-based) ของบริการที่ต้องการดู logs (ไม่บังคับ, แสดงทั้งหมดถ้าไม่ระบุ). ใช้ suthep list เพื่อดูบริการที่มีพร้อม index |
ตัวเลือก
| ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|---|
--file | -f | path ของไฟล์การตั้งค่า | suthep.yml |
--follow | - | ติดตาม log output (เหมือน tail -f) | false |
--tail | - | จำนวนบรรทัดที่จะแสดงจากท้าย logs | 100 |
ตัวอย่าง
# แสดง logs สำหรับบริการทั้งหมด (100 บรรทัดล่าสุด)
suthep logs
# แสดง logs สำหรับบริการเฉพาะด้วยชื่อ
suthep logs api
# แสดง logs สำหรับบริการเฉพาะด้วย index
suthep logs 1
# ติดตาม logs สำหรับบริการทั้งหมด (streaming แบบ real-time)
suthep logs --follow
# ติดตาม logs สำหรับบริการเฉพาะ
suthep logs api --follow
# แสดง 50 บรรทัดล่าสุดสำหรับบริการเฉพาะ
suthep logs api --tail 50
# ติดตาม logs พร้อมกำหนด tail
suthep logs api --follow --tail 200สิ่งที่ทำ
- โหลดการตั้งค่า จาก
suthep.yml - กรอง Docker services (เฉพาะ Docker services เท่านั้นที่มี container logs)
- ตรวจสอบสถานะ container (แสดง logs เฉพาะ containers ที่กำลังทำงาน)
- แสดง logs:
- ในโหมด non-follow: แสดง logs ล่าสุดและออก
- ในโหมด follow: stream logs แบบ real-time จนกว่าจะถูกขัดจังหวะ (Ctrl+C)
- ใส่สีให้ output ตามชื่อบริการเพื่อให้แยกแยะง่าย
หมายเหตุ
- Docker services เท่านั้น: Logs มีให้เฉพาะสำหรับ services ที่มีการตั้งค่า Docker. Services ที่ไม่ใช่ Docker จะถูกข้ามพร้อมคำเตือน
- Running containers เท่านั้น: แสดง logs เฉพาะ containers ที่กำลังทำงานอยู่. Containers ที่หยุดทำงานจะถูกแสดงแยกต่างหาก
- โหมด follow: ใช้
--followเพื่อ stream logs แบบ real-time. กดCtrl+Cเพื่อหยุด - หลาย services: เมื่อดู logs สำหรับหลาย services แต่ละบรรทัด log จะมี prefix เป็นชื่อบริการในสีที่แตกต่างกัน
- ตัวเลือก tail: ตัวเลือก
--tailควบคุมจำนวนบรรทัดที่จะแสดงจากท้ายไฟล์ log. ใช้ได้ทั้งโหมด follow และ non-follow
suthep self-update
อัปเดต suthep เป็นเวอร์ชันล่าสุดจาก npm registry
การใช้งาน
suthep self-update [options]
# หรือ
suthep update [options]ตัวเลือก
| ตัวเลือก | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|
--force | บังคับอัปเดตแม้ว่าเวอร์ชันปัจจุบันจะใหม่กว่า | false |
ตัวอย่าง
# ตรวจสอบอัปเดตและอัปเดตหากมี
suthep self-update
# ใช้ alias
suthep update
# บังคับอัปเดตแม้ว่าเวอร์ชันปัจจุบันจะใหม่กว่า
suthep self-update --forceสิ่งที่มันทำ
- อ่านข้อมูล package จาก
package.json(ชื่อ package และเวอร์ชันปัจจุบัน) - ดึงเวอร์ชันล่าสุด จาก npm registry (https://registry.npmjs.org/)
- เปรียบเทียบเวอร์ชัน (ปัจจุบัน vs ล่าสุด)
- อัปเดตหากจำเป็น:
- หากเวอร ์ชันล่าสุดใหม่กว่า: อัปเดตเป็นเวอร์ชันล่าสุด
- หากเวอร์ชันเหมือนกัน: แสดงข้อความว่าคุณใช้เวอร์ชันล่าสุดอยู่แล้ว
- หากเวอร์ชันปัจจุบันใหม่กว่า: แสดงคำเตือน (เว้นแต่จะใช้
--force)
- ติดตั้งอัปเดต แบบ global โดยใช้
npm install -g
หมายเหตุ
- ต้องการการเชื่อมต่ออินเทอร์เน็ต: คำสั่งต้องการการเชื่อมต่ออินเทอร์เน็ตเพื่อดึงข้อมูลเวอร์ชันจาก npm registry
- การติดตั้งแบบ global: อัปเดต package suthep ที่ติดตั้งแบบ global
- รีสตาร์ท terminal: หลังจากอัปเดต คุณอาจต้องรีสตาร์ท terminal เพื่อให้การเปลี่ยนแปลงมีผล
- ระบุ npm registry ชัดเจน: ใช้ npm registry ทางการ (registry.npmjs.org) อย่างชัดเจนเพื่อให้แน่ใจว่าการอัปเดตเชื่อถือได้
- การเปรียบเทียบเวอร์ชัน: ใช้การเปรียบเทียบ semantic version เพื่อพิจารณาว่าต้องการอัปเดตหรือไม่
- Force flag: ใช้
--forceเฉพาะเมื่อต้องการ downgrade หรือติดตั้งเวอร์ชันปัจจุบันอีกครั้ง
Output
คำสั่งให้ข้อมูลที่ชัดเจน:
- หมายเลขเวอร์ชันปัจจุบัน
- เวอร์ชันล่าสุดจาก npm
- สถานะการอัปเดต
- ข้อความสำเร็จ/ข้อผิดพลาด
ตัวเลือก Global
คำสั่งทั้งหมดรองรับ:
--helpหรือ-h- แสดงข้อความช่วยเหลือ--versionหรือ-V- แสดงหมายเลขเวอร์ชัน
ตัวอย่าง
# แสดงความช่วยเหลือสำหรับคำสั่ง deploy
suthep deploy --help
# แสดงเวอร์ชัน
suthep --versionWorkflow คำสั่ง
Workflow การ Deploy ทั่วไป
# 1. เริ่มต้นการตั้งค่า
suthep init
# 2. ตั้งค่าสิ่งที่จำเป็น (ครั้งแรกเท่านั้น)
suthep setup
# 3. Deploy บริการ
suthep deployWorkflow การอัปเดต
# 1. แก้ไข suthep.yml
nano suthep.yml
# 2. Redeploy (หยุดและ deploy อีกครั้ง)
suthep down api && suthep deploy api
# หรือ redeploy บริการทั้งหมด
suthep down --all && suthep deploy
# หรือแค่รีสตาร์ทบริการ
suthep restart apiWorkflow การบำรุงรักษา
# หยุดบริการเพื่อการบำรุงรักษา
suthep down --all
# ... ทำการบำรุงรักษา ...
# เริ่มบริการอีกครั้ง
suthep up --allExit Codes
Suthep ใช้ exit codes ต่อไปนี้:
0- สำเร็จ1- ข้อผิดพลาด (ข้อผิดพลาดการตั้งค่า, การ deploy ล้มเหลว, ฯลฯ)
การจัดการข้อผิดพลาด
หากคำสั่งล้มเหลว:
- ตรวจสอบข้อ ความข้อผิดพลาด - มักจะระบุสิ่งที่ผิดพลาด
- ตรวจสอบการตั้งค่า - ตรวจสอบว่า
suthep.ymlถูกต้อง - ตรวจสอบสิ่งที่จำเป็น - ตรวจสอบว่า Nginx และ Certbot ติดตั้งแล้ว
- ตรวจสอบ logs - ตรวจสอบ logs ของ Nginx และ Docker สำหรับรายละเอียด
ขั้นตอนถัดไป
- ตัวอย่าง - ดูคำสั่งในการทำงาน
- การแก้ปัญหา - ปัญหาที่พบบ่อยและวิธีแก้ไข
ก่อนหน้า: คู่มือการตั้งค่า | ถัดไป: ตัวอย่าง →