Files
2026-07-27 14:07:26 +08:00

147 lines
3.4 KiB
Markdown

# 易分宝回收系统 Docker 部署指南
## 项目简介
易分宝现场回收系统是一个再生资源回收小程序,包含:
- **后端 API 服务** (Node.js + Express + SQLite)
- **后台管理端** (静态 HTML)
- **小程序端** (uni-app)
## 快速开始
### 1. 确保已安装 Docker
```bash
# 检查 Docker 版本
docker --version
docker-compose --version
```
### 2. 构建并启动服务
```bash
# 进入项目目录
cd D:\Trae\huishou
# 构建并启动(前台运行)
docker-compose up --build
# 或者后台运行
docker-compose up -d --build
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f backend
```
### 3. 访问服务
- **后端 API**: http://localhost:4000
- **后台管理端**: http://localhost:4001
- 用户名: `admin`
- 密码: `123456`
### 4. 停止服务
```bash
# 停止并移除容器
docker-compose down
# 停止并移除容器和数据卷
docker-compose down -v
```
## 数据持久化
以下目录已配置为持久化存储:
- `./server/data` - SQLite 数据库文件
- `./server/icons` - 上传的图标文件
## 环境变量
| 变量名 | 默认值 | 说明 |
|--------|--------|------|
| NODE_ENV | production | 运行环境 |
| PORT | 3000 | 服务端口 |
## API 接口
### 价格管理
- `GET /api/prices` - 获取所有价格
- `POST /api/prices` - 添加价格
- `PUT /api/prices/:category` - 更新价格
- `DELETE /api/prices/:category` - 删除价格
### 区域管理
- `GET /api/regions/cities` - 获取城市列表
- `GET /api/regions/districts/:city` - 获取区域列表
- `GET /api/regions/stations/:city/:district` - 获取回收站点列表
- `GET /api/regions/users/:station` - 获取用户列表
### 订单管理
- `GET /api/orders` - 获取订单列表
- `POST /api/orders` - 创建订单
- `PUT /api/orders/:orderId` - 更新订单状态
### 统计
- `GET /api/statistics` - 获取统计数据
### 图标
- `GET /api/icons/:filename` - 获取上传的图标
## 项目文件结构
```
huishou/
├── Dockerfile # Docker 镜像构建文件
├── docker-compose.yml # Docker Compose 配置
├── .dockerignore # Docker 构建忽略文件
├── DEPLOY.md # 部署文档
├── server/ # 后端服务
│ ├── server.js # 主服务器文件
│ ├── package.json # 依赖配置
│ ├── data/ # 数据库文件(持久化)
│ └── icons/ # 上传图标(持久化)
├── admin/ # 后台管理端
│ └── index.html # 管理页面
└── dist/
└── build/
└── mp-weixin/ # 小程序编译产物
```
## 注意事项
1. **小程序端**:需要在微信开发者工具中导入 `dist/build/mp-weixin` 目录运行
2. **端口冲突**:确保 3000 端口未被占用
3. **数据库初始化**:首次启动会自动初始化数据库并插入默认数据
## 故障排查
### 容器启动失败
```bash
# 查看详细日志
docker-compose logs backend
# 进入容器调试
docker exec -it yifenbao-backend sh
```
### 数据库问题
```bash
# 重置数据库(删除数据卷)
docker-compose down -v
docker-compose up -d
```
## 生产环境部署建议
1. 使用 Nginx 反向代理
2. 配置 HTTPS
3. 使用外部数据库(如 MySQL)替代 SQLite
4. 配置定时备份
5. 使用 Docker Swarm 或 Kubernetes 进行编排