Files
lcbp3/docs/local-dev-setup.md
T
admin 7e6ad0d346
CI / CD Pipeline / build (push) Successful in 5m12s
CI / CD Pipeline / deploy (push) Successful in 1m58s
260518:1640 204 and 302 refactor #11
2026-05-18 16:40:16 +07:00

146 lines
3.3 KiB
Markdown

# Local Dev Setup Guide
> วิธีตั้งค่าและรัน Development Environment สำหรับ LCBP3 NAP-DMS
> อัปเดตล่าสุด: 2026-05-18
---
## Prerequisites
| Tool | Required Version |
|---|---|
| **Node.js** | `>=24.0.0` |
| **pnpm** | `>=10.33.0` |
| **Docker Desktop** | สำหรับ services stack |
ตรวจสอบ version:
```bash
node -v
pnpm -v
docker -v
```
---
## 1. Services Stack (Docker Compose)
รัน `docker-compose up -d` ใน `backend/`:
```bash
docker compose up -d
```
| Service | Port | Credentials |
|---|---|---|
| **MariaDB** | `3306` | user: `admin` / pass: `Center2025` / DB: `lcbp3_dev` |
| **Redis** | `16379` | password: `Center2025` |
| **Elasticsearch** | `9200` | No auth (dev mode) |
| **Qdrant** | `6333` | No auth |
| **phpMyAdmin** | `8080` | optional — ใช้ดู DB ผ่านเว็บ |
---
## 2. Environment Files
### Backend — `backend/.env`
Copy จาก `.env.example`:
```bash
cp backend/.env.example backend/.env
```
ค่าหลักที่ต้องแก้:
```dotenv
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=admin
DB_PASSWORD=Center2025
DB_DATABASE=lcbp3_dev
REDIS_HOST=localhost
REDIS_PORT=16379
REDIS_PASSWORD=Center2025
JWT_SECRET=<สร้างด้วย openssl rand -base64 32>
# AI services (ถ้าไม่ใช้ AI ให้ปล่อยค่าเดิมได้)
OLLAMA_URL=http://192.168.10.100:11434
AI_HOST_URL=http://192.168.10.100:11434
AI_QDRANT_URL=http://192.168.10.100:6333
```
### Frontend — `frontend/.env.local`
Copy จาก `.env.example`:
```bash
cp frontend/.env.example frontend/.env.local
```
ค่าหลักที่ต้องแก้:
```dotenv
NEXT_PUBLIC_API_URL=http://localhost:3001/api
AUTH_SECRET=<สร้างด้วย openssl rand -base64 32>
```
---
## 3. Install Dependencies
จาก root ของ project:
```bash
pnpm install
```
---
## 4. Start Dev Servers
```bash
# รันทั้ง backend + frontend พร้อมกัน (recommended)
pnpm dev
# หรือแยกรัน
pnpm dev:backend # NestJS → http://localhost:3001
pnpm dev:frontend # Next.js → http://localhost:3000
```
---
## 5. Seed Database (ครั้งแรก)
ถ้า DB ว่างหรือเพิ่ง setup ใหม่:
```bash
pnpm --filter backend seed
```
---
## Checklist ก่อน run
- [ ] Node.js `>=24` + pnpm `>=10.33.0` ติดตั้งแล้ว
- [ ] `docker compose up -d` รันใน `backend/` และ services ทุกตัว healthy
- [ ] `backend/.env` สร้างแล้ว และตั้ง `JWT_SECRET`
- [ ] `frontend/.env.local` สร้างแล้ว และตั้ง `AUTH_SECRET`
- [ ] `pnpm install` ที่ root สำเร็จ
- [ ] `pnpm --filter backend seed` รันแล้ว (ครั้งแรก)
- [ ] `pnpm dev` และ backend + frontend start สำเร็จ
---
## Dev URLs
| Service | URL |
|---|---|
| **Frontend** | http://localhost:3000 |
| **Backend API** | http://localhost:3001/api |
| **Swagger UI** | http://localhost:3001/api/docs |
| **phpMyAdmin** | http://localhost:8080 |
| **Elasticsearch** | http://localhost:9200 |
| **Qdrant Dashboard** | http://localhost:6333/dashboard |