# chees_images
**Repository Path**: chees_cn/chees_images
## Basic Information
- **Project Name**: chees_images
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-31
- **Last Updated**: 2026-04-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ๐ง Chees Images H5
ๅบไบ็งฏๅ็ณป็ป็ AI ๅพ็็ๆไธ็ฎก็ๅนณๅฐ
[English Documentation](README.en.md) | ไธญๆๆๆกฃ
---
## ๐ ้กน็ฎไป็ป
Chees Images H5 ๆฏไธไธช้ขๅ็จๆท็ AI ๅพ็็ๆๆๅกๅนณๅฐ๏ผ้็จ็งฏๅๅถ็ฎก็ๆจกๅผใ็จๆทๅฏไปฅ้่ฟๅกๅฏๅ
ๅผ็งฏๅ๏ผไฝฟ็จ็งฏๅ็ๆๅ็ผ่พๅพ็ใ็ณป็ปๅ
ๅซ็จๆท็ซฏ H5 ้กต้ขๅ็ฎก็ๅๅฐ๏ผๆฏๆๅฎๆด็็จๆท็ฎก็ใ็งฏๅ็ฎก็ใๅกๅฏ็ฎก็ๅไปปๅกๆฅๅฟๅ่ฝใ
### โจ ๆ ธๅฟๅ่ฝ
- **็จๆท็ณป็ป**: ่ชไธปๆณจๅใJWT ่ฎค่ฏใ่ง่ฒๆ้ๆงๅถ
- **็งฏๅ็ณป็ป**: ็งฏๅๅ
ๅผใๆถ่ดนใไฝ้ขๆฅ่ฏข
- **ๅกๅฏ็ณป็ป**: ๆน้็ๆใๅฎๅ
จๅ
ๆขใๅนถๅๆงๅถ
- **AI ๅพ็**: ๆ็ๅพใๅพ็ๅพใไปปๅก่ฎฐๅฝ
- **็ฎก็ๅๅฐ**: ็จๆท็ฎก็ใๅกๅฏ็ฎก็ใๆจกๅ้
็ฝฎใๆฅๅฟๆฅ็
---
## ๐๏ธ ็ณป็ปๆถๆ
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๅ็ซฏๅฑ โ
โโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Web-Client (H5) โ Web-Admin โ
โ Vue 3 + Vite โ Vue 3 + Vite โ
โ ็งปๅจ็ซฏ็จๆท็้ข โ ็ฎก็ๅๅฐ็้ข โ
โโโโโโโโโโโโฌโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ API ๅฑ โ
โ NestJS + TypeScript โ
โ - JWT ่ฎค่ฏ โ
โ - ๆ้ๆงๅถ (RolesGuard) โ
โ - ่พๅ
ฅ้ช่ฏ (ValidationPipe) โ
โ - Swagger API ๆๆกฃ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๆฐๆฎๅฑ โ
โ JSON ๆไปถๆฐๆฎๅบ โ
โ - ๅ
ๅญ็ผๅญ + ้ฒๆๆไน
ๅ โ
โ - ๅดฉๆบๅฎๅ
จๅๅ
ฅ (ไธดๆถๆไปถ+ๅๅญๆฟๆข) โ
โ - ๅนถๅๆงๅถ (ไธด็ๅบไฟๆค) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
---
## ๐ ๅฟซ้ๅผๅง
### ็ฏๅข่ฆๆฑ
- **Node.js**: >= 18.0.0
- **Yarn**: >= 4.0.0
- **Git**: ไปปๆ็ๆฌ
### ๅฎ่ฃ
ๆญฅ้ชค
1. **ๅ
้ไปๅบ**
```bash
git clone
cd chees_images
```
2. **ๅฎ่ฃ
ไพ่ต**
```bash
# ๅฏ็จ Yarn 4
yarn install
```
3. **้
็ฝฎ็ฏๅขๅ้**
```bash
# ๅคๅถ็ฏๅขๅ้ๆจกๆฟ
cp server/.env.example server/.env
# ็ผ่พ server/.env ๆไปถ๏ผ่ฎพ็ฝฎไปฅไธๅฟ
้ๅ้:
# - JWT_SECRET: JWT ๅฏ้ฅ (ๅปบ่ฎฎ 32 ไฝ้ๆบๅญ็ฌฆไธฒ)
# - ADMIN_USERNAME: ็ฎก็ๅ็จๆทๅ
# - ADMIN_PASSWORD: ็ฎก็ๅๅฏ็
# - IMAGE_API_KEY: AI ๅพ็ๆๅก API ๅฏ้ฅ (ๅฏ้)
# - IMAGE_API_URL: AI ๅพ็ๆๅกๅฐๅ (ๅฏ้)
```
4. **ๅฏๅจๅผๅๆๅกๅจ**
```bash
# ๅฏๅจๅ็ซฏๆๅก
cd server
yarn dev
# ๅฏๅจ็จๆท็ซฏ H5 (ๆฐ็ป็ซฏ)
cd web-client
yarn dev
# ๅฏๅจ็ฎก็ๅๅฐ (ๆฐ็ป็ซฏ)
cd web-admin
yarn dev
```
5. **่ฎฟ้ฎๅบ็จ**
- ๅ็ซฏ API: http://localhost:3000/api
- API ๆๆกฃ: http://localhost:3000/api/docs
- ็จๆท็ซฏ H5: http://localhost:5173
- ็ฎก็ๅๅฐ: http://localhost:5174
---
## ๐ ้กน็ฎ็ปๆ
```
chees_images/
โโโ ๐ server/ # ๅ็ซฏๆๅก (NestJS)
โ โโโ src/
โ โ โโโ auth/ # ่ฎค่ฏๆจกๅ
โ โ โโโ user/ # ็จๆทๆจกๅ
โ โ โโโ card-key/ # ๅกๅฏๆจกๅ
โ โ โโโ image/ # ๅพ็็ๆๆจกๅ
โ โ โโโ model-config/ # ๆจกๅ้
็ฝฎๆจกๅ
โ โ โโโ task-log/ # ไปปๅกๆฅๅฟๆจกๅ
โ โ โโโ db/ # ๆฐๆฎๅบๆๅก
โ โ โโโ common/ # ้็จ็ปไปถ
โ โโโ test/ # E2E ๆต่ฏ
โ โโโ database.json # ๆฐๆฎๅบๆไปถ
โ
โโโ ๐ web-client/ # ็จๆท็ซฏ H5 (Vue 3)
โ โโโ src/
โ โ โโโ views/ # ้กต้ข่งๅพ
โ โ โโโ components/ # ็ปไปถ
โ โ โโโ api/ # API ๆฅๅฃ
โ โ โโโ stores/ # Pinia ็ถๆ็ฎก็
โ โ โโโ router/ # ่ทฏ็ฑ้
็ฝฎ
โ โโโ package.json
โ
โโโ ๐ web-admin/ # ็ฎก็ๅๅฐ (Vue 3)
โ โโโ src/
โ โ โโโ views/ # ็ฎก็้กต้ข
โ โ โโโ components/ # ็ฎก็็ปไปถ
โ โ โโโ api/ # API ๆฅๅฃ
โ โ โโโ stores/ # Pinia ็ถๆ็ฎก็
โ โ โโโ router/ # ่ทฏ็ฑ้
็ฝฎ
โ โโโ package.json
โ
โโโ package.json # ๆ น้
็ฝฎ (Yarn Workspaces)
```
---
## ๐งช ๆต่ฏ
### ่ฟ่กๆต่ฏ
```bash
# ่ฟ่กๆๆๅๅ
ๆต่ฏ
yarn test
# ่ฟ่กๅ็ซฏๅๅ
ๆต่ฏ
cd server
yarn test
# ่ฟ่ก E2E ๆต่ฏ
cd server
yarn test:e2e
# ่ฟ่ก Playwright E2E ๆต่ฏ
yarn test:e2e
```
### ๆต่ฏ่ฆ็
- **ๅๅ
ๆต่ฏ**: 211 ไธชๆต่ฏ็จไพ
- **E2E ๆต่ฏ**: 80 ไธชๆต่ฏ็จไพ
- **ๆป่ฆ็็**: 291 ไธชๆต่ฏ็จไพ๏ผๅ
จ้จ้่ฟ โ
---
## ๐ ๅฎๅ
จ้
็ฝฎ
### ๅทฒๅฎ็ฐ็ๅฎๅ
จ็นๆง
- โ
**ๅฏ็ ๅฎๅ
จ**: bcrypt ๅๅธ๏ผๆๆฌๅ ๅญ 10
- โ
**JWT ๅฎๅ
จ**: ๆๅฐ payload๏ผ7 ๅคฉ่ฟๆ
- โ
**API ๅฎๅ
จ**: ๅไฟๆค็ซฏ็น้ Bearer Token
- โ
**ๆ้ๆงๅถ**: AdminGuard ไฟๆค็ฎก็ๅๆฅๅฃ
- โ
**ๅนถๅๅฎๅ
จ**: ไธด็ๅบไฟๆคๅกๅฏๅ
ๆข
- โ
**ๆฐๆฎๅฎๅ
จ**: ๅดฉๆบๅฎๅ
จ็ๆฐๆฎๅบๅๅ
ฅ
- โ
**XSS ้ฒๆค**: ่พๅ
ฅ้ช่ฏๅ่พๅบ่ฝฌไน
### ็ฏๅขๅ้่ฏดๆ
| ๅ้ๅ | ๅฟ
้ | ่ฏดๆ |
| ---------------- | ---- | ------------------------- |
| `JWT_SECRET` | โ
| JWT ็ญพๅๅฏ้ฅ |
| `ADMIN_USERNAME` | โ
| ็ฎก็ๅ็จๆทๅ |
| `ADMIN_PASSWORD` | โ
| ็ฎก็ๅๅฏ็ |
| `DATA_DIR` | โ | ๆฐๆฎ็ฎๅฝ (้ป่ฎค: ./data) |
| `JWT_EXPIRES_IN` | โ | Token ่ฟๆๆถ้ด (้ป่ฎค: 7d) |
| `IMAGE_API_KEY` | โ | AI ๅพ็ๆๅก API ๅฏ้ฅ |
| `IMAGE_API_URL` | โ | AI ๅพ็ๆๅกๅฐๅ |
---
## ๐ก API ๆฅๅฃ
### ่ฎค่ฏๆฅๅฃ
| ๆนๆณ | ่ทฏๅพ | ่ฏดๆ |
| ---- | ------------------ | ------------ |
| POST | /api/auth/register | ็จๆทๆณจๅ |
| POST | /api/auth/login | ็จๆท็ปๅฝ |
| GET | /api/auth/me | ่ทๅๅฝๅ็จๆท |
### ็จๆทๆฅๅฃ
| ๆนๆณ | ่ทฏๅพ | ่ฏดๆ | ๆ้ |
| ---- | -------------------- | -------- | ---- |
| GET | /api/users/me/points | ๆฅ่ฏข็งฏๅ | ็จๆท |
### ๅกๅฏๆฅๅฃ
| ๆนๆณ | ่ทฏๅพ | ่ฏดๆ | ๆ้ |
| ---- | ----------------------------- | -------- | ------ |
| POST | /api/card-keys/redeem | ๅ
ๆขๅกๅฏ | ็จๆท |
| POST | /api/admin/card-keys/generate | ็ๆๅกๅฏ | ็ฎก็ๅ |
| GET | /api/admin/card-keys | ๅกๅฏๅ่กจ | ็ฎก็ๅ |
### ๅพ็ๆฅๅฃ
| ๆนๆณ | ่ทฏๅพ | ่ฏดๆ | ๆ้ |
| ---- | -------------------- | -------- | ---- |
| POST | /api/images/generate | ็ๆๅพ็ | ็จๆท |
| POST | /api/images/edit | ็ผ่พๅพ็ | ็จๆท |
| GET | /api/tasks | ไปปๅกๅ่กจ | ็จๆท |
### ็ฎก็ๆฅๅฃ
| ๆนๆณ | ่ทฏๅพ | ่ฏดๆ |
| -------------- | ----------------------------------- | -------- |
| GET | /api/admin/users | ็จๆทๅ่กจ |
| POST | /api/admin/users/:id/reset-password | ้็ฝฎๅฏ็ |
| GET/POST/PATCH | /api/admin/models | ๆจกๅ็ฎก็ |
| GET | /api/admin/tasks | ๆๆไปปๅก |
---
## ๐ ๏ธ ๆๆฏๆ
### ๅ็ซฏ
- **ๆกๆถ**: [NestJS](https://nestjs.com/) - ไผไธ็บง Node.js ๆกๆถ
- **่ฏญ่จ**: TypeScript 5.x
- **ๆฐๆฎๅบ**: JSON ๆไปถ + ๅ
ๅญ็ผๅญ
- **่ฎค่ฏ**: JWT + Passport
- **ๆๆกฃ**: Swagger/OpenAPI
- **ๆต่ฏ**: Jest + Supertest
### ๅ็ซฏ
- **ๆกๆถ**: [Vue 3](https://vuejs.org/) - ๆธ่ฟๅผ JavaScript ๆกๆถ
- **ๆๅปบ**: [Vite](https://vitejs.dev/) - ไธไธไปฃๅ็ซฏๅทฅๅ
ท้พ
- **็ถๆ**: [Pinia](https://pinia.vuejs.org/) - Vue ๅฎๆน็ถๆ็ฎก็
- **่ทฏ็ฑ**: Vue Router 4
- **HTTP**: Axios
- **ๆ ทๅผ**: ๅ็ CSS + ็งปๅจไผๅ
ๅๅบๅผ่ฎพ่ฎก
### ๅทฅๅ
ท้พ
- **ๅ
็ฎก็**: Yarn 4 (Workspaces)
- **ไปฃ็ ่ง่**: ESLint 9 + Prettier
- **E2E ๆต่ฏ**: Playwright
- **็ๆฌๆงๅถ**: Git
---
## ๐ฆ ้จ็ฝฒ
### Docker Compose ้จ็ฝฒ (ๆจ่)
ไธ้ฎ้จ็ฝฒๆๆๆๅก๏ผๅ็ซฏ + ็จๆท็ซฏ + ็ฎก็ๅๅฐ๏ผ๏ผ
```bash
# 1. ๅ
้ไปๅบ
git clone
cd chees_images
# 2. ้
็ฝฎ็ฏๅขๅ้
cp .env.docker.example .env
# ็ผ่พ .env ๆไปถ๏ผ่ฎพ็ฝฎๅฟ
้็ๅ้
# 3. ๅฏๅจๆๆๆๅก
docker-compose up -d
# 4. ๆฅ็ๆๅก็ถๆ
docker-compose ps
# 5. ๆฅ็ๆฅๅฟ
docker-compose logs -f
```
**ๆๅก่ฎฟ้ฎๅฐๅ๏ผ**
- ็จๆท็ซฏ H5: http://localhost
- ็ฎก็ๅๅฐ: http://localhost:8080
- ๅ็ซฏ API: http://localhost:3000/api
- API ๆๆกฃ: http://localhost:3000/api/docs
**ๅธธ็จๅฝไปค๏ผ**
```bash
# ๅๆญขๆๅก
docker-compose down
# ้ๅฏๆๅก
docker-compose restart
# ้ๆฐๆๅปบๅนถๅฏๅจ
docker-compose up -d --build
# ๆฅ็็นๅฎๆๅกๆฅๅฟ
docker-compose logs -f server
```
### Docker ๅๅฎนๅจ้จ็ฝฒ
ไป
้จ็ฝฒๅ็ซฏๆๅก๏ผ
```bash
# ๆๅปบ้ๅ
docker build -t chees-images ./server
# ่ฟ่กๅฎนๅจ
docker run -d \
-p 3000:3000 \
-e JWT_SECRET=your-secret \
-e ADMIN_USERNAME=admin \
-e ADMIN_PASSWORD=admin123 \
-v ./data:/app/data \
--name chees-images-server \
chees-images
```
### ็ไบง็ฏๅข้จ็ฝฒ
```bash
# ๆๅปบ็ไบง็ๆฌ
yarn build
# ๅฏๅจ็ไบงๆๅก
cd server
yarn start:prod
```
---
## ๐ค ่ดก็ฎๆๅ
1. Fork ๆฌไปๅบ
2. ๅๅปบ็นๆงๅๆฏ (`git checkout -b feature/amazing-feature`)
3. ๆไบคๆดๆน (`git commit -m 'Add some amazing feature'`)
4. ๆจ้ๅฐๅๆฏ (`git push origin feature/amazing-feature`)
5. ๅๅปบ Pull Request
---
## ๐ ่ฎธๅฏ่ฏ
[MIT](LICENSE) ยฉ Chees Images Team
---
## ๐ฌ ๆฏๆ
ๅฆๆ้ฎ้ขๆๅปบ่ฎฎ๏ผๆฌข่ฟๆไบค Issue ๆ่็ณปๅผๅๅข้ใ
---
Made with โค๏ธ by Chees Images Team