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