New season — Spring/Summer drop now live

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

ถ้ายังไม่มี:


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. ลองในมุมลูกค้า

  1. เปิด http://localhost:3001/register
  2. สมัครบัญชีใหม่
  3. กลับหน้าแรก → เลือกสินค้า → “เพิ่มลงตะกร้า”
  4. /cart → “ดำเนินการชำระเงิน”
  5. เพิ่มที่อยู่จัดส่ง → ยืนยันคำสั่งซื้อ
  6. ใน /payment — upload รูปอะไรก็ได้เป็นสลิป

B. ลองในมุมร้าน (incognito window)

  1. http://localhost:3001/store/login
  2. Login owner@demo.local / Owner@1234 (จาก seed)
  3. /store/orders → กดออเดอร์ที่เพิ่งสร้าง
  4. “ยืนยันการชำระเงิน” → “เริ่มเตรียมสินค้า” → ตามขั้น

🎉 จบ — 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

Join the club

ของเด็ดส่งตรง
ถึงอินบ็อกซ์

สมัครรับข่าวสาร — รับส่วนลด 10% สำหรับสมาชิกใหม่ + อัปเดตคอลเลกชันก่อนใคร