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
@@ -0,0 +1,411 @@
1
+ # หัวข้อขั้นสูง
2
+
3
+ คู่มือนี้ครอบคลุมตัวเลือกการตั้งค่าขั้นสูงและเทคนิคการเพิ่มประสิทธิภาพสำหรับ Suthep
4
+
5
+ ## การตั้งค่าขั้นสูง
6
+
7
+ ### การตั้งค่า Nginx แบบกำหนดเอง
8
+
9
+ ในขณะที่ Suthep สร้างการตั้งค่า Nginx อัตโนมัติ คุณสามารถปรับแต่งได้โดยแก้ไขไฟล์ที่สร้างขึ้น:
10
+
11
+ ```bash
12
+ # แก้ไข config ที่สร้างขึ้น
13
+ sudo nano /etc/nginx/sites-available/example_com.conf
14
+ ```
15
+
16
+ **หมายเหตุ:** การแก้ไขด้วยตนเองอาจถูกเขียนทับเมื่อ redeploy พิจารณาใช้ Nginx includes สำหรับการตั้งค่าแบบกำหนดเอง
17
+
18
+ ### การตั้งค่าตามสภาพแวดล้อม
19
+
20
+ ใช้ไฟล์การตั้งค่าต่างกันสำหรับสภาพแวดล้อมต่างๆ:
21
+
22
+ ```bash
23
+ # Development
24
+ suthep deploy -f suthep.dev.yml
25
+
26
+ # Staging
27
+ suthep deploy -f suthep.staging.yml
28
+
29
+ # Production
30
+ suthep deploy -f suthep.prod.yml
31
+ ```
32
+
33
+ ### กลยุทธ์การ Deploy หลายแบบ
34
+
35
+ ตั้งค่ากลยุทธ์ต่างๆ ต่อบริการ (ฟีเจอร์ในอนาคต):
36
+
37
+ ```yaml
38
+ services:
39
+ - name: api
40
+ deployment:
41
+ strategy: blue-green
42
+ - name: webapp
43
+ deployment:
44
+ strategy: rolling
45
+ ```
46
+
47
+ ## การเพิ่มประสิทธิภาพ
48
+
49
+ ### การเพิ่มประสิทธิภาพ Health Check
50
+
51
+ เพิ่มประสิทธิภาพช่วงเวลา health check ตามความสำคัญของบริการ:
52
+
53
+ ```yaml
54
+ # บริการที่สำคัญ - ตรวจสอบบ่อย
55
+ services:
56
+ - name: payment-api
57
+ healthCheck:
58
+ interval: 15 # ตรวจสอบทุก 15 วินาที
59
+
60
+ # บริการที่สำคัญน้อยกว่า - ตรวจสอบน้อยลง
61
+ services:
62
+ - name: analytics
63
+ healthCheck:
64
+ interval: 120 # ตรวจสอบทุก 2 นาที
65
+ ```
66
+
67
+ ### การปรับแต่ง Deployment Timeout
68
+
69
+ ปรับ health check timeouts สำหรับบริการที่เริ่มช้า:
70
+
71
+ ```yaml
72
+ deployment:
73
+ healthCheckTimeout: 60000 # 60 วินาทีสำหรับบริการที่ช้า
74
+ ```
75
+
76
+ ### การจัดการทรัพยากร
77
+
78
+ ตรวจสอบและจัดการทรัพยากร:
79
+
80
+ ```bash
81
+ # ตรวจสอบทรัพยากร Docker
82
+ docker stats
83
+
84
+ # ตรวจสอบการเชื่อมต่อ Nginx
85
+ sudo nginx -V # ตรวจสอบ worker processes
86
+ ```
87
+
88
+ ## วิธีปฏิบัติด้านความปลอดภัยที่ดี
89
+
90
+ ### การตั้งค่า SSL/TLS
91
+
92
+ ตรวจสอบการตั้งค่า SSL ที่แข็งแกร่ง:
93
+
94
+ 1. **ใช้ใบรับรอง Production**
95
+ ```yaml
96
+ certbot:
97
+ staging: false # ใช้ใบรับรอง production
98
+ ```
99
+
100
+ 2. **ตรวจสอบวันหมดอายุของใบรับรอง**
101
+ ```bash
102
+ sudo certbot certificates
103
+ ```
104
+
105
+ 3. **ตั้งค่า Auto-Renewal**
106
+ ```bash
107
+ # Certbot auto-renewal (มักตั้งค่าอัตโนมัติ)
108
+ sudo certbot renew --dry-run
109
+ ```
110
+
111
+ ### การตั้งค่า Firewall
112
+
113
+ ตั้งค่ากฎ firewall:
114
+
115
+ ```bash
116
+ # อนุญาต HTTP และ HTTPS
117
+ sudo ufw allow 80/tcp
118
+ sudo ufw allow 443/tcp
119
+
120
+ # ปฏิเสธการเข้าถึงพอร์ตบริการโดยตรง
121
+ sudo ufw deny 3000/tcp
122
+ ```
123
+
124
+ ### ความปลอดภัยของ Container
125
+
126
+ รักษาความปลอดภัย Docker containers:
127
+
128
+ ```yaml
129
+ services:
130
+ - name: api
131
+ docker:
132
+ image: myapp/api:latest
133
+ container: api-container
134
+ # พิจารณาเพิ่ม:
135
+ # - Resource limits
136
+ # - Security options
137
+ # - Network isolation
138
+ ```
139
+
140
+ ## การตรวจสอบและ Logging
141
+
142
+ ### Nginx Access Logs
143
+
144
+ ตรวจสอบรูปแบบการเข้าถึง:
145
+
146
+ ```bash
147
+ # ตรวจสอบการเข้าถึงแบบ real-time
148
+ sudo tail -f /var/log/nginx/access.log
149
+
150
+ # วิเคราะห์รูปแบบการเข้าถึง
151
+ sudo cat /var/log/nginx/access.log | grep "GET /api"
152
+ ```
153
+
154
+ ### Docker Container Logs
155
+
156
+ ตรวจสอบ logs ของ container:
157
+
158
+ ```bash
159
+ # ติดตาม logs
160
+ docker logs -f <container-name>
161
+
162
+ # ดู 100 บรรทัดสุดท้าย
163
+ docker logs --tail 100 <container-name>
164
+
165
+ # Logs พร้อม timestamps
166
+ docker logs -t <container-name>
167
+ ```
168
+
169
+ ### การตรวจสอบ Health Check
170
+
171
+ ตรวจสอบสถานะ health check:
172
+
173
+ ```bash
174
+ # Health check ด้วยตนเอง
175
+ curl http://localhost:3000/health
176
+
177
+ # สคริปต์ตรวจสอบอัตโนมัติ
178
+ while true; do
179
+ curl -f http://localhost:3000/health || echo "Health check failed"
180
+ sleep 30
181
+ done
182
+ ```
183
+
184
+ ## กลยุทธ์การขยาย
185
+
186
+ ### Horizontal Scaling
187
+
188
+ Deploy หลาย instances:
189
+
190
+ ```yaml
191
+ services:
192
+ - name: api
193
+ port: 3000
194
+ instances: 3 # Deploy 3 instances
195
+ domains:
196
+ - api.example.com
197
+ ```
198
+
199
+ **หมายเหตุ:** นี่เป็นตัวอย่างแนวคิด การใช้งานปัจจุบันจัดการ single instances ต่อบริการ
200
+
201
+ ### Load Balancing
202
+
203
+ ใช้ Nginx สำหรับ load balancing (ขั้นสูง):
204
+
205
+ ```nginx
206
+ upstream api_backend {
207
+ server localhost:3000;
208
+ server localhost:3001;
209
+ server localhost:3002;
210
+ }
211
+ ```
212
+
213
+ ## การสำรองข้อมูลและการกู้คืน
214
+
215
+ ### การสำรองข้อมูลการตั้งค่า
216
+
217
+ สำรองข้อมูลการตั้งค่าของคุณ:
218
+
219
+ ```bash
220
+ # สำรองข้อมูลการตั้งค่า
221
+ cp suthep.yml suthep.yml.backup
222
+
223
+ # Version control
224
+ git add suthep.yml
225
+ git commit -m "Update deployment configuration"
226
+ ```
227
+
228
+ ### การสำรองข้อมูลการตั้งค่า Nginx
229
+
230
+ สำรองข้อมูลการตั้งค่า Nginx:
231
+
232
+ ```bash
233
+ # สำรองข้อมูล configs ของ Nginx ทั้งหมด
234
+ sudo tar -czf nginx-configs-backup.tar.gz /etc/nginx/sites-available/
235
+ ```
236
+
237
+ ### การสำรองข้อมูล Container
238
+
239
+ สำรองข้อมูล Docker containers:
240
+
241
+ ```bash
242
+ # Export container
243
+ docker export <container-name> > container-backup.tar
244
+
245
+ # หรือ commit เป็น image
246
+ docker commit <container-name> backup-image:latest
247
+ ```
248
+
249
+ ## การทำงานอัตโนมัติและ CI/CD
250
+
251
+ ### สคริปต์การ Deploy
252
+
253
+ สร้างสคริปต์การ deploy:
254
+
255
+ ```bash
256
+ #!/bin/bash
257
+ # deploy.sh
258
+
259
+ set -e
260
+
261
+ echo "Deploying services..."
262
+
263
+ # รัน tests
264
+ npm test
265
+
266
+ # Deploy
267
+ suthep deploy
268
+
269
+ echo "Deployment complete!"
270
+ ```
271
+
272
+ ### การรวม CI/CD
273
+
274
+ ตัวอย่าง workflow GitHub Actions:
275
+
276
+ ```yaml
277
+ name: Deploy
278
+
279
+ on:
280
+ push:
281
+ branches: [main]
282
+
283
+ jobs:
284
+ deploy:
285
+ runs-on: ubuntu-latest
286
+ steps:
287
+ - uses: actions/checkout@v2
288
+ - uses: actions/setup-node@v2
289
+ with:
290
+ node-version: '16'
291
+ - run: npm install -g suthep
292
+ - run: suthep deploy
293
+ env:
294
+ SSH_KEY: ${{ secrets.SSH_KEY }}
295
+ ```
296
+
297
+ ## การใช้ Docker ขั้นสูง
298
+
299
+ ### Multi-Stage Builds
300
+
301
+ ใช้ multi-stage builds สำหรับ images ที่เพิ่มประสิทธิภาพ:
302
+
303
+ ```dockerfile
304
+ # Build stage
305
+ FROM node:16 AS builder
306
+ WORKDIR /app
307
+ COPY package*.json ./
308
+ RUN npm install
309
+ COPY . .
310
+ RUN npm run build
311
+
312
+ # Production stage
313
+ FROM node:16-alpine
314
+ WORKDIR /app
315
+ COPY --from=builder /app/dist ./dist
316
+ COPY --from=builder /app/node_modules ./node_modules
317
+ CMD ["node", "dist/index.js"]
318
+ ```
319
+
320
+ ### การรวม Docker Compose
321
+
322
+ ใช้ Docker Compose ร่วมกับ Suthep:
323
+
324
+ ```yaml
325
+ # docker-compose.yml
326
+ version: '3'
327
+ services:
328
+ database:
329
+ image: postgres:14
330
+ # ... database config
331
+ ```
332
+
333
+ จากนั้นเชื่อมต่อ Suthep กับ container:
334
+
335
+ ```yaml
336
+ services:
337
+ - name: api
338
+ docker:
339
+ container: myapp_database_1 # จาก docker-compose
340
+ port: 5432
341
+ ```
342
+
343
+ ## การแก้ปัญหาขั้นสูง
344
+
345
+ ### Performance Debugging
346
+
347
+ ระบุจุดอ bottleneck ของประสิทธิภาพ:
348
+
349
+ ```bash
350
+ # ตรวจสอบประสิทธิภาพ Nginx
351
+ sudo nginx -V # ตรวจสอบ compiled modules
352
+ sudo nginx -T # ทดสอบและแสดง config เต็ม
353
+
354
+ # ตรวจสอบทรัพยากรระบบ
355
+ htop
356
+ iostat
357
+ ```
358
+
359
+ ### Network Debugging
360
+
361
+ แก้ปัญหาปัญหาเครือข่าย:
362
+
363
+ ```bash
364
+ # ตรวจสอบ port binding
365
+ sudo netstat -tulpn | grep 3000
366
+
367
+ # ทดสอบการเชื่อมต่อ
368
+ curl -v http://localhost:3000
369
+
370
+ # ตรวจสอบ DNS
371
+ dig example.com
372
+ nslookup example.com
373
+ ```
374
+
375
+ ### Container Debugging
376
+
377
+ แก้ปัญหาปัญหา container:
378
+
379
+ ```bash
380
+ # ตรวจสอบ container
381
+ docker inspect <container-name>
382
+
383
+ # รันคำสั่งใน container
384
+ docker exec -it <container-name> /bin/sh
385
+
386
+ # ตรวจสอบเครือข่าย container
387
+ docker network ls
388
+ docker network inspect bridge
389
+ ```
390
+
391
+ ## สรุปวิธีปฏิบัติที่ดี
392
+
393
+ 1. **ใช้ Version Control** - ติดตามการเปลี่ยนแปลงการตั้งค่า
394
+ 2. **ทดสอบใน Staging** - ทดสอบเสมอก่อน production
395
+ 3. **ตรวจสอบ Health Checks** - ตั้งค่าช่วงเวลาที่เหมาะสม
396
+ 4. **สำรองข้อมูลการตั้งค่า** - สำรองข้อมูลเป็นประจำ
397
+ 5. **รักษาความปลอดภัยการเข้าถึง** - ใช้ HTTPS, ตั้งค่า firewalls
398
+ 6. **เพิ่มประสิทธิภาพทรัพยากร** - ตรวจสอบและเพิ่มประสิทธิภาพการใช้งาน
399
+ 7. **บันทึกการเปลี่ยนแปลง** - เก็บ deployment logs
400
+ 8. **ทำงานอัตโนมัติการ Deploy** - ใช้ CI/CD pipelines
401
+
402
+ ## ขั้นตอนถัดไป
403
+
404
+ - ตรวจสอบ [ตัวอย่าง](./06-examples.md) สำหรับกรณีการใช้งานจริง
405
+ - ดู [การแก้ปัญหา](./07-troubleshooting.md) สำหรับปัญหาที่พบบ่อย
406
+ - อ้างอิง [คู่มือการตั้งค่า](./04-configuration.md) สำหรับตัวเลือกทั้งหมด
407
+
408
+ ---
409
+
410
+ **ก่อนหน้า:** [การแก้ปัญหา](./07-troubleshooting.md) | **กลับไป:** [README](./README.md)
411
+
@@ -0,0 +1,48 @@
1
+ # คู่มือผู้ใช้ Suthep
2
+
3
+ ยินดีต้อนรับสู่คู่มือผู้ใช้ Suthep! คู่มือฉบับสมบูรณ์นี้จะช่วยให้คุณเข้าใจและใช้งาน Suthep เพื่อ deploy โปรเจกต์ของคุณได้อย่างง่ายดาย
4
+
5
+ ## สารบัญ
6
+
7
+ 1. [บทนำ](./01-introduction.md)
8
+ 2. [การติดตั้ง](./02-installation.md)
9
+ 3. [เริ่มต้นใช้งาน](./03-quick-start.md)
10
+ 4. [คู่มือการตั้งค่า](./04-configuration.md)
11
+ 5. [คำสั่งอ้างอิง](./05-commands.md)
12
+ 6. [ตัวอย่าง](./06-examples.md)
13
+ 7. [การแก้ปัญหา](./07-troubleshooting.md)
14
+ 8. [หัวข้อขั้นสูง](./08-advanced.md)
15
+
16
+ ## Suthep คืออะไร?
17
+
18
+ Suthep เป็นเครื่องมือ CLI ที่ทรงพลังสำหรับ deploy โปรเจกต์พร้อมการตั้งค่า Nginx reverse proxy อัตโนมัติ, HTTPS ด้วย Certbot, และการ deploy แบบ zero-downtime มันทำให้กระบวนการ deploy ง่ายขึ้นโดยการทำงานที่ซับซ้อนให้อัตโนมัติ
19
+
20
+ ## คุณสมบัติหลัก
21
+
22
+ - ✅ **Nginx Reverse Proxy อัตโนมัติ** - ตั้งค่า Nginx อัตโนมัติสำหรับบริการของคุณ
23
+ - ✅ **HTTPS อัตโนมัติ** - ตั้งค่าใบรับรอง SSL/TLS ด้วย Let's Encrypt ผ่าน Certbot
24
+ - ✅ **การ Deploy แบบ Zero-Downtime** - กลยุทธ์การ deploy แบบ rolling ทำให้บริการพร้อมใช้งานอย่างต่อเนื่อง
25
+ - ✅ **รองรับ Docker** - Deploy Docker containers หรือเชื่อมต่อกับ container ที่มีอยู่
26
+ - ✅ **หลายโดเมน** - รองรับหลายโดเมนและ subdomain ต่อบริการ
27
+ - ✅ **Health Checks** - การตรวจสอบสุขภาพบริการในตัวเพื่อความน่าเชื่อถือ
28
+ - ✅ **การตั้งค่า YAML** - รูปแบบไฟล์การตั้งค่าที่เรียบง่ายและประกาศได้
29
+
30
+ ## การนำทางด่วน
31
+
32
+ - **ใหม่กับ Suthep?** เริ่มต้นด้วย [บทนำ](./01-introduction.md) และ [เริ่มต้นใช้งาน](./03-quick-start.md)
33
+ - **ต้องการความช่วยเหลือในการตั้งค่า?** ดู [คู่มือการตั้งค่า](./04-configuration.md)
34
+ - **กำลังมองหาตัวอย่าง?** ดู [ตัวอย่าง](./06-examples.md)
35
+ - **มีปัญหา?** ไปที่ [การแก้ปัญหา](./07-troubleshooting.md)
36
+
37
+ ## ขอความช่วยเหลือ
38
+
39
+ หากคุณพบปัญหาหรือมีคำถาม:
40
+
41
+ 1. ตรวจสอบส่วน [การแก้ปัญหา](./07-troubleshooting.md)
42
+ 2. ดู [ตัวอย่าง](./06-examples.md) สำหรับกรณีการใช้งานทั่วไป
43
+ 3. ดู [คำสั่งอ้างอิง](./05-commands.md) สำหรับเอกสารคำสั่งโดยละเอียด
44
+
45
+ ---
46
+
47
+ **ถัดไป:** [บทนำ →](./01-introduction.md)
48
+