204 lines
3.7 KiB
Markdown
204 lines
3.7 KiB
Markdown
|
|
# 部署上线指南
|
|||
|
|
|
|||
|
|
## 环境要求
|
|||
|
|
|
|||
|
|
| 项目 | 要求 |
|
|||
|
|
|------|------|
|
|||
|
|
| 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*
|