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