suthep 0.1.0 → 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 (72) hide show
  1. package/README.md +172 -71
  2. package/dist/commands/deploy.js +251 -37
  3. package/dist/commands/deploy.js.map +1 -1
  4. package/dist/commands/down.js +179 -0
  5. package/dist/commands/down.js.map +1 -0
  6. package/dist/commands/redeploy.js +59 -0
  7. package/dist/commands/redeploy.js.map +1 -0
  8. package/dist/commands/up.js +213 -0
  9. package/dist/commands/up.js.map +1 -0
  10. package/dist/index.js +36 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/utils/certbot.js +40 -3
  13. package/dist/utils/certbot.js.map +1 -1
  14. package/dist/utils/config-loader.js +30 -0
  15. package/dist/utils/config-loader.js.map +1 -1
  16. package/dist/utils/deployment.js +49 -16
  17. package/dist/utils/deployment.js.map +1 -1
  18. package/dist/utils/docker.js +396 -25
  19. package/dist/utils/docker.js.map +1 -1
  20. package/dist/utils/nginx.js +167 -8
  21. package/dist/utils/nginx.js.map +1 -1
  22. package/docs/README.md +25 -49
  23. package/docs/english/01-introduction.md +84 -0
  24. package/docs/english/02-installation.md +200 -0
  25. package/docs/english/03-quick-start.md +256 -0
  26. package/docs/english/04-configuration.md +358 -0
  27. package/docs/english/05-commands.md +363 -0
  28. package/docs/english/06-examples.md +456 -0
  29. package/docs/english/07-troubleshooting.md +417 -0
  30. package/docs/english/08-advanced.md +411 -0
  31. package/docs/english/README.md +48 -0
  32. package/docs/thai/01-introduction.md +84 -0
  33. package/docs/thai/02-installation.md +200 -0
  34. package/docs/thai/03-quick-start.md +256 -0
  35. package/docs/thai/04-configuration.md +358 -0
  36. package/docs/thai/05-commands.md +363 -0
  37. package/docs/thai/06-examples.md +456 -0
  38. package/docs/thai/07-troubleshooting.md +417 -0
  39. package/docs/thai/08-advanced.md +411 -0
  40. package/docs/thai/README.md +48 -0
  41. package/example/README.md +286 -53
  42. package/example/suthep-complete.yml +103 -0
  43. package/example/suthep-docker-only.yml +71 -0
  44. package/example/suthep-no-docker.yml +51 -0
  45. package/example/suthep-path-routing.yml +62 -0
  46. package/example/suthep.example.yml +89 -0
  47. package/package.json +1 -1
  48. package/src/commands/deploy.ts +322 -50
  49. package/src/commands/down.ts +240 -0
  50. package/src/commands/redeploy.ts +78 -0
  51. package/src/commands/up.ts +271 -0
  52. package/src/index.ts +62 -1
  53. package/src/types/config.ts +25 -24
  54. package/src/utils/certbot.ts +68 -6
  55. package/src/utils/config-loader.ts +40 -0
  56. package/src/utils/deployment.ts +61 -36
  57. package/src/utils/docker.ts +634 -30
  58. package/src/utils/nginx.ts +187 -4
  59. package/suthep-0.1.0-beta.1.tgz +0 -0
  60. package/suthep-0.1.1.tgz +0 -0
  61. package/suthep.example.yml +34 -0
  62. package/suthep.yml +39 -0
  63. package/test +0 -0
  64. package/docs/api-reference.md +0 -545
  65. package/docs/architecture.md +0 -367
  66. package/docs/commands.md +0 -273
  67. package/docs/configuration.md +0 -347
  68. package/docs/examples.md +0 -537
  69. package/docs/getting-started.md +0 -197
  70. package/docs/troubleshooting.md +0 -441
  71. package/example/docker-compose.yml +0 -72
  72. package/example/suthep.yml +0 -31
