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*
|