เอกสารโครงสร้างระบบ FindDoctor สำหรับทีม IT Support

สำหรับ: IT Support Staff (ทุกระดับ)
วันที่อัปเดต: 24 พฤษภาคม 2026
เวอร์ชัน: 2.0
รูปแบบ: เอกสารฉบับเดียวครบจบ (แบ่งเป็น 4 ระดับ)


สารบัญ

  1. ส่วนที่ 1: พื้นฐาน (สำหรับ IT Support ทั่วไป)
  2. ส่วนที่ 2: ระดับกลาง (สำหรับ IT Support ที่มีประสบการณ์)
  3. ส่วนที่ 3: ระดับสูง (สำหรับ Senior IT Support / DevOps)
  4. ส่วนที่ 4: ภาคผนวก (Reference)

ส่วนที่ 1: พื้นฐาน (สำหรับ IT Support ทั่วไป)

1.1 ภาพรวมระบบง่ายๆ

FindDoctor คือแพลตฟอร์มจองนัดหมายทางการแพทย์ (Healthcare Booking Platform) ที่ให้บริการทั้งบน เว็บ, iOS และ Android จากฐานโค้ดเดียวกัน ผู้ป่วยสามารถค้นหาแพทย์ จองนัดหมาย จ่ายเงิน แชทกับแพทย์ และรับการแจ้งเตือนได้

ส่วนประกอบหลักของระบบ