@@ -0,0 +1,363 @@
1
+ # คำสั่งอ้างอิง
2
+
3
+ คู่มือนี้ครอบคลุมคำสั่ง Suthep ทั้งหมดที่มีและตัวเลือกของพวกเขา
4
+
5
+ ## ภาพรวมคำสั่ง
6
+
7
+ Suthep ให้คำสั่งต่อไปนี้:
8
+
9
+ - `suthep init` - เริ่มต้นไฟล์การตั้งค่า
10
+ - `suthep setup` - ตั้งค่าสิ่งที่จำเป็น
11
+ - `suthep deploy` - Deploy บริการ
12
+ - `suthep down` - หยุดบริการ
13
+ - `suthep up` - เริ่มบริการ
14
+ - `suthep redeploy` - Redeploy บริการ
15
+
16
+ ## suthep init
17
+
18
+ เริ่มต้นไฟล์การตั้งค่า deployment ใหม่พร้อมพร้อมต์แบบโต้ตอบ
19
+
20
+ ### การใช้งาน
21
+
22
+ ```bash
23
+ suthep init [options]
24
+ ```
25
+
26
+ ### ตัวเลือก
27
+
28
+ | ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
29
+ |---------|--------|----------|-----------|
30
+ | `--file` | `-f` | Path ไฟล์การตั้งค่า | `suthep.yml` |
31
+
32
+ ### ตัวอย่าง
33
+
34
+ ```bash
35
+ # สร้างไฟล์การตั้งค่าเริ่มต้น
36
+ suthep init
37
+
38
+ # สร้างไฟล์การตั้งค่าแบบกำหนดเอง
39
+ suthep init -f my-config.yml
40
+ ```
41
+
42
+ ### พร้อมต์แบบโต้ตอบ
43
+
44
+ คำสั่ง `init` จะถามคุณเกี่ยวกับ:
45
+
46
+ 1. **ข้อมูลโปรเจกต์**
47
+ - ชื่อโปรเจกต์
48
+ - เวอร์ชันโปรเจกต์
49
+
50
+ 2. **การตั้งค่าบริการ** (สำหรับแต่ละบริการ)
51
+ - ชื่อบริการ
52
+ - พอร์ตบริการ
53
+ - ชื่อโดเมน (คั่นด้วยเครื่องหมายจุลภาค)
54
+ - การใช้ Docker
55
+ - Docker image (หากใช้ Docker)
56
+ - ชื่อ container
57
+ - พอร์ต container
58
+ - การตั้งค่า health check
59
+ - Health check path
60
+ - ช่วงเวลา health check
61
+
62
+ 3. **ใบรับรอง SSL**
63
+ - อีเมลสำหรับ Let's Encrypt
64
+ - สภาพแวดล้อม staging (สำหรับการทดสอบ)
65
+
66
+ ## suthep setup
67
+
68
+ ติดตั้งและตั้งค่า Nginx และ Certbot บนระบบของคุณ
69
+
70
+ ### การใช้งาน
71
+
72
+ ```bash
73
+ suthep setup [options]
74
+ ```
75
+
76
+ ### ตัวเลือก
77
+
78
+ | ตัวเลือก | คำอธิบาย |
79
+ |---------|----------|
80
+ | `--nginx-only` | ติดตั้งและตั้งค่าเฉพาะ Nginx |
81
+ | `--certbot-only` | ติดตั้งและตั้งค่าเฉพาะ Certbot |
82
+
83
+ ### ตัวอย่าง
84
+
85
+ ```bash
86
+ # ตั้งค่าทั้ง Nginx และ Certbot
87
+ suthep setup
88
+
89
+ # ตั้งค่าเฉพาะ Nginx
90
+ suthep setup --nginx-only
91
+
92
+ # ตั้งค่าเฉพาะ Certbot
93
+ suthep setup --certbot-only
94
+ ```
95
+
96
+ ### สิ่งที่มันทำ
97
+
98
+ 1. **ตรวจสอบการติดตั้งที่มีอยู่**
99
+ 2. **ติดตั้งส่วนประกอบที่หายไป:**
100
+ - Nginx (ผ่าน apt-get, yum, หรือ Homebrew)
101
+ - Certbot (ผ่าน apt-get, yum, หรือ Homebrew)
102
+ 3. **เริ่มและเปิดใช้งานบริการ**
103
+
104
+ **หมายเหตุ:** ต้องการสิทธิ์ sudo
105
+
106
+ ## suthep deploy
107
+
108
+ Deploy โปรเจกต์ของคุณโดยใช้ไฟล์การตั้งค่า
109
+
110
+ ### การใช้งาน
111
+
112
+ ```bash
113
+ suthep deploy [options]
114
+ ```
115
+
116
+ ### ตัวเลือก
117
+
118
+ | ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
119
+ |---------|--------|----------|-----------|
120
+ | `--file` | `-f` | Path ไฟล์การตั้งค่า | `suthep.yml` |
121
+ | `--no-https` | - | ข้ามการตั้งค่า HTTPS/SSL certificate | `false` |
122
+ | `--no-nginx` | - | ข้ามการตั้งค่า Nginx | `false` |
123
+
124
+ ### ตัวอย่าง
125
+
126
+ ```bash
127
+ # Deploy ด้วยการตั้งค่าเริ่มต้น
128
+ suthep deploy
129
+
130
+ # Deploy ด้วยไฟล์ config แบบกำหนดเอง
131
+ suthep deploy -f production.yml
132
+
133
+ # Deploy โดยไม่มี HTTPS (สำหรับการทดสอบ)
134
+ suthep deploy --no-https
135
+
136
+ # Deploy โดยไม่มี Nginx (สำหรับการทดสอบ)
137
+ suthep deploy --no-nginx
138
+
139
+ # Deploy โดยไม่มีทั้งสอง
140
+ suthep deploy --no-https --no-nginx
141
+ ```
142
+
143
+ ### สิ่งที่มันทำ
144
+
145
+ 1. **โหลดการตั้งค่า** จาก `suthep.yml`
146
+ 2. **เริ่ม Docker containers** (หากตั้งค่าแล้ว)
147
+ 3. **ตั้งค่า Nginx** reverse proxy
148
+ 4. **รับใบรับรอง SSL** (หากเปิดใช้งาน)
149
+ 5. **อัปเดต Nginx** ด้วยการตั้งค่า HTTPS
150
+ 6. **Reload Nginx** เพื่อใช้การเปลี่ยนแปลง
151
+ 7. **ทำ health checks** (หากตั้งค่าแล้ว)
152
+
153
+ ## suthep down
154
+
155
+ หยุดบริการ (หยุด containers และปิดการใช้งาน Nginx configs)
156
+
157
+ ### การใช้งาน
158
+
159
+ ```bash
160
+ suthep down [service-name] [options]
161
+ ```
162
+
163
+ ### อาร์กิวเมนต์
164
+
165
+ | อาร์กิวเมนต์ | คำอธิบาย |
166
+ |------------|----------|
167
+ | `service-name` | ชื่อของบริการที่จะหยุด (ไม่บังคับ) |
168
+
169
+ ### ตัวเลือก
170
+
171
+ | ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
172
+ |---------|--------|----------|-----------|
173
+ | `--file` | `-f` | Path ไฟล์การตั้งค่า | `suthep.yml` |
174
+ | `--all` | - | หยุดบริการทั้งหมด | `false` |
175
+
176
+ ### ตัวอย่าง
177
+
178
+ ```bash
179
+ # หยุดบริการเฉพาะ
180
+ suthep down api
181
+
182
+ # หยุดบริการทั้งหมด
183
+ suthep down --all
184
+
185
+ # หยุดด้วย config แบบกำหนดเอง
186
+ suthep down api -f production.yml
187
+ ```
188
+
189
+ ### สิ่งที่มันทำ
190
+
191
+ 1. **หยุด Docker containers** (หากตั้งค่าแล้ว)
192
+ 2. **ปิดการใช้งานการตั้งค่า Nginx**
193
+ 3. **Reload Nginx** เพื่อใช้การเปลี่ยนแปลง
194
+
195
+ ## suthep up
196
+
197
+ เริ่มบริการ (เริ่ม containers และเปิดใช้งาน Nginx configs)
198
+
199
+ ### การใช้งาน
200
+
201
+ ```bash
202
+ suthep up [service-name] [options]
203
+ ```
204
+
205
+ ### อาร์กิวเมนต์
206
+
207
+ | อาร์กิวเมนต์ | คำอธิบาย |
208
+ |------------|----------|
209
+ | `service-name` | ชื่อของบริการที่จะเริ่ม (ไม่บังคับ) |
210
+
211
+ ### ตัวเลือก
212
+
213
+ | ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
214
+ |---------|--------|----------|-----------|
215
+ | `--file` | `-f` | Path ไฟล์การตั้งค่า | `suthep.yml` |
216
+ | `--all` | - | เริ่มบริการทั้งหมด | `false` |
217
+ | `--no-https` | - | ข้ามการตั้งค่า HTTPS | `false` |
218
+ | `--no-nginx` | - | ข้ามการตั้งค่า Nginx | `false` |
219
+
220
+ ### ตัวอย่าง
221
+
222
+ ```bash
223
+ # เริ่มบริการเฉพาะ
224
+ suthep up api
225
+
226
+ # เริ่มบริการทั้งหมด
227
+ suthep up --all
228
+
229
+ # เริ่มโดยไม่มี HTTPS
230
+ suthep up api --no-https
231
+ ```
232
+
233
+ ### สิ่งที่มันทำ
234
+
235
+ 1. **เริ่ม Docker containers** (หากตั้งค่าแล้ว)
236
+ 2. **เปิดใช้งานการตั้งค่า Nginx**
237
+ 3. **ตั้งค่า HTTPS** (หากเปิดใช้งาน)
238
+ 4. **Reload Nginx** เพื่อใช้การเปลี่ยนแปลง
239
+
240
+ ## suthep redeploy
241
+
242
+ Redeploy บริการ (หยุดและ deploy อีกครั้ง)
243
+
244
+ ### การใช้งาน
245
+
246
+ ```bash
247
+ suthep redeploy [service-name] [options]
248
+ ```
249
+
250
+ ### อาร์กิวเมนต์
251
+
252
+ | อาร์กิวเมนต์ | คำอธิบาย |
253
+ |------------|----------|
254
+ | `service-name` | ชื่อของบริการที่จะ redeploy (ไม่บังคับ) |
255
+
256
+ ### ตัวเลือก
257
+
258
+ | ตัวเลือก | ตัวย่อ | คำอธิบาย | ค่าเริ่มต้น |
259
+ |---------|--------|----------|-----------|
260
+ | `--file` | `-f` | Path ไฟล์การตั้งค่า | `suthep.yml` |
261
+ | `--all` | - | Redeploy บริการทั้งหมด | `false` |
262
+ | `--no-https` | - | ข้ามการตั้งค่า HTTPS | `false` |
263
+ | `--no-nginx` | - | ข้ามการตั้งค่า Nginx | `false` |
264
+
265
+ ### ตัวอย่าง
266
+
267
+ ```bash
268
+ # Redeploy บริการเฉพาะ
269
+ suthep redeploy api
270
+
271
+ # Redeploy บริการทั้งหมด
272
+ suthep redeploy --all
273
+
274
+ # Redeploy โดยไม่มี HTTPS
275
+ suthep redeploy api --no-https
276
+ ```
277
+
278
+ ### สิ่งที่มันทำ
279
+
280
+ 1. **หยุดบริการ** (หยุด containers, ปิดการใช้งาน Nginx)
281
+ 2. **Deploy บริการ** (เริ่ม containers, เปิดใช้งาน Nginx, ตั้งค่า HTTPS)
282
+
283
+ นี่เทียบเท่ากับการรัน `suthep down` ตามด้วย `suthep deploy`
284
+
285
+ ## ตัวเลือก Global
286
+
287
+ คำสั่งทั้งหมดรองรับ:
288
+
289
+ - `--help` หรือ `-h` - แสดงข้อความช่วยเหลือ
290
+ - `--version` หรือ `-V` - แสดงหมายเลขเวอร์ชัน
291
+
292
+ ### ตัวอย่าง
293
+
294
+ ```bash
295
+ # แสดงความช่วยเหลือสำหรับคำสั่ง deploy
296
+ suthep deploy --help
297
+
298
+ # แสดงเวอร์ชัน
299
+ suthep --version
300
+ ```
301
+
302
+ ## Workflow คำสั่ง
303
+
304
+ ### Workflow การ Deploy ทั่วไป
305
+
306
+ ```bash
307
+ # 1. เริ่มต้นการตั้งค่า
308
+ suthep init
309
+
310
+ # 2. ตั้งค่าสิ่งที่จำเป็น (ครั้งแรกเท่านั้น)
311
+ suthep setup
312
+
313
+ # 3. Deploy บริการ
314
+ suthep deploy
315
+ ```
316
+
317
+ ### Workflow การอัปเดต
318
+
319
+ ```bash
320
+ # 1. แก้ไข suthep.yml
321
+ nano suthep.yml
322
+
323
+ # 2. Redeploy
324
+ suthep redeploy
325
+ ```
326
+
327
+ ### Workflow การบำรุงรักษา
328
+
329
+ ```bash
330
+ # หยุดบริการเพื่อการบำรุงรักษา
331
+ suthep down --all
332
+
333
+ # ... ทำการบำรุงรักษา ...
334
+
335
+ # เริ่มบริการอีกครั้ง
336
+ suthep up --all
337
+ ```
338
+
339
+ ## Exit Codes
340
+
341
+ Suthep ใช้ exit codes ต่อไปนี้:
342
+
343
+ - `0` - สำเร็จ
344
+ - `1` - ข้อผิดพลาด (ข้อผิดพลาดการตั้งค่า, การ deploy ล้มเหลว, ฯลฯ)
345
+
346
+ ## การจัดการข้อผิดพลาด
347
+
348
+ หากคำสั่งล้มเหลว:
349
+
350
+ 1. **ตรวจสอบข้อความข้อผิดพลาด** - มักจะระบุสิ่งที่ผิดพลาด
351
+ 2. **ตรวจสอบการตั้งค่า** - ตรวจสอบว่า `suthep.yml` ถูกต้อง
352
+ 3. **ตรวจสอบสิ่งที่จำเป็น** - ตรวจสอบว่า Nginx และ Certbot ติดตั้งแล้ว
353
+ 4. **ตรวจสอบ logs** - ตรวจสอบ logs ของ Nginx และ Docker สำหรับรายละเอียด
354
+
355
+ ## ขั้นตอนถัดไป
356
+
357
+ - [ตัวอย่าง](./06-examples.md) - ดูคำสั่งในการทำงาน
358
+ - [การแก้ปัญหา](./07-troubleshooting.md) - ปัญหาที่พบบ่อยและวิธีแก้ไข
359
+
360
+ ---
361
+
362
+ **ก่อนหน้า:** [คู่มือการตั้งค่า](./04-configuration.md) | **ถัดไป:** [ตัวอย่าง →](./06-examples.md)
363
+