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.
Files changed (83) hide show
  1. package/.editorconfig +17 -0
  2. package/.github/workflows/publish.yml +42 -0
  3. package/.prettierignore +6 -0
  4. package/.prettierrc +7 -0
  5. package/.scannerwork/.sonar_lock +0 -0
  6. package/.scannerwork/report-task.txt +6 -0
  7. package/.vscode/settings.json +19 -0
  8. package/LICENSE +21 -0
  9. package/README.md +317 -0
  10. package/dist/commands/deploy.js +371 -0
  11. package/dist/commands/deploy.js.map +1 -0
  12. package/dist/commands/down.js +179 -0
  13. package/dist/commands/down.js.map +1 -0
  14. package/dist/commands/init.js +188 -0
  15. package/dist/commands/init.js.map +1 -0
  16. package/dist/commands/setup.js +90 -0
  17. package/dist/commands/setup.js.map +1 -0
  18. package/dist/commands/up.js +213 -0
  19. package/dist/commands/up.js.map +1 -0
  20. package/dist/index.js +66 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/utils/certbot.js +64 -0
  23. package/dist/utils/certbot.js.map +1 -0
  24. package/dist/utils/config-loader.js +127 -0
  25. package/dist/utils/config-loader.js.map +1 -0
  26. package/dist/utils/deployment.js +85 -0
  27. package/dist/utils/deployment.js.map +1 -0
  28. package/dist/utils/docker.js +425 -0
  29. package/dist/utils/docker.js.map +1 -0
  30. package/dist/utils/env-loader.js +53 -0
  31. package/dist/utils/env-loader.js.map +1 -0
  32. package/dist/utils/nginx.js +378 -0
  33. package/dist/utils/nginx.js.map +1 -0
  34. package/docs/README.md +38 -0
  35. package/docs/english/01-introduction.md +84 -0
  36. package/docs/english/02-installation.md +200 -0
  37. package/docs/english/03-quick-start.md +258 -0
  38. package/docs/english/04-configuration.md +433 -0
  39. package/docs/english/05-commands.md +336 -0
  40. package/docs/english/06-examples.md +456 -0
  41. package/docs/english/07-troubleshooting.md +417 -0
  42. package/docs/english/08-advanced.md +411 -0
  43. package/docs/english/README.md +48 -0
  44. package/docs/thai/01-introduction.md +84 -0
  45. package/docs/thai/02-installation.md +200 -0
  46. package/docs/thai/03-quick-start.md +258 -0
  47. package/docs/thai/04-configuration.md +433 -0
  48. package/docs/thai/05-commands.md +336 -0
  49. package/docs/thai/06-examples.md +456 -0
  50. package/docs/thai/07-troubleshooting.md +417 -0
  51. package/docs/thai/08-advanced.md +411 -0
  52. package/docs/thai/README.md +48 -0
  53. package/example/suthep-complete.yml +103 -0
  54. package/example/suthep-docker-only.yml +71 -0
  55. package/example/suthep-env-example.yml +113 -0
  56. package/example/suthep-no-docker.yml +51 -0
  57. package/example/suthep-path-routing.yml +62 -0
  58. package/example/suthep.example.yml +88 -0
  59. package/package.json +51 -0
  60. package/src/commands/deploy.ts +488 -0
  61. package/src/commands/down.ts +240 -0
  62. package/src/commands/init.ts +214 -0
  63. package/src/commands/setup.ts +112 -0
  64. package/src/commands/up.ts +271 -0
  65. package/src/index.ts +109 -0
  66. package/src/types/config.ts +52 -0
  67. package/src/utils/__tests__/certbot.test.ts +222 -0
  68. package/src/utils/__tests__/config-loader.test.ts +419 -0
  69. package/src/utils/__tests__/deployment.test.ts +243 -0
  70. package/src/utils/__tests__/nginx.test.ts +412 -0
  71. package/src/utils/certbot.ts +144 -0
  72. package/src/utils/config-loader.ts +184 -0
  73. package/src/utils/deployment.ts +157 -0
  74. package/src/utils/docker.ts +768 -0
  75. package/src/utils/env-loader.ts +135 -0
  76. package/src/utils/nginx.ts +443 -0
  77. package/suthep-1.0.0.tgz +0 -0
  78. package/suthep.example.yml +98 -0
  79. package/suthep.yml +39 -0
  80. package/todo.md +6 -0
  81. package/tsconfig.json +26 -0
  82. package/vite.config.ts +46 -0
  83. package/vitest.config.ts +21 -0
