Getting Started — 60 นาที จาก zero ถึงรันได้
Quick Start สำหรับ developer หรือคนมี Linux/Node พื้นฐาน ลองรันบนเครื่อง dev (laptop) ก่อนใน 1 ชั่วโมง — ก่อนเอาไป deploy production
ภาพรวม — 1 ชั่วโมงนี้จะได้อะไร
จบบทนี้คุณจะมี:
- ✅ ระบบรันบน laptop ที่ http://localhost:3001
- ✅ ฐานข้อมูล + API + เว็บ ทำงานครบ
- ✅ Login ได้ + เพิ่มสินค้าได้
- ✅ มีข้อมูลตัวอย่าง 24 สินค้า
(เปรียบเทียบกับ demo จริงที่ https://ecommerce.modelvault.cloud)
สิ่งที่ต้องเตรียม (5 นาที)
ตรวจว่ามี:
node -v # ต้อง v20 ขึ้นไป
docker -v # 24 ขึ้นไป
git --version
ถ้ายังไม่มี:
- Node.js: ดาวน์โหลด LTS จาก https://nodejs.org/
- Docker Desktop: https://www.docker.com/products/docker-desktop/
- Git: ส่วนใหญ่มาพร้อม OS
Step 1 — ดึง code (5 นาที)
ถ้าได้ access GitHub:
mkdir ~/lumora && cd ~/lumora
git clone https://github.com/<your-org>/ecommerce-api.git api
git clone https://github.com/<your-org>/ecommerce-web.git web
git clone https://github.com/<your-org>/ecommerce-mobile.git mobile
git clone https://github.com/<your-org>/ecommerce-monorepo.git monorepo
ถ้าได้เป็น .zip — แตกใน ~/lumora/ ให้มีโครงสร้างเดียวกัน
จัดให้เป็น:
~/lumora/
├── api/ (ecommerce-api)
├── web/ (ecommerce-web)
├── mobile/ (ecommerce-mobile)
└── monorepo/ (docs, design-brief, seed-design, infra)
├── docker-compose.yml
└── .env.example
Step 2 — ตั้ง env (5 นาที)
cd ~/lumora/monorepo
cp .env.example .env
แก้ .env:
POSTGRES_PASSWORD=lumora123
JWT_ACCESS_SECRET=<openssl rand -hex 32>
JWT_REFRESH_SECRET=<openssl rand -hex 32>
CORS_ORIGINS=http://localhost:3001
NUXT_PUBLIC_API_BASE=http://localhost:3000/api/v1
NUXT_PUBLIC_APP_NAME=YourShop
Generate JWT secret:
openssl rand -hex 32
# copy ผลลัพธ์ไปวางใน .env
Step 3 — สตาร์ทฐานข้อมูล (2 นาที)
cd ~/lumora/monorepo
docker compose up -d postgres redis
docker compose ps # ต้อง healthy ทั้งคู่
Step 4 — รัน API (15 นาที)
cd ~/lumora/api
cp .env.example .env # ใช้ค่า default ก่อนได้
npm install
npx prisma migrate dev --name init
npx prisma db seed
npm run start:dev
✅ พอเห็น 🚀 API listening on http://localhost:3000/api/v1 — เปิด terminal ใหม่ทำต่อ
ลองเช็ค:
curl http://localhost:3000/api/v1/health
# → {"status":"ok","ts":"..."}
เปิด browser → http://localhost:3000/docs (Swagger UI ของ API)
Step 5 — รันเว็บ (10 นาที)
Terminal ใหม่:
cd ~/lumora/web
cp .env.example .env
npm install --legacy-peer-deps
npm run dev
✅ พอเห็น Local: http://localhost:3001/ — เปิด browser
ลองคลิก:
- หน้าแรก → ต้องเห็น hero “Elevate everyday style”
- /products → ลิสต์สินค้า 24 ชิ้น
- /products/polo-shirt → product detail
- /docs → คู่มือ (อ่านอยู่นี่)
Step 6 — เพิ่ม product images (10 นาที, optional)
ถ้า demo data ยังไม่มีรูป — รันเพิ่ม:
cd ~/lumora/api
npm install --save-dev ts-node typescript # ติดชั่วคราว
npx ts-node scripts/seed-products.ts
จะ generate รูปจาก monorepo/seed-design/products/ ไปเก็บใน api/uploads/
Step 7 — ลองใช้จริง (10 นาที)
A. ลองในมุมลูกค้า
- เปิด http://localhost:3001/register
- สมัครบัญชีใหม่
- กลับหน้าแรก → เลือกสินค้า → “เพิ่มลงตะกร้า”
- /cart → “ดำเนินการชำระเงิน”
- เพิ่มที่อยู่จัดส่ง → ยืนยันคำสั่งซื้อ
- ใน /payment — upload รูปอะไรก็ได้เป็นสลิป
B. ลองในมุมร้าน (incognito window)
- http://localhost:3001/store/login
- Login
owner@demo.local/Owner@1234(จาก seed) - /store/orders → กดออเดอร์ที่เพิ่งสร้าง
- “ยืนยันการชำระเงิน” → “เริ่มเตรียมสินค้า” → ตามขั้น
🎉 จบ — Quick Start สำเร็จ
ขั้นต่อไป
| ถ้าคุณ… | ไปอ่าน… |
|---|---|
| อยากตั้งค่าร้านจริง (logo, บัญชีรับเงิน) | 03 — Store Setup |
| อยาก customize แบรนด์ | 07 — Customization |
| อยาก deploy ขึ้น production | 08 — Deployment |
| งานประจำวันของผู้ขาย | 04 — Admin Daily |
| ติดปัญหาตอน install | 10 — FAQ |
ติดปัญหาตอน Quick Start?
“npm install” error ใน web
npm install --legacy-peer-deps
Port 3000/3001 ใช้แล้ว
แก้ใน .env:
API_PORT=4000
WEB_PORT=4001
Docker postgres unhealthy
docker compose down -v # ⚠ ลบ data
docker compose up -d postgres redis
Prisma migration ค้าง
cd ~/lumora/api
rm -rf prisma/migrations
npx prisma migrate dev --name init
ยังไม่เจอ → 10 — FAQ หรือติดต่อทีม support