┌─────────────────────────────────────────────────────────┐
│                     ผู้ใช้งาน (Users)                       │
└────────────────────────┬────────────────────────────────┘
                         │
            ┌────────────┴────────────┐
            ▼                         ▼
     ┌──────────────┐          ┌──────────────┐
     │  Mobile App  │          │   Web App    │
     │  (iOS/Android)│          │  (Browser)   │
     └──────┬───────┘          └──────┬───────┘
            │                         │
            └────────────┬────────────┘
                         │
                         ▼
              ┌─────────────────────┐
              │   Load Balancer     │
              │   (Cloudflare CDN)  │
              └──────────┬──────────┘
                         │
                         ▼
              ┌─────────────────────┐
              │   Nginx Reverse     │
              │   Proxy + SSL       │
              │   (Let's Encrypt)   │
              └──────────┬──────────┘
                         │
            ┌────────────┴────────────┐
            ▼                         ▼
   ┌────────────────┐       ┌────────────────┐
   │   Frontend     │       │    Backend     │
   │   (React/Expo) │       │   (Koa.js)     │
   └────────────────┘       └───────┬────────┘
                                     │
                    ┌────────────────┼────────────────┐
                    ▼                ▼                ▼
            ┌──────────┐     ┌──────────┐     ┌──────────┐
            │ MariaDB  │     │  Redis   │     │   AWS    │
            │ (Database)│     │  (Cache) │     │ (Cognito,│
            └──────────┘     └──────────┘     │  SNS, S3)│
                                               └──────────┘

บทบาทของผู้ใช้ (User Roles)

บทบาท คำอธิบาย สิทธิ์หลัก
Patient (ผู้ป่วย) ผู้ใช้ทั่วไป จองนัดหมาย, แชท, เขียนรีวิว
Clinic Staff (เจ้าหน้าที่คลินิก) แพทย์, พยาบาล, เภสัชกร, ฯลฯ จัดการนัดหมายภายในคลินิก
Clinic Admin (ผู้ดูแลคลินิก) แอดมินของคลินิก จัดการคลินิก สาขา แพทย์ รายการสินค้า
System Admin (ผู้ดูแลระบบ) แอดมินระดับแพลตฟอร์ม จัดการระบบทั้งหมด

1.2 วิธีเช็คสถานะระบบ

วิธีตรวจสอบว่าระบบทำงานปกติหรือไม่

  1. เช็ค Backend
  2. เช็ค Frontend
  3. เช็ค Container
    docker ps

    ควรเห็นสถานะ Up ทุก container

  4. เช็ค Logs แบบ real-time
    docker compose logs -f

    กด Ctrl+C เพื่อหยุดดู

  5. เช็คผ่าน Dozzle (Log Viewer)

1.3 คำสั่งพื้นฐานที่ใช้บ่อย

คำสั่ง Docker Compose (รันที่ /var/www/html/finddoctor.cloud/backend หรือ /var/www/html/finddoctor.cloud/frontend)

# ดูสถานะ container ทั้งหมด
docker compose ps

# ดู logs แบบ real-time (ทุก container)
docker compose logs -f

# ดู logs เฉพาะ backend
docker compose logs -f clinic-app

# ดู logs เฉพาะ frontend
docker compose logs -f web-prod

# Restart ทั้งหมด
docker compose restart

# Restart เฉพาะ backend
docker compose restart clinic-app

# Start container ที่หยุดไว้
docker compose up -d

# Stop ทั้งหมด
docker compose stop

# Deploy ใหม่ (ใช้ Makefile)
make deploy

คำสั่งเชื่อมต่อ Database และ Redis

# เชื่อมต่อ MariaDB (backend)
docker compose exec mariadb mariadb -u clinic_user -p clinic_appointment

# เชื่อมต่อ Redis (backend)
docker compose exec redis redis-cli -a redispassword

# ตรวจสอบพื้นที่ disk
df -h

# ตรวจสอบ CPU/Memory
htop

1.4 ปัญหาที่พบบ่อยและวิธีแก้ไขเบื้องต้น

อาการ สาเหตุที่เป็นไปได้ วิธีแก้ไขเบื้องต้น
502 Bad Gateway Container ล่ม / ยังไม่ start docker compose up -d
ระบบช้า Redis เต็ม / DB connection pool เต็ม ตรวจสอบ docker stats
ไม่สามารถ login AWS Cognito ล่ม / Token หมดอายุ ลอง logout แล้ว login ใหม่
ไม่ได้รับการแจ้งเตือน Notification queue ค้าง ตรวจสอบ logs ของ notification
SSL Error ใบรับรองหมดอายุ ตรวจสอบ Let's Encrypt
เว็บไม่โหลด Nginx-proxy ล่ม docker restart nginx-proxy
ฐานข้อมูลไม่ตอบสนอง MariaDB ล่ม docker compose restart mariadb

1.5 จุดติดต่อสำคัญ

ช่องทางแจ้งเตือนและติดต่อ

กรณี ช่องทาง รายละเอียด
ระบบล่มฉุกเฉิน Slack/Line Group แจ้งทีม DevOps ทันที
ปัญหาทั่วไป Email ส่งมาที่ทีมพัฒนา
ตรวจสอบสถานะ Dozzle http://207.148.69.12:9999
API Docs Swagger https://api.finddoctor.cloud/api-docs

ส่วนที่ 2: ระดับกลาง (สำหรับ IT Support ที่มีประสบการณ์)

2.1 สถาปัตยกรรมระบบโดยละเอียด

Frontend (React Native / Expo)

Backend (Koa.js / Node.js)

Database (MariaDB)

Cache (Redis)

Authentication (AWS Cognito)

2.2 Infrastructure & Docker

Docker Compose Environments

ไฟล์ กรณีใช้ ส่วนประกอบ
docker-compose.dev.yml Development App + MariaDB + Redis + phpMyAdmin (hot-reload)
docker-compose.local.yml Local testing เหมือน dev แต่รันในเครื่อง
docker-compose.staging.yml Staging/Production App + Redis + Dozzle (ใช้ MariaDB ภายนอก)
docker-compose.yml Production App + MariaDB + Redis + phpMyAdmin

โครงสร้าง Container

Vultr VPS (207.148.69.12)
│
├─ nginx-proxy (reverse proxy, Let's Encrypt SSL)
│
├─ Backend Container (clinic-app)
│   ├─ Node.js 20 (Koa.js)
│   ├─ Port 3000
│   ├─ เชื่อมต่อ MariaDB, Redis
│   └─ Volume: uploads, logs, secret
│
├─ Frontend Container (web-prod)
│   ├─ Nginx Alpine
│   ├─ Port 80
│   └─ Serve static files (dist/)
│
├─ MariaDB Container (clinic-mariadb)
│   ├─ Port 3306
│   └─ Volume: mariadb_data
│
├─ Redis Container (clinic-redis)
│   ├─ Port 6379
│   └─ Volume: redis_data
│
├─ phpMyAdmin Container (clinic-phpmyadmin)
│   └─ Port 8081
│
└─ Dozzle Container (log viewer)
    └─ Port 9999

Network

2.3 การอ่านและวิเคราะห์ Logs

ตำแหน่ง Logs

Logs ตำแหน่ง วิธีดู
Backend logs/ folder (ใน container) docker compose logs -f clinic-app
Nginx /var/log/nginx/access.log, error.log docker compose exec web-prod cat /var/log/nginx/error.log
MariaDB ใน container docker compose logs -f mariadb
Redis ใน container docker compose logs -f redis

Log Levels (Pino)

Level ความหมาย ตัวอย่าง
fatal ระบบล่ม ไม่สามารถ start server ได้
error ข้อผิดพลาดรุนแรง Database connection failed
warn คำเตือน Rate limit ใกล้ถึง
info ข้อมูลทั่วไป Request received, response sent
debug Debug Query details, parameters
trace Trace Function entry/exit

การ Filter Logs

# ดู logs เฉพาะ error
docker compose logs clinic-app | grep "error"

# ดู logs ย้อนหลัง 100 บรรทัด
docker compose logs --tail=100 clinic-app

# ดู logs ตั้งแต่เวลาที่กำหนด
docker compose logs --since=2026-05-24T10:00:00 clinic-app

2.4 Health Check & Monitoring

Health Check Endpoints

Endpoint URL วิธีใช้
Backend Health https://api.finddoctor.cloud/health curl https://api.finddoctor.cloud/health
Frontend Health http://localhost/ (ใน container) wget --spider http://localhost/
Container Status docker ps ดู STATUS column

Resource Monitoring

# ดู CPU/Memory/Disk ของแต่ละ container
docker stats

# ดูพื้นที่ disk ทั้งหมด
df -h

# ดู memory ทั้งหมด
free -h

# ดู process ที่ใช้ CPU/Memory มาก
htop

2.5 CI/CD Pipeline

กระบวนการ Deploy (GitLab CI/CD)

Developer push code → branch "develop"
         │
         ▼
   GitLab CI/CD trigger
         │
         ▼
   SSH เข้า VPS (207.148.69.12)
         │
         ▼
   make deploy (Backend หรือ Frontend)
      1. git pull
      2. docker build
      3. docker compose up -d
      4. preflight-db
      5. db migrate
      6. restart nginx-proxy
      7. health check

Makefile Commands

# Deploy ทั้ง backend และ frontend
make deploy

# Deploy เฉพาะ backend
make deploy-backend

# Deploy เฉพาะ frontend
make deploy-frontend

# Rollback ไปเวอร์ชันก่อนหน้า
make rollback

# ตรวจสอบสถานะระบบ
make status

# Restart nginx-proxy
make restart-proxy

2.6 การสำรองข้อมูลและกู้คืน

Database Backup

# สำรองฐานข้อมูลทั้งหมด
docker compose exec mariadb mysqldump -u clinic_user -p clinic_appointment > backup_$(date +%Y%m%d_%H%M%S).sql

# สำรองเฉพาะโครงสร้าง (schema)
docker compose exec mariadb mysqldump -u clinic_user -p --no-data clinic_appointment > schema_backup.sql

# ผ่าน phpMyAdmin
# เข้า http://207.148.69.12:8081 → Export → Custom → กด Go

Restore Database

# กู้คืนจาก backup file
docker compose exec -T mariadb mariadb -u clinic_user -p clinic_appointment < backup_20260524_120000.sql

File Backup

# สำรอง uploads folder
tar -czvf uploads_backup_$(date +%Y%m%d).tar.gz /var/www/html/finddoctor.cloud/backend/uploads

# สำรอง logs folder
tar -czvf logs_backup_$(date +%Y%m%d).tar.gz /var/www/html/finddoctor.cloud/backend/logs

Redis Backup


ส่วนที่ 3: ระดับสูง (สำหรับ Senior IT Support / DevOps)

3.1 โครงสร้างโค้ดและโมดูล

Clean Architecture

ระบบแบ่งเลเยอร์โค้ดเป็น 3 ชั้นหลักในแต่ละโมดูล:

┌─────────────────────────────────┐
│  Entry Points (API Routes)      │  ← รับ request, validate input
├─────────────────────────────────┤
│  Domain Layer (Business Logic)  │  ← ประมวลผลธุรกิจ, validate กฎ
├─────────────────────────────────┤
│  Data Access (Repositories)     │  ← อ่าน/เขียนฐานข้อมูล
└─────────────────────────────────┘

โมดูลธุรกิจ (18 โมดูลหลัก)

โมดูล หน้าที่ Path
auth การเข้าสู่ระบบ / สมัครสมาชิก apps/auth/
users จัดการโปรไฟล์ผู้ใช้ apps/users/
bookings การจองนัดหมาย apps/bookings/
clinics จัดการคลินิก, สาขา, แพทย์, ห้อง apps/clinics/
payments การชำระเงิน / ใบเสร็จ apps/payments/
chat ระบบแชท (E2E encryption) apps/chat/
notifications การแจ้งเตือน apps/notifications/
search ค้นหาแพทย์ / คลินิก apps/search/
reviews การเขียนรีวิว apps/reviews/
insurance ประกันสุขภาพ apps/insurance/
medical-categories ประเภทการรักษาแพทย์ apps/medical-categories/
data-consent การยินยอมข้อมูล (PDPA) apps/data-consent/
translation แปลภาษา (Google Cloud) apps/translation/
policies นโยบายสิทธิ์การใช้งาน apps/policies/
settings ตั้งค่าระบบ apps/settings/
admins จัดการระบบ admin apps/admins/

Shared Libraries (11 Libraries)

Package หน้าที่ Path
@clinic/config Config กลาง + Joi validation + enums libraries/config/
@clinic/database Sequelize manager, Redis manager, ~65 models libraries/database/
@clinic/logger Pino structured logging libraries/logger/
@clinic/response Error handler, response formatter libraries/response/
@clinic/middleware Auth guards, audit, security libraries/middleware/
@clinic/abac Attribute-Based Access Control libraries/abac/
@clinic/cognito-auth AWS Cognito authentication libraries/cognito-auth/
@clinic/notification Multi-channel notification engine libraries/notification/
@clinic/translation Google Cloud Translation libraries/translation/
@clinic/csv-import CSV file import utilities libraries/csv-import/

Middleware Pipeline (14 ขั้นตอน)

เมื่อมี request เข้ามาสู่ Koa.js จะผ่าน middleware ตามลำดับ:

Request
  │
  ├─ 1. koa-helmet          → Security headers
  ├─ 2. Security middleware → ป้องกัน path traversal, IP blocklist
  ├─ 3. CORS                → อนุญาต cross-origin requests
  ├─ 4. S3 image streaming  → ดึงรูปจาก S3
  ├─ 5. Static files        → ให้ไฟล์ static (fallback)
  ├─ 6. Rate limiting       → จำกัด request ต่อเวลา (ป้องกัน DDoS)
  ├─ 7. Request logging     → บันทึก log ด้วย Pino
  ├─ 8. Body parser         → แปลง JSON/form body (limit 10MB)
  ├─ 9. Audit logging       → บันทึก audit trail
  ├─ 10. Response time      → เพิ่ม header X-Response-Time
  ├─ 11. Language extraction→ ดึงภาษาจาก query param ?lang=
  ├─ 12. Translation        → แปลภาษา (Google Cloud Translation)
  ├─ 13. Translation invalidation → จัดการ cache translation
  └─ 14. Routes             → ส่งต่อไปยัง router ที่ตรงกัน

3.2 การ Debug ปัญหาซับซ้อน

Trace Request

# ทดสอบ API endpoint ด้วย curl
curl -v https://api.finddoctor.cloud/health

# ทดสอบด้วย headers แบบเต็ม
curl -H "Authorization: Bearer <token>" https://api.finddoctor.cloud/api/v1/users/me

# ตรวจสอบ response time
curl -w "@curl-format.txt" -o /dev/null -s https://api.finddoctor.cloud/health

ตรวจสอบ Performance

# ดู response time จาก logs
docker compose logs clinic-app | grep "responseTime"

# ดู DB query time
docker compose logs clinic-app | grep "query"

# ดู Redis latency
docker compose exec redis redis-cli --latency

# ดู connection pool ของ DB
# (ผ่าน MariaDB client)
docker compose exec mariadb mariadb -u clinic_user -p -e "SHOW PROCESSLIST;"

Debug ใน Container

# เข้าไปใน backend container
docker compose exec clinic-app sh

# ดู environment variables
env | grep NODE

# ดู process ที่รันอยู่
ps aux

# ดู network connections
netstat -tlnp

# ดู disk usage ใน container
df -h

3.3 การจัดการ Incident รุนแรง

ขั้นตอนรับมือ Incident

1. Identify (ระบุปัญหา)
   → ตรวจสอบสถานะระบบ
   → ดู logs หาสาเหตุ
   → ประเมินความรุนแรง

2. Contain (ควบคุม)
   → แยกปัญหาไม่ให้กระจาย
   → ปิดบริการที่มีปัญหาชั่วคราว (ถ้าจำเป็น)

3. Mitigate (บรรเทา)
   → ทำให้ระบบกลับมาทำงานได้
   → Restart service, rollback, ฯลฯ

4. Resolve (แก้ไข)
   → แก้ไข root cause
   → Deploy fix

5. Post-mortem (สรุปบทเรียน)
   → เขียน incident report
   → ปรับปรุงกระบวนการ

Escalation Path

ระดับ ผู้รับผิดชอบ กรณี
L1 IT Support ปัญหาทั่วไป, ผู้ใช้แจ้ง
L2 Senior IT Support ปัญหาซับซ้อน, ระบบช้า
L3 DevOps / Developer ระบบล่ม, ข้อมูลรั่วไหล, security

Rollback ฉุกเฉิน

# Rollback ไปเวอร์ชันก่อนหน้า (ใช้ Makefile)
make rollback

# หรือ rollback Docker image ด้วย tag ก่อนหน้า
docker compose pull
docker compose up -d

# ถ้าต้องการ rollback database migration
# (ระวัง! อาจสูญเสียข้อมูล)
npx sequelize-cli db:migrate:undo

3.4 การปรับแต่งและ Optimize

Database Tuning

# ดู slow queries (ใน MariaDB)
docker compose exec mariadb mariadb -u clinic_user -p -e "SHOW FULL PROCESSLIST;"

# ดู table status
docker compose exec mariadb mariadb -u clinic_user -p -e "SHOW TABLE STATUS;"

# ตรวจสอบ index
docker compose exec mariadb mariadb -u clinic_user -p -e "SHOW INDEX FROM users;"

Redis Tuning

# ดู memory usage
docker compose exec redis redis-cli INFO memory

# ดู maxmemory policy
docker compose exec redis redis-cli CONFIG GET maxmemory-policy

# ล้าง cache ทั้งหมด (ระวัง!)
docker compose exec redis redis-cli FLUSHALL

Nginx Tuning

# ดู config ปัจจุบัน
docker compose exec nginx-proxy cat /etc/nginx/nginx.conf

# Reload nginx (ไม่ต้อง restart)
docker compose exec nginx-proxy nginx -s reload

Node.js Tuning

# เพิ่ม heap size (ถ้าหน่วยความจำไม่พอ)
NODE_OPTIONS="--max-old-space-size=4096" node index.js

# ดู Event Loop lag (ต้องเพิ่ม monitoring ในโค้ด)

3.5 การเพิ่มบริการใหม่

ขั้นตอนเพิ่ม Container ใหม่

  1. เพิ่ม service ใน docker-compose.yml หรือ docker-compose.staging.yml
  2. ตั้งค่า environment variables ใน .env
  3. ปรับ nginx config ถ้าจำเป็น
  4. รัน docker compose up -d
  5. ตรวจสอบ health check

ขั้นตอนเพิ่ม API Endpoint ใหม่

  1. สร้างโมดูลใหม่ใน apps/<module-name>/
  2. แบ่งเป็น entry-points, domain, data-access
  3. เพิ่ม route ใน index.js
  4. เพิ่ม Swagger documentation
  5. รัน tests
  6. Deploy ผ่าน GitLab CI/CD

ส่วนที่ 4: ภาคผนวก (Reference)

4.1 รายการเทคโนโลยีและเวอร์ชัน

Frontend Stack

เทคโนโลยี เวอร์ชัน หมายเหตุ
React 19.1.0 UI library หลัก
React Native 0.81.4 (New Architecture) รองรับ iOS/Android + Web
Expo 54.0.8 เครื่องมือ build/deploy
Expo Router 6.0.6 File-based routing
TypeScript 5.9.2 Type safety
TanStack React Query 5.90.5 Server state management
Socket.IO Client 4.8.3 Real-time communication
Axios - HTTP client
i18next - รองไทย/อังกฤษ
ฟอนต์หลัก Kanit (Thai + English)

Backend Stack

เทคโนโลยี เวอร์ชัน หมายเหตุ
Node.js 20+ Runtime
Koa.js 2.15.3 Web framework
Sequelize 6.37.7 ORM สำหรับฐานข้อมูล
MariaDB 10.11 ฐานข้อมูลหลัก
Redis 7.2 Cache & Queue
BullMQ 5.58.5 Job queue (แจ้งเตือน)
Socket.IO 4.8.1 Real-time server
Pino (Logger) 9.7 Structured logging
Joi (Validation) 17.13.3 Input validation
Swagger/OpenAPI 3.0 API documentation
ES Modules (native) import/export

Infrastructure Stack

ส่วน เทคโนโลยี
Hosting Vultr VPS
Container Docker + Docker Compose
Reverse Proxy nginx-proxy
SSL Let's Encrypt
CDN/DDoS Cloudflare
CI/CD GitLab CI
Source Control GitLab (gitlab.com)
Node Runtime node:20-alpine

4.2 รายการโดเมนและพอร์ต

โดเมน

โดเมน ชี้ไปที่ หมายเหตุ
finddoctor.cloud Frontend ฐาน URL หลัก
staging.finddoctor.cloud Frontend (staging) สภาพแวดล้อม staging
api.finddoctor.cloud Backend API API endpoint
finddoctor.co.th Frontend โดเมนสำรอง
staging.finddoctor.co.th Frontend (staging) staging สำรอง
api.finddoctor.co.th Backend API API สำรอง

พอร์ต

พอร์ต บริการ หมายเหตุ
80 Frontend (Nginx) HTTP
3000 Backend (Koa.js) API
3306 MariaDB Database
6379 Redis Cache
8081 phpMyAdmin DB Admin
9999 Dozzle Log Viewer

4.3 รายการ Environment Variables สำคัญ

หมายเหตุ: ไม่รวม secret/password ควรดูในไฟล์ .env บน server
ตัวแปร คำอธิบาย ตัวอย่าง
NODE_ENV สภาพแวดล้อม development, production
ALLOWED_ORIGINS โดเมนที่อนุญาต CORS https://finddoctor.cloud
VIRTUAL_HOST โดเมนสำหรับ nginx-proxy api.finddoctor.cloud
DATABASE_URL URL ฐานข้อมูล mariadb://user:pass@host:3306/db
REDIS_URL URL Redis redis://host:6379
AWS_REGION AWS Region ap-southeast-1
COGNITO_USER_POOL_ID Cognito User Pool ID ap-southeast-1_xxxxxxxxx
MAILGUN_DOMAIN Mailgun Domain mg.finddoctor.cloud

4.4 แผนภาพเครือข่าย

                             Internet
                                │
                                ▼
                    ┌─────────────────────┐
                    │   Cloudflare CDN    │
                    │  (Flexible SSL/DDoS)│
                    └──────────┬──────────┘
                               │
                               ▼
                    ┌─────────────────────┐
                    │   Vultr VPS         │
                    │   207.148.69.12     │
                    │                     │
                    │  ┌───────────────┐  │
                    │  │  nginx-proxy  │  │
                    │  │  (Let's Encrypt)│  │
                    │  └──────┬────────┘  │
                    │         │            │
                    │  ┌──────┴──────┐    │
                    │  │             │    │
                    │  ▼             ▼    │
                    │ ┌────┐      ┌────┐   │
                    │ │ BE │      │ FE │   │
                    │ │:3000│      │:80 │   │
                    │ └──┬─┘      └────┘   │
                    │    │                  │
                    │    ├─▶ MariaDB :3306  │
                    │    ├─▶ Redis   :6379  │
                    │    ├─▶ AWS Cognito    │
                    │    ├─▶ AWS SNS        │
                    │    ├─▶ AWS S3         │
                    │    ├─▶ Google Cloud   │
                    │    │   (Translation)  │
                    │    ├─▶ Mailgun (Email)│
                    │    ├─▶ LINE API       │
                    │    ├─▶ Meta WhatsApp  │
                    │    └─▶ Firebase (Push)│
                    └───────────────────────┘

บริการภายนอกที่เชื่อมต่อ

บริการ ใช้สำหรับ
AWS Cognito Authentication, User Pool
AWS S3 เก็บรูปภาพไฟล์ upload
AWS SNS ส่ง SMS
Google Cloud Translation แปลภาษาอัตโนมัติ
Mailgun ส่งอีเมล
LINE Messaging API แจ้งเตือนผ่าน LINE
Meta WhatsApp Cloud API แจ้งเตือนผ่าน WhatsApp
WeChat Official Account แจ้งเตือนผ่าน WeChat
Firebase Cloud Messaging Push notification (Android)
Apple Push Notification (APNs) Push notification (iOS)
Cloudflare CDN, DDoS protection, SSL

หมายเหตุสำคัญ

  1. เอกสารนี้จัดทำเมื่อวันที่ 24 พฤษภาคม 2026 — หากมีการเปลี่ยนแปลงโครงสร้างระบบ กรุณาอัปเดตเอกสารนี้ให้ตรงตามจริง
  2. อย่าแชร์ secret/password ในเอกสารนี้ — เก็บไว้ในไฟล์ .env บน server เท่านั้น
  3. ทดสอบคำสั่งใน staging ก่อน production — เพื่อป้องกันความเสียหาย
  4. บันทึกทุกการแก้ไขปัญหา — เพื่อใช้เป็นข้อมูลอ้างอิงในอนาคต

เอกสารฉบับนี้จัดทำสำหรับทีม IT Support ทุกระดับ — ตั้งแต่พื้นฐานจนถึงระดับสูง