Files
soul-yongping/开发文档/4、前端/ui/10-部署上线指南.md

204 lines
3.7 KiB
Markdown
Raw Normal View History

# 部署上线指南
## 环境要求
| 项目 | 要求 |
|------|------|
| Node.js | >= 20.0.0 |
| npm | >= 10.0.0 |
| MySQL | >= 8.0 |
## 本地开发
### 安装依赖
```bash
npm install
```
### 启动开发服务器
```bash
npm run dev
```
### 访问地址
- 本地http://localhost:3000
- 局域网http://192.168.x.x:3000
## 环境变量
创建 `.env.local` 文件:
```env
# 数据库配置
DATABASE_URL=mysql://user:password@localhost:3306/soul_startup
# 存客宝API
CKB_API_KEY=your_api_key_here
# 微信支付
WECHAT_APP_ID=your_app_id
WECHAT_APP_SECRET=your_app_secret
WECHAT_MERCHANT_ID=your_merchant_id
WECHAT_API_KEY=your_api_key
```
## 生产构建
### 构建
```bash
npm run build
```
### 启动
```bash
npm run start
```
## 数据库配置
### 创建数据库
```sql
CREATE DATABASE soul_startup CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
### 主要数据表
```sql
-- 用户表
CREATE TABLE users (
id VARCHAR(36) PRIMARY KEY,
phone VARCHAR(20) NOT NULL,
nickname VARCHAR(50),
is_admin BOOLEAN DEFAULT FALSE,
referral_code VARCHAR(20),
referred_by VARCHAR(20),
earnings DECIMAL(10,2) DEFAULT 0,
pending_earnings DECIMAL(10,2) DEFAULT 0,
wechat VARCHAR(50),
alipay VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 购买记录表
CREATE TABLE purchases (
id VARCHAR(36) PRIMARY KEY,
user_id VARCHAR(36) NOT NULL,
type ENUM('section', 'fullbook') NOT NULL,
section_id VARCHAR(20),
amount DECIMAL(10,2) NOT NULL,
status ENUM('pending', 'completed', 'failed') DEFAULT 'pending',
payment_method VARCHAR(20),
referrer_earnings DECIMAL(10,2),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 提现记录表
CREATE TABLE withdrawals (
id VARCHAR(36) PRIMARY KEY,
user_id VARCHAR(36) NOT NULL,
amount DECIMAL(10,2) NOT NULL,
method VARCHAR(20) NOT NULL,
account VARCHAR(100) NOT NULL,
name VARCHAR(50) NOT NULL,
status ENUM('pending', 'approved', 'rejected', 'completed') DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
processed_at TIMESTAMP
);
-- 分销绑定表
CREATE TABLE referral_bindings (
id VARCHAR(36) PRIMARY KEY,
referrer_id VARCHAR(36) NOT NULL,
visitor_id VARCHAR(36) NOT NULL,
binding_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
expire_time TIMESTAMP NOT NULL,
status ENUM('active', 'converted', 'expired') DEFAULT 'active'
);
```
## 微信支付配置
### 1. 注册商户号
在微信支付商户平台注册
### 2. 获取API密钥
商户平台 → 账户中心 → API安全 → 设置API密钥
### 3. 配置回调地址
```
https://your-domain.com/api/payment/notify
```
## Vercel部署
### 1. 连接GitHub仓库
```bash
vercel link
```
### 2. 配置环境变量
在Vercel项目设置中添加环境变量
### 3. 部署
```bash
vercel --prod
```
## 服务器部署
### 使用PM2
```bash
# 安装PM2
npm install -g pm2
# 构建项目
npm run build
# 启动服务
pm2 start npm --name "soul-startup" -- start
# 保存进程
pm2 save
# 开机自启
pm2 startup
```
### Nginx配置
```nginx
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
```
## 检查清单
### 上线前检查
- [ ] 环境变量配置完整
- [ ] 数据库连接正常
- [ ] 微信支付配置正确
- [ ] 存客宝API配置正确
- [ ] HTTPS证书配置
- [ ] 域名解析配置
### 功能测试
- [ ] 用户注册/登录
- [ ] 章节阅读
- [ ] 支付购买
- [ ] 分销绑定
- [ ] 提现申请
- [ ] 找伙伴匹配
- [ ] 管理后台
---
*文档版本v2.0 | 更新日期2026-01-18*