fix: init git repo on server if not exists
All checks were successful
Deploy to Server / deploy (push) Successful in 19s
All checks were successful
Deploy to Server / deploy (push) Successful in 19s
This commit is contained in:
@@ -28,12 +28,21 @@ jobs:
|
|||||||
|
|
||||||
# 3. 拉取 Git 最新代码
|
# 3. 拉取 Git 最新代码
|
||||||
echo -e "\n===== 拉取 Git 代码 ====="
|
echo -e "\n===== 拉取 Git 代码 ====="
|
||||||
|
REPO_URL="https://sdd:zsj981107@gitea.tangledup-ai.com/quant-speed-AI/Scoring-System.git"
|
||||||
|
if [ ! -d ".git" ]; then
|
||||||
|
echo "不是 git 仓库,初始化并拉取代码..."
|
||||||
|
git init
|
||||||
|
git remote add origin $REPO_URL
|
||||||
|
git fetch origin
|
||||||
|
git checkout -b main origin/main
|
||||||
|
else
|
||||||
|
git remote set-url origin $REPO_URL
|
||||||
if ! git pull; then
|
if ! git pull; then
|
||||||
echo "警告:Git pull 失败,尝试强制同步远程代码..."
|
echo "警告:Git pull 失败,尝试强制同步远程代码..."
|
||||||
git fetch --all
|
git fetch --all
|
||||||
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||||
git reset --hard origin/$CURRENT_BRANCH
|
git reset --hard origin/$CURRENT_BRANCH
|
||||||
git pull
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 4. 创建/更新 .env 文件
|
# 4. 创建/更新 .env 文件
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
# 阶段一:构建前端资源
|
|
||||||
FROM node:20-alpine AS frontend-builder
|
|
||||||
|
|
||||||
# 安装前端构建依赖
|
|
||||||
RUN apk add --no-cache autoconf automake libtool make g++ zlib-dev nasm python3 libpng-dev
|
|
||||||
|
|
||||||
WORKDIR /frontend-app
|
|
||||||
COPY frontend/package.json frontend/package-lock.json* ./
|
|
||||||
RUN npm install --registry=https://registry.npmmirror.com --prefer-offline
|
|
||||||
|
|
||||||
COPY frontend/ ./
|
|
||||||
ARG VITE_API_URL=/api
|
|
||||||
ENV VITE_API_URL=${VITE_API_URL}
|
|
||||||
RUN npm run build
|
|
||||||
|
|
||||||
|
|
||||||
# 阶段二:构建后端及最终镜像
|
|
||||||
FROM python:3.12-slim
|
|
||||||
|
|
||||||
# 设置环境变量
|
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
|
||||||
ENV PYTHONUNBUFFERED=1
|
|
||||||
ENV PYTHONIOENCODING=utf-8
|
|
||||||
|
|
||||||
# 安装系统依赖和 Nginx(使用本地缓存)
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
gcc \
|
|
||||||
libpq-dev \
|
|
||||||
libffi-dev \
|
|
||||||
libjpeg-dev \
|
|
||||||
zlib1g-dev \
|
|
||||||
nginx \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* || true
|
|
||||||
|
|
||||||
# 配置后端工作目录
|
|
||||||
WORKDIR /app/backend
|
|
||||||
|
|
||||||
# 复制后端 requirements 文件并安装依赖
|
|
||||||
COPY backend/requirements.txt .
|
|
||||||
RUN pip install --no-cache-dir --upgrade pip && \
|
|
||||||
pip install --no-cache-dir -r requirements.txt
|
|
||||||
|
|
||||||
# 复制后端代码
|
|
||||||
COPY backend/ .
|
|
||||||
|
|
||||||
# 创建媒体和静态文件目录
|
|
||||||
RUN mkdir -p /app/backend/media /app/backend/static
|
|
||||||
|
|
||||||
# 从前端构建阶段复制静态文件到 Nginx 目录
|
|
||||||
COPY --from=frontend-builder /frontend-app/dist /usr/share/nginx/html
|
|
||||||
|
|
||||||
# 复制 Nginx 配置文件
|
|
||||||
COPY nginx-all-in-one.conf /etc/nginx/conf.d/default.conf
|
|
||||||
|
|
||||||
# 复制并配置启动脚本
|
|
||||||
COPY entrypoint.sh /app/entrypoint.sh
|
|
||||||
RUN chmod +x /app/entrypoint.sh
|
|
||||||
|
|
||||||
# 暴露 Nginx 端口
|
|
||||||
EXPOSE 8890
|
|
||||||
|
|
||||||
# 健康检查
|
|
||||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
|
|
||||||
CMD curl -f http://localhost:8890/health || exit 1
|
|
||||||
|
|
||||||
# 启动脚本
|
|
||||||
CMD ["/app/entrypoint.sh"]
|
|
||||||
237
README 2.md
237
README 2.md
@@ -1,237 +0,0 @@
|
|||||||
# Quant Speed Market (量迹市场)
|
|
||||||
|
|
||||||
> 一个集成了电商、社区论坛、AI 服务与 AR/3D 模型展示的全栈应用平台。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## 📖 项目简介
|
|
||||||
npm run dev:weapp
|
|
||||||
Quant Speed Market 是一个基于现代技术栈构建的综合性平台,旨在为用户提供从商品购买、技术交流到 AI 工具使用的全方位体验。项目采用前后端分离架构,包含 Django 后端 API、React Web 管理端以及 Taro 微信小程序客户端。
|
|
||||||
|
|
||||||
## ✨ 功能特性
|
|
||||||
|
|
||||||
- **🛍️ 电商商城**:支持商品浏览、购物车、微信支付 (WeChat Pay V3)、订单管理。
|
|
||||||
- **💬 社区论坛**:支持发帖、回帖、话题分类、富文本编辑。
|
|
||||||
- **🤖 AI 服务**:集成 AI 工具,提供智能辅助服务。
|
|
||||||
- **🕶️ AR/3D 展示**:基于 Three.js 的 3D 模型预览与 AR 交互体验。
|
|
||||||
- **📱 多端适配**:微信小程序原生体验,Web 端响应式管理后台。
|
|
||||||
- **🔒 安全认证**:微信一键登录、手机号绑定、JWT 认证。
|
|
||||||
|
|
||||||
## 🛠️ 技术栈与依赖
|
|
||||||
|
|
||||||
### Backend (后端)
|
|
||||||
- **Framework**: Django 6.0 + Django REST Framework 3.16
|
|
||||||
- **Database**: PostgreSQL (psycopg2)
|
|
||||||
- **Payment**: WeChat Pay V3 (wechatpayv3)
|
|
||||||
- **Documentation**: drf-spectacular (OpenAPI 3.0)
|
|
||||||
- **Deployment**: Docker, Gunicorn
|
|
||||||
|
|
||||||
### Frontend (Web 端)
|
|
||||||
- **Core**: React 19 + Vite 7
|
|
||||||
- **UI Library**: Ant Design 6
|
|
||||||
- **3D Engine**: Three.js + @react-three/fiber
|
|
||||||
- **Routing**: React Router v7
|
|
||||||
|
|
||||||
### Miniprogram (小程序)
|
|
||||||
- **Framework**: Taro 3.6 (React Flavor)
|
|
||||||
- **UI Library**: Taro UI
|
|
||||||
- **Styles**: SCSS
|
|
||||||
- **Platform**: WeChat Mini Program (可扩展至 H5/Alipay 等)
|
|
||||||
|
|
||||||
## 🚀 本地开发环境搭建
|
|
||||||
|
|
||||||
### 1. 系统要求
|
|
||||||
- **Node.js**: >= 18.0.0
|
|
||||||
- **Python**: >= 3.10
|
|
||||||
- **PostgreSQL**: >= 13
|
|
||||||
- **WeChat DevTools**: 最新版 (用于小程序开发)
|
|
||||||
|
|
||||||
### 2. 克隆仓库
|
|
||||||
```bash
|
|
||||||
git clone <repository-url>
|
|
||||||
cd market_page
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. 后端环境配置 (Backend)
|
|
||||||
```bash
|
|
||||||
cd backend
|
|
||||||
|
|
||||||
# 创建虚拟环境 (推荐)
|
|
||||||
python -m venv venv
|
|
||||||
# Windows 激活
|
|
||||||
venv\Scripts\activate
|
|
||||||
# macOS/Linux 激活
|
|
||||||
source venv/bin/activate
|
|
||||||
|
|
||||||
# 安装依赖
|
|
||||||
pip install -r requirements.txt
|
|
||||||
|
|
||||||
# 数据库迁移
|
|
||||||
python manage.py migrate
|
|
||||||
|
|
||||||
# 创建超级用户
|
|
||||||
python manage.py createsuperuser
|
|
||||||
|
|
||||||
# 启动开发服务器 (默认端口 8000)
|
|
||||||
python manage.py runserver
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Web 前端配置 (Frontend)
|
|
||||||
```bash
|
|
||||||
cd ../frontend
|
|
||||||
|
|
||||||
# 安装依赖
|
|
||||||
npm install
|
|
||||||
|
|
||||||
# 启动开发服务器 (默认端口 5173)
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
### 5. 小程序配置 (Miniprogram)
|
|
||||||
```bash
|
|
||||||
cd ../miniprogram
|
|
||||||
|
|
||||||
# 安装依赖
|
|
||||||
npm install
|
|
||||||
|
|
||||||
# 编译并监听 (微信小程序)
|
|
||||||
npm run dev:weapp
|
|
||||||
```
|
|
||||||
*启动后,请打开微信开发者工具,导入 `miniprogram` 目录进行预览。*
|
|
||||||
|
|
||||||
## 📦 构建与运行
|
|
||||||
|
|
||||||
### Backend
|
|
||||||
```bash
|
|
||||||
# 收集静态文件
|
|
||||||
python manage.py collectstatic --noinput
|
|
||||||
|
|
||||||
# 使用 Gunicorn 运行 (生产环境)
|
|
||||||
gunicorn config.wsgi:application --bind 0.0.0.0:8000
|
|
||||||
```
|
|
||||||
|
|
||||||
### Frontend
|
|
||||||
```bash
|
|
||||||
# 构建生产版本
|
|
||||||
npm run build
|
|
||||||
|
|
||||||
# 预览构建产物
|
|
||||||
npm run preview
|
|
||||||
```
|
|
||||||
|
|
||||||
### Miniprogram
|
|
||||||
```bash
|
|
||||||
# 构建生产版本 (微信小程序)
|
|
||||||
npm run build:weapp
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🧪 测试与覆盖率
|
|
||||||
|
|
||||||
### Backend
|
|
||||||
```bash
|
|
||||||
# 运行所有测试
|
|
||||||
python manage.py test
|
|
||||||
|
|
||||||
# 运行特定模块测试
|
|
||||||
python manage.py test shop.tests
|
|
||||||
```
|
|
||||||
|
|
||||||
### Frontend / Miniprogram
|
|
||||||
```bash
|
|
||||||
# 代码风格检查
|
|
||||||
npm run lint
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🚢 部署指南
|
|
||||||
|
|
||||||
### Docker 部署 (推荐)
|
|
||||||
项目包含 `Dockerfile` 和 `docker-compose.yml` (根目录下),可一键启动。
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 在项目根目录
|
|
||||||
docker-compose up -d --build
|
|
||||||
```
|
|
||||||
*注意:请确保已在 `backend/config/settings.py` 或环境变量中配置好生产环境的数据库连接和密钥。*
|
|
||||||
|
|
||||||
## 🔌 API 接口示例
|
|
||||||
|
|
||||||
后端提供 RESTful API,以下为核心接口示例:
|
|
||||||
|
|
||||||
| 方法 | 路径 | 描述 |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| POST | `/api/shop/wechat/login/` | 微信用户登录 (换取 JWT) |
|
|
||||||
| GET | `/api/shop/configs/` | 获取 ESP32/商品配置列表 |
|
|
||||||
| POST | `/api/shop/orders/` | 创建新订单 |
|
|
||||||
| POST | `/api/shop/pay/` | 发起微信支付 |
|
|
||||||
| GET | `/api/community/topics/` | 获取论坛话题列表 |
|
|
||||||
|
|
||||||
**API 文档**: 启动后端后访问 `http://localhost:8000/api/schema/swagger-ui/` 查看完整 Swagger 文档。
|
|
||||||
|
|
||||||
## 📂 目录结构说明
|
|
||||||
|
|
||||||
```
|
|
||||||
market_page/
|
|
||||||
├── backend/ # Django 后端源码
|
|
||||||
│ ├── community/ # 论坛社区模块
|
|
||||||
│ ├── shop/ # 电商与支付模块
|
|
||||||
│ ├── config/ # 项目核心配置
|
|
||||||
│ ├── uploads/ # 用户上传文件 (媒体资源)
|
|
||||||
│ ├── manage.py # Django 管理脚本
|
|
||||||
│ └── requirements.txt # Python 依赖
|
|
||||||
├── frontend/ # React Web 端源码
|
|
||||||
│ ├── src/
|
|
||||||
│ │ ├── components/ # 公共组件 (3D模型、弹窗等)
|
|
||||||
│ │ ├── pages/ # 页面路由 (Home, Forum, Payment)
|
|
||||||
│ │ └── assets/ # 静态资源
|
|
||||||
│ └── vite.config.js # Vite 配置
|
|
||||||
├── miniprogram/ # Taro 小程序源码
|
|
||||||
│ ├── src/
|
|
||||||
│ │ ├── pages/ # 小程序页面
|
|
||||||
│ │ ├── subpackages/ # 分包页面 (分销、论坛详情等)
|
|
||||||
│ │ └── components/ # 小程序组件
|
|
||||||
│ └── project.config.json # 微信小程序配置
|
|
||||||
└── docker-compose.yml # Docker 编排文件
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🤝 贡献规范
|
|
||||||
|
|
||||||
欢迎提交 Pull Request!请遵循以下规范:
|
|
||||||
|
|
||||||
1. **分支管理**:
|
|
||||||
- `main`: 主分支,保持稳定。
|
|
||||||
- `dev`: 开发分支。
|
|
||||||
- `feat/xxx`: 新功能分支。
|
|
||||||
- `fix/xxx`: Bug 修复分支。
|
|
||||||
|
|
||||||
2. **Commit 格式**:
|
|
||||||
- `feat: 添加购物车功能`
|
|
||||||
- `fix: 修复支付回调失败问题`
|
|
||||||
- `docs: 更新 README`
|
|
||||||
- `style: 调整首页样式`
|
|
||||||
|
|
||||||
3. **PR 流程**:
|
|
||||||
- Fork 本仓库。
|
|
||||||
- 创建特性分支。
|
|
||||||
- 提交代码并推送到您的 Fork。
|
|
||||||
- 提交 PR 至 `dev` 分支。
|
|
||||||
|
|
||||||
## ❓ 常见问题排查
|
|
||||||
|
|
||||||
- **Q: 后端启动报错 `psycopg2` 相关错误?**
|
|
||||||
- A: 请确保本地已安装 PostgreSQL 并且开发库 (`libpq-dev` 或 equivalent) 已就绪。
|
|
||||||
|
|
||||||
- **Q: 小程序报错 "appID 不合法"?**
|
|
||||||
- A: 请在 `miniprogram/project.config.json` 中修改 `appid` 为您自己的测试 ID,或在开发者工具中开启 "不校验合法域名"。
|
|
||||||
|
|
||||||
- **Q: 微信支付接口调用失败?**
|
|
||||||
- A: 微信支付依赖真实商户号和证书,本地开发请使用模拟数据或沙箱环境。
|
|
||||||
|
|
||||||
## 📜 许可证
|
|
||||||
|
|
||||||
本项目采用 [MIT License](LICENSE) 许可证。
|
|
||||||
|
|
||||||
## 📧 联系方式
|
|
||||||
|
|
||||||
- **作者**: (Your Name/Organization)
|
|
||||||
- **邮箱**: contact@example.com
|
|
||||||
- **项目主页**: https://github.com/yourusername/market-page
|
|
||||||
@@ -5,7 +5,7 @@ FROM node:22-alpine
|
|||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# 安装构建依赖
|
# 安装构建依赖
|
||||||
RUN apk add --no-cache autoconf automake libtool make g++ zlib-dev nasm python3
|
RUN apk add --no-cache autoconf automake libtool make g++ zlib-dev nasm python3 libpng-dev
|
||||||
|
|
||||||
# 安装依赖
|
# 安装依赖
|
||||||
COPY package.json package-lock.json* ./
|
COPY package.json package-lock.json* ./
|
||||||
|
|||||||
Reference in New Issue
Block a user