suthep 0.1.0-beta.1 → 0.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +167 -69
  2. package/dist/commands/down.js +179 -0
  3. package/dist/commands/down.js.map +1 -0
  4. package/dist/commands/redeploy.js +59 -0
  5. package/dist/commands/redeploy.js.map +1 -0
  6. package/dist/commands/up.js +213 -0
  7. package/dist/commands/up.js.map +1 -0
  8. package/dist/index.js +28 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/utils/deployment.js +10 -1
  11. package/dist/utils/deployment.js.map +1 -1
  12. package/dist/utils/docker.js +35 -0
  13. package/dist/utils/docker.js.map +1 -1
  14. package/dist/utils/nginx.js +10 -0
  15. package/dist/utils/nginx.js.map +1 -1
  16. package/docs/README.md +25 -82
  17. package/docs/english/01-introduction.md +84 -0
  18. package/docs/english/02-installation.md +200 -0
  19. package/docs/english/03-quick-start.md +256 -0
  20. package/docs/english/04-configuration.md +358 -0
  21. package/docs/english/05-commands.md +363 -0
  22. package/docs/english/06-examples.md +456 -0
  23. package/docs/english/07-troubleshooting.md +417 -0
  24. package/docs/english/08-advanced.md +411 -0
  25. package/docs/english/README.md +48 -0
  26. package/docs/thai/01-introduction.md +84 -0
  27. package/docs/thai/02-installation.md +200 -0
  28. package/docs/thai/03-quick-start.md +256 -0
  29. package/docs/thai/04-configuration.md +358 -0
  30. package/docs/thai/05-commands.md +363 -0
  31. package/docs/thai/06-examples.md +456 -0
  32. package/docs/thai/07-troubleshooting.md +417 -0
  33. package/docs/thai/08-advanced.md +411 -0
  34. package/docs/thai/README.md +48 -0
  35. package/example/README.md +282 -53
  36. package/example/suthep-complete.yml +103 -0
  37. package/example/suthep-docker-only.yml +71 -0
  38. package/example/suthep-no-docker.yml +51 -0
  39. package/example/{muacle.yml → suthep-path-routing.yml} +20 -5
  40. package/example/suthep.example.yml +89 -0
  41. package/package.json +1 -1
  42. package/src/commands/down.ts +240 -0
  43. package/src/commands/redeploy.ts +78 -0
  44. package/src/commands/up.ts +271 -0
  45. package/src/index.ts +53 -0
  46. package/suthep-0.1.0-beta.1.tgz +0 -0
  47. package/suthep.example.yml +5 -0
  48. package/suthep.yml +39 -0
  49. package/docs/TRANSLATIONS.md +0 -211
  50. package/docs/en/README.md +0 -76
  51. package/docs/en/api-reference.md +0 -545
  52. package/docs/en/architecture.md +0 -369
  53. package/docs/en/commands.md +0 -273
  54. package/docs/en/configuration.md +0 -347
  55. package/docs/en/developer-guide.md +0 -588
  56. package/docs/en/docker-ports-config.md +0 -333
  57. package/docs/en/examples.md +0 -537
  58. package/docs/en/getting-started.md +0 -202
  59. package/docs/en/port-binding.md +0 -268
  60. package/docs/en/troubleshooting.md +0 -441
  61. package/docs/th/README.md +0 -64
  62. package/docs/th/commands.md +0 -202
  63. package/docs/th/configuration.md +0 -325
  64. package/docs/th/getting-started.md +0 -203
  65. package/example/docker-compose.yml +0 -76
  66. package/example/docker-ports-example.yml +0 -81
  67. package/example/port-binding-example.yml +0 -45
  68. package/example/suthep.yml +0 -46
  69. package/example/suthep=1.yml +0 -46
