Files
soul-yongping/开发文档/4、前端/ui/10-部署上线指南.md
2026-02-09 15:09:29 +08:00

204 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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