Files
soul/开发文档/8、部署/本机运行文档.md
卡若 afc2376e96 v1.19 全面改版:VIP会员系统、我的收益、创业老板排行、阅读量排序
- 后端: users表新增VIP字段, 4个VIP API (purchase/status/profile/members)
- 后端: hot接口改按user_tracks阅读量排序
- 后端: orders表支持vip产品类型, migrate新增vip_fields迁移
- 小程序「我的」: 推广中心改为我的收益, 头像VIP标识, VIP入口卡片
- 小程序「我的」: 最近阅读显示真实章节名称
- 小程序首页: 去掉内容概览, 新增创业老板排行(4列网格)
- 小程序首页: 精选推荐从hot接口获取, goToRead增加track记录
- 新增页面: VIP详情页, 会员详情页
- 开发文档精简为10个标准目录, 创建SKILL.md, 需求日志规范化

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 14:07:41 +08:00

99 lines
3.4 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.

# Soul 主站 · 本机运行文档
> 主项目一场soul的创业实验本机与服务器运行说明。永平版多服务架构见「永平版优化对比与合并说明」中的本机运行文档参考。
---
## 一、主项目运行架构(单 Next 站)
### 1.1 进程与端口
| 说明 | 端口 | 命令 |
|----------|------|------|
| 开发 | 3000 | `pnpm dev`Next 默认) |
| 生产 | 3006 | `pnpm build``PORT=3006 HOSTNAME=0.0.0.0 node .next/standalone/server.js` |
### 1.2 目录与部署
- **本地开发**:根目录即 Next 源码,`app/``lib/``components/``book/``miniprogram/` 同层。
- **生产部署**:小型宝塔 42.194.232.22,项目路径 `/www/wwwroot/soul`PM2 进程名 `soul`,端口 3006。
---
## 二、本机运行步骤
### 2.1 安装依赖
```bash
pnpm install
```
### 2.2 开发模式
```bash
pnpm dev
```
- 默认端口 3000可在 `package.json` 或环境变量中指定 `PORT=3006`
- 访问http://localhost:3000或 http://localhost:3006
### 2.3 生产模式(本地模拟)
```bash
pnpm build
PORT=3006 HOSTNAME=0.0.0.0 node .next/standalone/server.js
```
- 需先完成 `pnpm build`standalone 输出在 `.next/standalone/`
- 环境变量:`.env.local` 中配置 `MYSQL_*`(可选)、`SKIP_DB`(本地无 DB 时可设 `SKIP_DB=1`,部分接口会报错,适合纯前端联调)。
### 2.4 数据库
- 默认使用腾讯云 MySQL`lib/db.ts` 默认值)。
- 本地无数据库时:设置 `SKIP_DB=1`,接口中依赖 DB 的会抛错,可配合 Mock 或仅跑静态页。
- 环境变量覆盖:`MYSQL_HOST``MYSQL_PORT``MYSQL_USER``MYSQL_PASSWORD``MYSQL_DATABASE`
---
## 三、关键配置
### 3.1 环境变量(.env.local
| 配置项 | 说明 |
|--------|------|
| MYSQL_HOST / MYSQL_PORT / MYSQL_USER / MYSQL_PASSWORD / MYSQL_DATABASE | 数据库连接,不设则用代码默认值 |
| SKIP_DB | 设为 1 或 true 时跳过 DB 连接,适合无 DB 环境 |
| ADMIN_USERNAME / ADMIN_PASSWORD | 后台管理员账号密码(默认 admin / key123456 |
| ADMIN_SESSION_SECRET | 管理员 Cookie 签名密钥(生产建议修改) |
### 3.2 管理后台
- 登录http://localhost:3000/admin/login开发或 /admin/login生产
- 默认账号admin / key123456与 .cursorrules 一致,可通过环境变量覆盖)
- 登出 API`POST /api/admin/logout`(清除管理员 Cookie可与「退出登录」按钮对接
---
## 四、与永平版差异
- **永平版**多服务Go API 8080、Vue 管理后台 5174、Next 主站 3006见永平根目录 `本机运行文档.md`
- **本主项目**:单 Next 应用,无独立 Go/Vue管理后台为 Next 内 `/admin`API 为 Next 内 `/api/*`
- CORS主项目在 `middleware.ts``next.config.mjs` 中配置;永平可能由 Nginx/Go 处理。
---
## 五、常见问题
1. **端口被占用**
修改启动命令:`PORT=3007 pnpm dev``PORT=3007 node .next/standalone/server.js`
2. **数据库连接失败**
检查 `.env.local``MYSQL_*` 及本机网络是否能访问腾讯云 MySQL或设 `SKIP_DB=1` 做无 DB 联调。
3. **API 跨域**
主项目已通过 `middleware.ts``/api/:path*` 设置 CORS允许来源见 `ALLOWED_ORIGINS`
---
**文档状态**:适用于主项目单站部署与本机开发;多服务架构以永平版文档为准。