package/docs/th/README.md DELETED
@@ -1,64 +0,0 @@
1
- # เอกสารประกอบ Suthep
2
-
3
- ยินดีต้อนรับสู่เอกสารประกอบ Suthep! คู่มือนี้จะช่วยให้คุณเข้าใจและใช้งาน Suthep ซึ่งเป็นเครื่องมือ CLI ที่ทรงพลังสำหรับการ deploy โปรเจกต์พร้อมการตั้งค่า Nginx reverse proxy อัตโนมัติ, HTTPS ด้วย Certbot, และการ deploy แบบ zero-downtime
4
-
5
- ## สารบัญ
6
-
7
- ### เอกสารสำหรับผู้ใช้
8
-
9
- 1. [เริ่มต้นใช้งาน](./getting-started.md) - คู่มือการติดตั้งและเริ่มต้นใช้งาน
10
- 2. [คู่มือการตั้งค่า](./configuration.md) - คู่มืออ้างอิงไฟล์ configuration ฉบับสมบูรณ์
11
- 3. [คู่มือคำสั่ง](./commands.md) - เอกสารคำสั่งแบบละเอียด
12
-
13
- ### เอกสารสำหรับนักพัฒนา
14
-
15
- 4. [คู่มือนักพัฒนา](../en/developer-guide.md) - คู่มือฉบับสมบูรณ์สำหรับนักพัฒนาและผู้มีส่วนร่วม *(English)*
16
- 5. [สถาปัตยกรรม](../en/architecture.md) - วิธีการทำงานของ Suthep *(English)*
17
- 6. [อ้างอิง API](../en/api-reference.md) - ฟังก์ชันและ utilities ภายใน *(English)*
18
-
19
- ## Suthep คืออะไร?
20
-
21
- Suthep เป็นเครื่องมืออัตโนมัติสำหรับการ deploy ที่ทำให้กระบวนการ deploy web services ง่ายขึ้นด้วย:
22
-
23
- - ✅ **การตั้งค่า Nginx reverse proxy อัตโนมัติ** - ไม่ต้องตั้งค่า Nginx ด้วยตนเอง
24
- - ✅ **HTTPS อัตโนมัติด้วย Certbot** - ใบรับรอง SSL ฟรีจาก Let's Encrypt
25
- - ✅ **การ deploy แบบ zero-downtime** - กลยุทธ์การ deploy แบบ Rolling และ Blue-Green
26
- - ✅ **รองรับ Docker container** - Deploy แอปพลิเคชันที่ใช้ container ได้ง่าย
27
- - ✅ **รองรับหลาย domain/subdomain** - หนึ่ง service, หลาย domains
28
- - ✅ **Health check** - ตรวจสอบว่า services ทำงานปกติก่อนเปิดใช้งาน
29
- - ✅ **การตั้งค่าแบบ YAML** - การตั้งค่าที่เรียบง่ายและชัดเจน
30
-
31
- ## เริ่มต้นใช้งานอย่างรวดเร็ว
32
-
33
- ```bash
34
- # ติดตั้ง dependencies
35
- npm install
36
- npm link
37
-
38
- # เริ่มต้นการตั้งค่า
39
- suthep init
40
-
41
- # ติดตั้ง prerequisites
42
- suthep setup
43
-
44
- # Deploy services ของคุณ
45
- suthep deploy
46
- ```
47
-
48
- ## ความต้องการของระบบ
49
-
50
- - Node.js 16+
51
- - Nginx (ติดตั้งผ่าน `suthep setup`)
52
- - Certbot (ติดตั้งผ่าน `suthep setup`)
53
- - Docker (ไม่บังคับ, สำหรับ services ที่ใช้ Docker)
54
- - สิทธิ์ sudo (สำหรับการทำงานของ Nginx และ Certbot)
55
-
56
- ## ภาษาอื่นๆ / Other Languages
57
-
58
- - [English](../en/README.md) - English documentation / เอกสารภาษาอังกฤษ
59
- - [ไทย](./README.md) - เอกสารภาษาไทย (ปัจจุบัน)
60
- - [กลับไปหน้าหลัก](../README.md) - Return to language selection
61
-
62
- ## สิทธิ์การใช้งาน
63
-
64
- [MIT](../../LICENSE)
@@ -1,202 +0,0 @@
1
- # คู่มืออ้างอิงคำสั่ง
2
-
3
- Suthep มีคำสั่งหลักสามคำสั่งสำหรับการจัดการ deployments เอกสารนี้อธิบายแต่ละคำสั่งแบบละเอียด
4
-
5
- ## `suthep init`
6
-
7
- เริ่มต้นไฟล์ configuration สำหรับการ deploy ใหม่
8
-
9
- ### การใช้งาน
10
-
11
- ```bash
12
- suthep init [options]
13
- ```
14
-
15
- ### ตัวเลือก
16
-
17
- | ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
18
- |---------|--------|----------|-----------|
19
- | `--file` | `-f` | Path ของไฟล์ configuration | `suthep.yml` |
20
-
21
- ### คำอธิบาย
22
-
23
- คำสั่ง `init` จะสร้างไฟล์ configuration `suthep.yml` แบบ interactive โดยจะ:
24
-
25
- 1. ถามชื่อโปรเจกต์และเวอร์ชัน
26
- 2. แนะนำการตั้งค่า services หนึ่งหรือหลายตัว
27
- 3. ถามเกี่ยวกับการตั้งค่า Docker สำหรับแต่ละ service
28
- 4. ตั้งค่า health check endpoints
29
- 5. ตั้งค่าอีเมล Certbot และโหมด staging
30
- 6. บันทึก configuration ไปยังไฟล์ที่ระบุ
31
-
32
- ### ตัวอย่าง
33
-
34
- ```bash
35
- # สร้าง suthep.yml เริ่มต้น
36
- suthep init
37
-
38
- # สร้างไฟล์ configuration แบบกำหนดเอง
39
- suthep init -f production.yml
40
- ```
41
-
42
- ### คำถามแบบ Interactive
43
-
44
- คำสั่งจะถามคุณ:
45
-
46
- 1. **Project name**: ชื่อโปรเจกต์ของคุณ
47
- 2. **Project version**: หมายเลขเวอร์ชัน
48
- 3. **Service name**: ตัวระบุเฉพาะสำหรับ service
49
- 4. **Service port**: พอร์ตที่ service รัน (1-65535)
50
- 5. **Domain names**: รายการ domains แยกด้วยเครื่องหมายจุลภาค
51
- 6. **Use Docker?**: ต้องการใช้ Docker หรือไม่
52
- 7. **Docker image**: Image ที่จะใช้ (ไม่บังคับ, สำหรับ containers ใหม่)
53
- 8. **Container name**: ชื่อ Docker container
54
- 9. **Container port**: พอร์ตภายใน container
55
- 10. **Add health check?**: ต้องการตั้งค่า health checks หรือไม่
56
- 11. **Health check path**: HTTP path สำหรับ health endpoint
57
- 12. **Health check interval**: ช่วงเวลาการตรวจสอบ (วินาที)
58
- 13. **Add another service?**: ต้องการตั้งค่า services เพิ่มเติมหรือไม่
59
- 14. **Email for SSL certificates**: อีเมลสำหรับ Let's Encrypt
60
- 15. **Use Certbot staging?**: ใช้ staging environment สำหรับการทดสอบ
61
-
62
- ## `suthep setup`
63
-
64
- ตั้งค่า Nginx และ Certbot บนระบบ
65
-
66
- ### การใช้งาน
67
-
68
- ```bash
69
- suthep setup [options]
70
- ```
71
-
72
- ### ตัวเลือก
73
-
74
- | ตัวเลือก | คำอธิบาย |
75
- |---------|----------|
76
- | `--nginx-only` | ตั้งค่าเฉพาะ Nginx (ข้าม Certbot) |
77
- | `--certbot-only` | ตั้งค่าเฉพาะ Certbot (ข้าม Nginx) |
78
-
79
- ### คำอธิบาย
80
-
81
- คำสั่ง `setup` จะติดตั้งและตั้งค่า prerequisites สำหรับ Suthep:
82
-
83
- 1. **การติดตั้ง Nginx**:
84
- - ตรวจสอบว่า Nginx ติดตั้งแล้วหรือยัง
85
- - ติดตั้ง Nginx โดยใช้ package manager ที่เหมาะสม:
86
- - `apt-get` บน Debian/Ubuntu
87
- - `yum` บน RHEL/CentOS
88
- - `brew` บน macOS
89
- - เริ่มและเปิดใช้งาน Nginx service
90
-
91
- 2. **การติดตั้ง Certbot**:
92
- - ตรวจสอบว่า Certbot ติดตั้งแล้วหรือยัง
93
- - ติดตั้ง Certbot และ Nginx plugin:
94
- - `certbot` และ `python3-certbot-nginx` บน Linux
95
- - `certbot` บน macOS ผ่าน Homebrew
96
-
97
- ### ตัวอย่าง
98
-
99
- ```bash
100
- # ตั้งค่าทั้ง Nginx และ Certbot
101
- suthep setup
102
-
103
- # ตั้งค่าเฉพาะ Nginx
104
- suthep setup --nginx-only
105
-
106
- # ตั้งค่าเฉพาะ Certbot
107
- suthep setup --certbot-only
108
- ```
109
-
110
- ## `suthep deploy`
111
-
112
- Deploy services ตาม configuration ที่กำหนด
113
-
114
- ### การใช้งาน
115
-
116
- ```bash
117
- suthep deploy [options]
118
- ```
119
-
120
- ### ตัวเลือก
121
-
122
- | ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
123
- |---------|--------|----------|-----------|
124
- | `--file` | `-f` | Path ของไฟล์ configuration | `suthep.yml` |
125
- | `--nginx` | | เปิดใช้งานการตั้งค่า Nginx | `true` |
126
- | `--no-nginx` | | ปิดการใช้งานการตั้งค่า Nginx | |
127
- | `--https` | | เปิดใช้งาน HTTPS และขอใบรับรอง SSL | `false` |
128
- | `--no-https` | | ปิดการใช้งาน HTTPS | |
129
-
130
- ### คำอธิบาย
131
-
132
- คำสั่ง `deploy` จะ deploy services ทั้งหมดตาม configuration:
133
-
134
- 1. **โหลด Configuration**: โหลดและตรวจสอบไฟล์ `suthep.yml`
135
- 2. **จัดการ Docker Containers**:
136
- - ตรวจสอบว่า container มีอยู่หรือไม่
137
- - ลบและสร้างใหม่ถ้าจำเป็น (สำหรับการ redeploy)
138
- - Pull image ล่าสุด
139
- - สร้างและเริ่ม container
140
- 3. **Deploy Services**: ใช้กลยุทธ์การ deploy ที่กำหนด
141
- 4. **Health Checks**: ตรวจสอบว่า services ทำงานปกติ
142
- 5. **สร้าง Nginx Configs**: สร้างไฟล์ configuration สำหรับแต่ละ domain
143
- 6. **เปิดใช้งาน Sites**: สร้าง symbolic links ใน `sites-enabled`
144
- 7. **ขอใบรับรอง SSL**: ขอใบรับรองจาก Let's Encrypt (ถ้าเปิดใช้งาน HTTPS)
145
- 8. **Reload Nginx**: ทดสอบและ reload Nginx configuration
146
-
147
- ### ตัวอย่าง
148
-
149
- ```bash
150
- # Deploy พร้อม Nginx (ไม่มี HTTPS)
151
- suthep deploy
152
-
153
- # Deploy พร้อม HTTPS
154
- suthep deploy --https
155
-
156
- # Deploy โดยไม่ใช้ Nginx
157
- suthep deploy --no-nginx
158
-
159
- # Deploy โดยใช้ไฟล์ configuration แบบกำหนดเอง
160
- suthep deploy -f production.yml --https
161
- ```
162
-
163
- ### กระบวนการ Deploy
164
-
165
- คำสั่ง `deploy` จะ:
166
-
167
- 1. **Group Services by Domain**: จัดกลุ่ม services ตาม domain
168
- 2. **Deploy Each Service**:
169
- - เริ่ม Docker container (ถ้าตั้งค่าไว้)
170
- - Deploy service
171
- - ทำ health check
172
- 3. **Configure Nginx**:
173
- - สร้าง configuration สำหรับแต่ละ domain
174
- - Services หลายตัวบน domain เดียวจะใช้ไฟล์ config เดียวกัน
175
- - เปิดใช้งาน site
176
- 4. **Setup HTTPS** (ถ้าเปิดใช้งาน):
177
- - ตรวจสอบว่าใบรับรองมีอยู่แล้วหรือไม่
178
- - ขอใบรับรองใหม่ถ้ายังไม่มี
179
- - อัปเดต Nginx configs ด้วย HTTPS
180
- 5. **Reload Nginx**: ทดสอบและ reload configuration
181
-
182
- ### ข้อความแสดงผล
183
-
184
- คำสั่งจะแสดง:
185
-
186
- - ✅ สีเขียว: การดำเนินการสำเร็จ
187
- - 🔄 สีเหลือง: การดำเนินการที่กำลังทำ
188
- - ❌ สีแดง: ข้อผิดพลาด
189
- - 📋 สีฟ้า: ข้อมูล
190
-
191
- ### ข้อผิดพลาดที่พบบ่อย
192
-
193
- - **Port already in use**: พอร์ตถูกใช้งานโดย container อื่น
194
- - **Container name already in use**: ชื่อ container ถูกใช้งานแล้ว
195
- - **SSL certificate failed**: ไม่สามารถขอใบรับรอง SSL ได้
196
- - **Nginx config test failed**: การตั้งค่า Nginx ไม่ถูกต้อง
197
-
198
- ## ภาษาอื่นๆ / Other Languages
199
-
200
- - [English](../en/commands.md) - English version / เวอร์ชันภาษาอังกฤษ
201
- - [ไทย](./commands.md) - เวอร์ชันภาษาไทย (ปัจจุบัน)
202
-
@@ -1,325 +0,0 @@
1
- # คู่มืออ้างอิงการตั้งค่า
2
-
3
- Suthep ใช้ไฟล์ configuration แบบ YAML (ค่าเริ่มต้น: `suthep.yml`) เพื่อกำหนดการ deploy ของคุณ เอกสารนี้อธิบายตัวเลือกการตั้งค่าทั้งหมดที่มีให้
4
-
5
- ## โครงสร้างไฟล์ Configuration
6
-
7
- ```yaml
8
- project:
9
- name: string
10
- version: string
11
-
12
- services:
13
- - name: string
14
- port: number
15
- domains: string[]
16
- docker?: DockerConfig
17
- healthCheck?: HealthCheckConfig
18
- environment?: Record<string, string>
19
-
20
- nginx:
21
- configPath: string
22
- reloadCommand: string
23
-
24
- certbot:
25
- email: string
26
- staging: boolean
27
-
28
- deployment:
29
- strategy: 'rolling' | 'blue-green'
30
- healthCheckTimeout: number
31
- ```
32
-
33
- ## การตั้งค่าโปรเจกต์
34
-
35
- ### `project.name`
36
-
37
- - **ประเภท**: `string`
38
- - **จำเป็น**: ใช่
39
- - **คำอธิบาย**: ชื่อโปรเจกต์ของคุณ
40
-
41
- ```yaml
42
- project:
43
- name: my-awesome-app
44
- ```
45
-
46
- ### `project.version`
47
-
48
- - **ประเภท**: `string`
49
- - **จำเป็น**: ใช่
50
- - **คำอธิบาย**: เวอร์ชันของโปรเจกต์ของคุณ
51
-
52
- ```yaml
53
- project:
54
- version: 1.0.0
55
- ```
56
-
57
- ## การตั้งค่า Service
58
-
59
- แต่ละ service แทนแอปพลิเคชันหรือ service ที่จะถูก deploy และเปิดเผยผ่าน Nginx
60
-
61
- ### `services[].name`
62
-
63
- - **ประเภท**: `string`
64
- - **จำเป็น**: ใช่
65
- - **คำอธิบาย**: ชื่อเฉพาะสำหรับ service ใช้สำหรับไฟล์ configuration ของ Nginx และ Docker containers
66
-
67
- ```yaml
68
- services:
69
- - name: api
70
- ```
71
-
72
- ### `services[].port`
73
-
74
- - **ประเภท**: `number`
75
- - **จำเป็น**: ใช่
76
- - **คำอธิบาย**: หมายเลขพอร์ตที่ service กำลังฟัง (1-65535)
77
-
78
- ```yaml
79
- services:
80
- - name: api
81
- port: 3000
82
- ```
83
-
84
- ### `services[].domains`
85
-
86
- - **ประเภท**: `string[]`
87
- - **จำเป็น**: ใช่
88
- - **คำอธิบาย**: รายการ domain names ที่ service นี้จะถูกเข้าถึง
89
-
90
- ```yaml
91
- services:
92
- - name: api
93
- domains:
94
- - api.example.com
95
- - www.api.example.com
96
- ```
97
-
98
- ### `services[].path`
99
-
100
- - **ประเภท**: `string`
101
- - **จำเป็น**: ไม่
102
- - **ค่าเริ่มต้น**: `/`
103
- - **คำอธิบาย**: Path prefix สำหรับ service นี้ (เช่น '/api', '/'). ใช้สำหรับ routing หลาย services บน domain เดียวกัน
104
-
105
- ```yaml
106
- services:
107
- - name: api
108
- path: /api
109
- domains:
110
- - example.com
111
- - name: ui
112
- path: /
113
- domains:
114
- - example.com
115
- ```
116
-
117
- ### `services[].docker`
118
-
119
- - **ประเภท**: `DockerConfig`
120
- - **จำเป็น**: ไม่
121
- - **คำอธิบาย**: การตั้งค่า Docker สำหรับ service นี้
122
-
123
- ```yaml
124
- services:
125
- - name: api
126
- docker:
127
- image: myapp/api:latest
128
- container: api-container
129
- port: 3000
130
- ```
131
-
132
- #### `docker.image`
133
-
134
- - **ประเภท**: `string`
135
- - **จำเป็น**: ไม่ (จำเป็นถ้าต้องการสร้าง container ใหม่)
136
- - **คำอธิบาย**: Docker image ที่จะใช้
137
-
138
- #### `docker.container`
139
-
140
- - **ประเภท**: `string`
141
- - **จำเป็น**: ใช่
142
- - **คำอธิบาย**: ชื่อ container
143
-
144
- #### `docker.port`
145
-
146
- - **ประเภท**: `number`
147
- - **จำเป็น**: ใช่
148
- - **คำอธิบาย**: พอร์ตภายใน container ที่แอปพลิเคชันฟัง
149
-
150
- **หมายเหตุ**: `service.port` คือพอร์ตบน host (ที่ Nginx เชื่อมต่อ) และ `docker.port` คือพอร์ตภายใน container
151
-
152
- ### `services[].healthCheck`
153
-
154
- - **ประเภท**: `HealthCheckConfig`
155
- - **จำเป็น**: ไม่
156
- - **คำอธิบาย**: การตั้งค่า health check สำหรับ service
157
-
158
- ```yaml
159
- services:
160
- - name: api
161
- healthCheck:
162
- path: /health
163
- interval: 30
164
- ```
165
-
166
- #### `healthCheck.path`
167
-
168
- - **ประเภท**: `string`
169
- - **จำเป็น**: ใช่
170
- - **คำอธิบาย**: Path ของ health check endpoint
171
-
172
- #### `healthCheck.interval`
173
-
174
- - **ประเภท**: `number`
175
- - **จำเป็น**: ใช่
176
- - **คำอธิบาย**: ช่วงเวลาระหว่าง health checks (วินาที)
177
-
178
- ### `services[].environment`
179
-
180
- - **ประเภท**: `Record<string, string>`
181
- - **จำเป็น**: ไม่
182
- - **คำอธิบาย**: ตัวแปรสภาพแวดล้อมที่จะส่งไปยัง Docker container
183
-
184
- ```yaml
185
- services:
186
- - name: api
187
- docker:
188
- image: myapp/api:latest
189
- container: api-container
190
- port: 3000
191
- environment:
192
- NODE_ENV: production
193
- DATABASE_URL: postgresql://localhost:5432/mydb
194
- ```
195
-
196
- ## การตั้งค่า Nginx
197
-
198
- ### `nginx.configPath`
199
-
200
- - **ประเภท**: `string`
201
- - **จำเป็น**: ใช่
202
- - **คำอธิบาย**: Path ไปยังไดเรกทอรีที่เก็บไฟล์ configuration ของ Nginx
203
-
204
- ```yaml
205
- nginx:
206
- configPath: /etc/nginx/sites-available
207
- ```
208
-
209
- ### `nginx.reloadCommand`
210
-
211
- - **ประเภท**: `string`
212
- - **จำเป็น**: ใช่
213
- - **คำอธิบาย**: คำสั่งสำหรับ reload Nginx configuration
214
-
215
- ```yaml
216
- nginx:
217
- reloadCommand: sudo nginx -t && sudo systemctl reload nginx
218
- ```
219
-
220
- ## การตั้งค่า Certbot
221
-
222
- ### `certbot.email`
223
-
224
- - **ประเภท**: `string`
225
- - **จำเป็น**: ใช่
226
- - **คำอธิบาย**: อีเมลที่ใช้สำหรับการลงทะเบียนกับ Let's Encrypt
227
-
228
- ```yaml
229
- certbot:
230
- email: admin@example.com
231
- ```
232
-
233
- ### `certbot.staging`
234
-
235
- - **ประเภท**: `boolean`
236
- - **จำเป็น**: ใช่
237
- - **คำอธิบาย**: ใช้ staging environment ของ Let's Encrypt (แนะนำสำหรับการทดสอบ)
238
-
239
- ```yaml
240
- certbot:
241
- staging: false
242
- ```
243
-
244
- ## การตั้งค่า Deployment
245
-
246
- ### `deployment.strategy`
247
-
248
- - **ประเภท**: `'rolling' | 'blue-green'`
249
- - **จำเป็น**: ใช่
250
- - **คำอธิบาย**: กลยุทธ์การ deploy ที่จะใช้
251
-
252
- ```yaml
253
- deployment:
254
- strategy: rolling
255
- ```
256
-
257
- - **`rolling`**: แทนที่ instances เก่าด้วยใหม่ทีละน้อย
258
- - **`blue-green`**: รักษาสภาพแวดล้อมสองชุดและสลับระหว่างกัน
259
-
260
- ### `deployment.healthCheckTimeout`
261
-
262
- - **ประเภท**: `number`
263
- - **จำเป็น**: ใช่
264
- - **คำอธิบาย**: เวลาสูงสุดในการรอ health check (มิลลิวินาที)
265
-
266
- ```yaml
267
- deployment:
268
- healthCheckTimeout: 30000
269
- ```
270
-
271
- ## ตัวอย่างการตั้งค่าที่สมบูรณ์
272
-
273
- ```yaml
274
- project:
275
- name: my-awesome-app
276
- version: 1.0.0
277
-
278
- services:
279
- - name: api
280
- port: 3001
281
- path: /api
282
- domains:
283
- - api.example.com
284
- docker:
285
- image: myapp/api:latest
286
- container: api-container
287
- port: 3001
288
- healthCheck:
289
- path: /health
290
- interval: 30
291
- environment:
292
- NODE_ENV: production
293
-
294
- - name: ui
295
- port: 3000
296
- path: /
297
- domains:
298
- - example.com
299
- - www.example.com
300
- docker:
301
- image: myapp/ui:latest
302
- container: ui-container
303
- port: 80
304
- healthCheck:
305
- path: /
306
- interval: 30
307
-
308
- nginx:
309
- configPath: /etc/nginx/sites-available
310
- reloadCommand: sudo nginx -t && sudo systemctl reload nginx
311
-
312
- certbot:
313
- email: admin@example.com
314
- staging: false
315
-
316
- deployment:
317
- strategy: rolling
318
- healthCheckTimeout: 30000
319
- ```
320
-
321
- ## ภาษาอื่นๆ / Other Languages
322
-
323
- - [English](../en/configuration.md) - English version / เวอร์ชันภาษาอังกฤษ
324
- - [ไทย](./configuration.md) - เวอร์ชันภาษาไทย (ปัจจุบัน)
325
-