@@ -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
+
@@ -0,0 +1,103 @@
1
+ # Complete Example Configuration
2
+ # This combines all service types for a comprehensive deployment
3
+
4
+ project:
5
+ name: my-app
6
+ version: 1.0.0
7
+
8
+ services:
9
+ # Service 1: Simple API without Docker (runs directly on host)
10
+ - name: api
11
+ port: 3000
12
+ domains:
13
+ - api.example.com
14
+ - www.api.example.com
15
+ healthCheck:
16
+ path: /health
17
+ interval: 30
18
+ environment:
19
+ NODE_ENV: production
20
+ PORT: 3000
21
+
22
+ # Service 2: Web application with Docker image
23
+ - name: webapp
24
+ port: 8080
25
+ docker:
26
+ image: nginx:latest
27
+ container: webapp-container
28
+ port: 80
29
+ domains:
30
+ - example.com
31
+ - www.example.com
32
+ healthCheck:
33
+ path: /
34
+ interval: 30
35
+
36
+ # Service 3: Dashboard with Docker and environment variables
37
+ - name: dashboard
38
+ port: 5000
39
+ docker:
40
+ image: myapp/dashboard:latest
41
+ container: dashboard-container
42
+ port: 5000
43
+ domains:
44
+ - dashboard.example.com
45
+ - admin.example.com
46
+ healthCheck:
47
+ path: /api/health
48
+ interval: 60
49
+ environment:
50
+ DATABASE_URL: postgresql://localhost:5432/dashboard
51
+ REDIS_URL: redis://localhost:6379
52
+
53
+ # Service 4: Connect to existing Docker container
54
+ - name: database-proxy
55
+ port: 5432
56
+ docker:
57
+ container: postgres-container
58
+ port: 5432
59
+ domains:
60
+ - db.example.com
61
+
62
+ # Service 5: Path-based routing - API on /api path
63
+ - name: api-v2
64
+ port: 3001
65
+ path: /api
66
+ domains:
67
+ - example.com
68
+ docker:
69
+ image: myapp/api:latest
70
+ container: api-v2-container
71
+ port: 3001
72
+ healthCheck:
73
+ path: /health
74
+ interval: 30
75
+
76
+ # Service 6: Path-based routing - UI on root path
77
+ - name: ui
78
+ port: 3000
79
+ path: /
80
+ domains:
81
+ - www.example.com
82
+ docker:
83
+ image: myapp/ui:latest
84
+ container: ui-container
85
+ port: 3000
86
+ healthCheck:
87
+ path: /
88
+ interval: 30
89
+
90
+ # Nginx Configuration
91
+ nginx:
92
+ configPath: /etc/nginx/sites-available
93
+ reloadCommand: sudo nginx -t && sudo systemctl reload nginx
94
+
95
+ # Certbot Configuration (SSL/TLS certificates)
96
+ certbot:
97
+ email: admin@example.com
98
+ staging: false # Set to true for testing
99
+
100
+ # Deployment Strategy
101
+ deployment:
102
+ strategy: rolling # Options: rolling, blue-green
103
+ healthCheckTimeout: 30000 # milliseconds
@@ -0,0 +1,71 @@
1
+ # Example: Configuration with Docker Only
2
+ # All services are deployed as Docker containers
3
+
4
+ project:
5
+ name: docker-app
6
+ version: 1.0.0
7
+
8
+ services:
9
+ # Frontend application
10
+ - name: frontend
11
+ port: 3000
12
+ docker:
13
+ image: myapp/frontend:latest
14
+ container: frontend-container
15
+ port: 3000
16
+ domains:
17
+ - example.com
18
+ - www.example.com
19
+ healthCheck:
20
+ path: /
21
+ interval: 30
22
+
23
+ # Backend API
24
+ - name: backend
25
+ port: 4000
26
+ docker:
27
+ image: myapp/backend:latest
28
+ container: backend-container
29
+ port: 4000
30
+ domains:
31
+ - api.example.com
32
+ healthCheck:
33
+ path: /api/health
34
+ interval: 30
35
+ environment:
36
+ NODE_ENV: production
37
+ DATABASE_URL: postgresql://db:5432/mydb
38
+
39
+ # Worker service
40
+ - name: worker
41
+ port: 5000
42
+ docker:
43
+ image: myapp/worker:latest
44
+ container: worker-container
45
+ port: 5000
46
+ domains:
47
+ - worker.example.com
48
+ healthCheck:
49
+ path: /health
50
+ interval: 60
51
+
52
+ # Redis proxy (connecting to existing container)
53
+ - name: redis-proxy
54
+ port: 6379
55
+ docker:
56
+ container: redis-container
57
+ port: 6379
58
+ domains:
59
+ - redis.example.com
60
+
61
+ nginx:
62
+ configPath: /etc/nginx/sites-available
63
+ reloadCommand: sudo nginx -t && sudo systemctl reload nginx
64
+
65
+ certbot:
66
+ email: admin@example.com
67
+ staging: false
68
+
69
+ deployment:
70
+ strategy: rolling
71
+ healthCheckTimeout: 30000