Merge branch 'yongxu-dev' into devlop
# Conflicts: # miniprogram/pages/profile-edit/profile-edit.js # miniprogram/pages/profile-edit/profile-edit.wxml # miniprogram/pages/settings/settings.js # miniprogram/utils/ruleEngine.js # soul-admin/src/pages/distribution/DistributionPage.tsx # soul-admin/src/pages/users/UsersPage.tsx # soul-api/.env.production # soul-api/.gitignore # soul-api/internal/handler/db_ckb_leads.go # soul-api/internal/handler/miniprogram.go # soul-api/internal/handler/referral.go # 开发文档/1、需求/archive/链接人与事-存客宝同步-需求规划.md # 开发文档/1、需求/archive/链接人与事-实现方案.md
This commit is contained in:
0
.cursor/agent/安全工程师/evolution/.gitkeep
Normal file
0
.cursor/agent/安全工程师/evolution/.gitkeep
Normal file
32
.cursor/agent/安全工程师/evolution/2026-03-20-挖矿与服务器Skills.md
Normal file
32
.cursor/agent/安全工程师/evolution/2026-03-20-挖矿与服务器Skills.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# 挖矿病毒排查与服务器操作 Skills 创建
|
||||
|
||||
**日期**:2026-03-20
|
||||
|
||||
## 背景
|
||||
|
||||
基于 agent 记录(3b9e0fa0、bc781e1b、1c1a81c3 等)中挖矿病毒排查经验,以及本地部署脚本(devloy.py、master.py、soul-admin/deploy.py、Cunkebao/miner_guard_install.py 等),将经验吸收转化为 Skills。
|
||||
|
||||
## 新增 Skills
|
||||
|
||||
### 1. security-miner-guard
|
||||
|
||||
- **路径**:`.cursor/skills/security-miner-guard/SKILL.md`
|
||||
- **触发词**:挖矿病毒、xmrig、服务器被入侵、miner_guard、安全排查、杀挖矿
|
||||
- **内容**:挖矿病毒特征、入侵链路、排查脚本、加固建议、miner_guard 安装与检查
|
||||
|
||||
### 2. security-server-ops
|
||||
|
||||
- **路径**:`.cursor/skills/security-server-ops/SKILL.md`
|
||||
- **触发词**:部署、服务器操作、SSH、宝塔、devloy、master、Cunkebao 部署
|
||||
- **内容**:服务器索引、部署脚本索引、环境变量一览、常用操作(不含明文密码)
|
||||
|
||||
## 配置更新
|
||||
|
||||
- `paths.py`:新增 `AGENT_SECURITY`、`ROLE_TO_AGENT["安全工程师"]`
|
||||
- `老板分身-索引.mdc`:经验自动收集推断增加「挖矿/安全/服务器操作→安全工程师」
|
||||
- `soul-project-boundary.mdc`:按语义触发词增加安全工程师及对应 Skills
|
||||
|
||||
## 安全提醒
|
||||
|
||||
- Skills 中**不写入明文密码**,仅说明配置来源(环境变量、脚本 get_cfg())
|
||||
- 建议将 master.py、devloy.py 等中的默认密码迁移到环境变量
|
||||
26
.cursor/agent/安全工程师/evolution/2026-03-20-管理端部署触发词.md
Normal file
26
.cursor/agent/安全工程师/evolution/2026-03-20-管理端部署触发词.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# 管理端部署触发词约定
|
||||
|
||||
**日期**:2026-03-20
|
||||
|
||||
## 场景
|
||||
|
||||
用户说「管理端帮我部署到xx环境」时,安全工程师应语义化解析 xx,直接执行对应部署脚本。
|
||||
|
||||
## 解决方案
|
||||
|
||||
- **触发词**:管理端帮我部署到xx环境(语义化,理解意图即可)
|
||||
- **脚本映射**:
|
||||
- 含「正式」「线上」「生产」→ `cd soul-admin && python master.py`(正式环境,/www/wwwroot/self/soul-admin)
|
||||
- 含「测试」「dev」→ `cd soul-admin && python deploy.py`(测试环境,/www/wwwroot/self/soul-admin-dev)
|
||||
|
||||
## soul-admin 部署脚本
|
||||
|
||||
| 脚本 | 环境 | 目标目录 | 构建命令 |
|
||||
|------|------|----------|----------|
|
||||
| master.py | 正式 | soul-admin | pnpm build |
|
||||
| deploy.py | 测试 | soul-admin-dev | pnpm run build:dev |
|
||||
|
||||
## 已升级 Skills
|
||||
|
||||
1. **security-server-ops**:何时使用表、2.2 soul-admin 脚本索引、4.4/4.5 常用操作
|
||||
2. **soul-project-boundary**:按场景触发词表新增
|
||||
18
.cursor/agent/安全工程师/evolution/2026-03-20-部署API触发词.md
Normal file
18
.cursor/agent/安全工程师/evolution/2026-03-20-部署API触发词.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# 部署 API 触发词约定
|
||||
|
||||
**日期**:2026-03-20
|
||||
|
||||
## 场景
|
||||
|
||||
用户说「帮我部署api到线上」时,安全工程师应直接执行部署脚本,无需再询问或选择。
|
||||
|
||||
## 解决方案
|
||||
|
||||
- **触发词**:帮我部署api到线上
|
||||
- **动作**:直接执行 `cd soul-api && python master.py`
|
||||
- **脚本**:`soul-api/master.py`(soul-api 正式环境部署)
|
||||
|
||||
## 已升级 Skills
|
||||
|
||||
1. **security-server-ops**:何时使用表新增该触发词,明确直接执行命令
|
||||
2. **soul-project-boundary**:按场景触发词表新增,加载 security-server-ops 后执行
|
||||
9
.cursor/agent/安全工程师/evolution/索引.md
Normal file
9
.cursor/agent/安全工程师/evolution/索引.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 安全工程师 经验索引
|
||||
|
||||
> 挖矿病毒排查、服务器加固、部署与运维相关经验。
|
||||
|
||||
| 日期 | 摘要 | 文件 |
|
||||
|------|------|------|
|
||||
| 2026-03-20 | 挖矿病毒排查经验转化为 Skills;服务器操作 Skill 创建 | 2026-03-20-挖矿与服务器Skills.md |
|
||||
| 2026-03-20 | 「帮我部署api到线上」→ 执行 soul-api/master.py | 2026-03-20-部署API触发词.md |
|
||||
| 2026-03-20 | 「管理端帮我部署到xx环境」→ 语义化解析,正式→master.py,测试→deploy.py | 2026-03-20-管理端部署触发词.md |
|
||||
41
.cursor/agent/小程序开发工程师/evolution/2026-03-19-原生按钮覆盖定位.md
Normal file
41
.cursor/agent/小程序开发工程师/evolution/2026-03-19-原生按钮覆盖定位.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# 原生按钮覆盖定位,避免样式干扰
|
||||
|
||||
**日期**:2026-03-19
|
||||
**场景**:小程序中需在头像、图片等区域触发 `open-type="chooseAvatar"` 等原生能力,用 `<button>` 包裹会导致原生样式(灰色矩形、边框等)影响界面。
|
||||
|
||||
**方案**:**不用 button 包裹**,改为 **button 绝对定位覆盖** 在目标区域上方。
|
||||
|
||||
## 正确结构
|
||||
|
||||
```html
|
||||
<!-- 外层:position: relative 作为定位参考 -->
|
||||
<view class="avatar-wrap">
|
||||
<!-- 实际展示内容:头像、徽章等 -->
|
||||
<view class="avatar-inner">...</view>
|
||||
<view class="vip-badge">VIP</view>
|
||||
<!-- 透明 button 覆盖在上方,同级而非包裹 -->
|
||||
<button class="avatar-overlay-btn" open-type="chooseAvatar" bindchooseavatar="onChooseAvatar"></button>
|
||||
</view>
|
||||
```
|
||||
|
||||
```css
|
||||
.avatar-wrap { position: relative; }
|
||||
.avatar-overlay-btn {
|
||||
position: absolute; top: 0; left: 0;
|
||||
width: 130rpx; height: 130rpx; /* 与头像一致 */
|
||||
padding: 0; margin: 0;
|
||||
background: transparent; border: none;
|
||||
}
|
||||
.avatar-overlay-btn::after { border: none; }
|
||||
```
|
||||
|
||||
## 要点
|
||||
|
||||
- **同级关系**:button 与展示元素是 sibling,不是 parent-child
|
||||
- **绝对定位**:`position: absolute` 覆盖在目标区域上,不参与文档流
|
||||
- **透明无内容**:button 仅负责点击事件,样式完全透明
|
||||
- **适用**:chooseAvatar、open-type 等需 button 触发的原生能力
|
||||
|
||||
## 升级 Skill
|
||||
|
||||
已写入 `miniprogram-dev` SKILL §12。
|
||||
39
.cursor/agent/小程序开发工程师/evolution/2026-03-20-手机号登录与公用组件.md
Normal file
39
.cursor/agent/小程序开发工程师/evolution/2026-03-20-手机号登录与公用组件.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# 手机号一键登录与登录弹窗公用组件
|
||||
|
||||
> 日期:2026-03-20 | 角色:小程序开发工程师
|
||||
|
||||
## 问题与场景
|
||||
|
||||
1. **getPhoneNumber 不弹窗**:点击手机号登录按钮时,无法弹出手机号选择界面,也无法获取手机号
|
||||
2. **登录弹窗重复**:read、my、gift-pay/detail 三处各自维护一套登录弹窗,逻辑重复、维护成本高
|
||||
3. **登录后手机号未同步**:手机号登录后若响应中 user.phone 为空,本地 userInfo 未更新
|
||||
|
||||
## 解决方案
|
||||
|
||||
### 1. getPhoneNumber 必须与隐私协议耦合
|
||||
|
||||
- **open-type**:`open-type="getPhoneNumber|agreePrivacyAuthorization"`(基础库 2.32.3+)
|
||||
- **onNeedPrivacyAuthorization**:app.js 中需将使用 getPhoneNumber 的页面加入支持列表,否则会 `resolve({ event: 'disagree' })` 导致获取失败
|
||||
- **支持页面**:avatar-nickname、profile-edit、read、my、gift-pay/detail、index、settings
|
||||
- **隐私弹窗**:当 onNeedPrivacyAuthorization 触发时,页面需有 `showPrivacyModal` + `<button open-type="agreePrivacyAuthorization">` 供用户同意
|
||||
|
||||
### 2. 登录弹窗公用组件
|
||||
|
||||
- **组件路径**:`components/login-modal/`
|
||||
- **使用方式**:`<login-modal show="{{showLoginModal}}" desc="..." showPrivacyModal="{{showPrivacyModal}}" showCancel="{{true}}" bind:close="..." bind:success="..." bind:privacyagree="..." />`
|
||||
- **适用页面**:read、my、gift-pay/detail
|
||||
- **app.json**:全局注册 `"login-modal": "/components/login-modal/login-modal"`
|
||||
|
||||
### 3. 登录后手机号同步
|
||||
|
||||
- **loginWithPhone 后**:若 `user.phone` 为空,调用 `_syncPhoneFromProfileAfterLogin(userId)` 从 profile 拉取最新
|
||||
- **checkLoginStatus 恢复缓存时**:若 `userInfo.phone` 为空,调用 `_refreshUserInfoIfPhoneEmpty()` 静默刷新
|
||||
|
||||
## 管理后台配置
|
||||
|
||||
- **隐私保护指引**:小程序管理后台 → 设置 → 用户隐私保护指引,必须声明「收集你选择的手机号」
|
||||
- **主体限制**:个人主体小程序无法使用 getPhoneNumber
|
||||
|
||||
## 升级 Skill
|
||||
|
||||
- miniprogram-dev SKILL §8 补充 getPhoneNumber 耦合与 onNeedPrivacyAuthorization 页面支持
|
||||
@@ -13,3 +13,5 @@
|
||||
| 2026-03-14 | 我的页设置入口隐藏;资料修改引导场景梳理(登录后、@某人、找伙伴、链接卡若) | [2026-03-14.md](./2026-03-14.md) |
|
||||
| 2026-03-16 | 编辑资料页分享名片:转发/朋友圈特殊处理,Canvas 绘制封面,标题「昵称+为您分享名片」 | [2026-03-16.md](./2026-03-16.md) |
|
||||
| 2026-03-17 | 代付美团式:读页→代付页→分享;详情页双态(发起人/好友);目录 loading、最新新增 5 条折叠 | [2026-03-17.md](./2026-03-17.md) |
|
||||
| 2026-03-19 | 原生按钮覆盖定位:chooseAvatar 等用绝对定位 overlay 覆盖,禁止 button 包裹,避免原生样式影响 | [2026-03-19-原生按钮覆盖定位.md](./2026-03-19-原生按钮覆盖定位.md) |
|
||||
| 2026-03-20 | 手机号一键登录与公用组件:getPhoneNumber 耦合 agreePrivacyAuthorization;login-modal 组件;登录后手机号同步 | [2026-03-20-手机号登录与公用组件.md](./2026-03-20-手机号登录与公用组件.md) |
|
||||
|
||||
@@ -53,6 +53,10 @@
|
||||
| 2026-03-17 | 后端、团队 | 架构/最佳实践 | api-dev SKILL | Redis 缓存:parts/hot/recommended/stats/config/章节 content;容灾回退 DB;OSS 上传;/health 返回 database/redis 状态 |
|
||||
| 2026-03-18 | 小程序、团队 | 业务规则/最佳实践 | - | 分享链路兼容好友/朋友圈 singlePage:单页模式能力降级(不支付/不自动领取),引导点击底部“前往小程序”进入完整版 |
|
||||
| 2026-03-18 | 产品、后端、管理端、测试 | 文档归档/需求口径 | - | 文档归档整理:以《以界面定需求》为基准,各角色重整“功能需求+验收口径+风险点”并写入各自经验库;补齐《项目落地推进表》 |
|
||||
| 2026-03-19 | 小程序 | 最佳实践 | miniprogram-dev SKILL §11 | 原生按钮覆盖定位:chooseAvatar 等用绝对定位 overlay 覆盖,禁止 button 包裹,避免原生样式影响(灰色矩形等) |
|
||||
| 2026-03-20 | 安全工程师 | 触发词约定 | security-server-ops、soul-project-boundary | 「帮我部署api到线上」→ 直接执行 soul-api/master.py |
|
||||
| 2026-03-20 | 安全工程师 | 触发词约定 | security-server-ops、soul-project-boundary | 「管理端帮我部署到xx环境」→ 语义化解析:正式→master.py,测试→deploy.py |
|
||||
| 2026-03-20 | 小程序 | 最佳实践 | miniprogram-dev SKILL §8 | 手机号登录:getPhoneNumber 需耦合 agreePrivacyAuthorization;onNeedPrivacyAuthorization 支持页面;登录弹窗公用组件 login-modal |
|
||||
|
||||
---
|
||||
|
||||
@@ -63,4 +67,4 @@
|
||||
|
||||
---
|
||||
|
||||
**最后更新**:2026-03-18
|
||||
**最后更新**:2026-03-20
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
## 项目总结
|
||||
|
||||
Soul 创业派对产品定位:面向创业者的社区/工具型小程序。核心需求文档在 `开发文档/1、需求/需求汇总.md`,项目推进表在 `开发文档/10、项目管理/项目落地推进表.md`,临时需求/分析在 `临时需求池/`。
|
||||
Soul 创业派对产品定位:面向创业者的社区/工具型小程序。核心需求文档在 `开发文档/1、需求/`(按日期命名,以最新为主;见 `1、需求/索引.md`),项目推进表在 `开发文档/10、项目管理/项目落地推进表.md`,临时需求/分析在 `临时需求池/`。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -31,9 +31,11 @@ Soul 创业派对全项目架构与约定:路由隔离(miniprogram/admin/db
|
||||
| 2026-03-17 | 性能优化与 Redis 缓存方案落地:Redis 容灾回退 DB、OSS 上传容灾;/health 返回 database/redis 状态 | 已完成 |
|
||||
| 2026-03-18 | 吸收经验:分享进入链路需兼容朋友圈 singlePage;单页模式不执行支付/自动领取等强动作并引导“前往小程序” | 已完成 |
|
||||
| 2026-03-18 | 会议:超级个体开通后自动创建@人统一走 Person;幂等键绑定 userId;默认资料 flags 后端输出 | 已完成 |
|
||||
| 2026-03-20 | 「帮我部署api到线上」→ 安全工程师执行 soul-api/master.py;security-server-ops、soul-project-boundary 触发词升级 | 已完成 |
|
||||
| 2026-03-20 | 「管理端帮我部署到xx环境」→ 语义化解析:正式/线上/生产→master.py,测试/dev→deploy.py;soul-admin 部署脚本索引 | 已完成 |
|
||||
|
||||
> **格式说明**:每次架构级讨论后在此追加一行,日期格式 YYYY-MM-DD
|
||||
|
||||
---
|
||||
|
||||
**最后更新**:2026-03-18
|
||||
**最后更新**:2026-03-20
|
||||
|
||||
@@ -41,9 +41,11 @@
|
||||
| 2026-03-17 | 会议收尾:源码优化 5 项全部完成;开发环境测试通过 | 已完成 |
|
||||
| 2026-03-18 | 吸收经验:分享链路需兼容好友/朋友圈 singlePage;单页模式能力降级并引导“前往小程序”进入完整版 | 已完成 |
|
||||
| 2026-03-18 | 会议:支付超级个体前/开通后资料默认校验,跳转 avatar-nickname 引导页(仅头像+昵称) | 已完成 |
|
||||
| 2026-03-19 | 吸收经验:原生按钮覆盖定位,chooseAvatar 用绝对定位 overlay 覆盖头像,禁止 button 包裹,已升级 SKILL §11 | 已完成 |
|
||||
| 2026-03-20 | 手机号一键登录:getPhoneNumber 耦合 agreePrivacyAuthorization;onNeedPrivacyAuthorization 支持 read/my/gift-pay/index/settings;登录弹窗公用组件 components/login-modal;登录后手机号同步 _syncPhoneFromProfileAfterLogin | 已完成 |
|
||||
|
||||
> **格式说明**:每次开发后在此追加一行,日期格式 YYYY-MM-DD,状态用:已完成 / 进行中 / 待续 / 搁置
|
||||
|
||||
---
|
||||
|
||||
**最后更新**:2026-03-18
|
||||
**最后更新**:2026-03-20
|
||||
|
||||
@@ -53,6 +53,7 @@ AGENT_BACKEND = AGENT / "后端工程师"
|
||||
AGENT_PRODUCT = AGENT / "产品经理"
|
||||
AGENT_TEST = AGENT / "软件测试"
|
||||
AGENT_TEAM = AGENT / "团队"
|
||||
AGENT_SECURITY = AGENT / "安全工程师"
|
||||
|
||||
# ========== 常用文件 ==========
|
||||
RULE_MAIN = RULES / "老板分身-索引.mdc"
|
||||
@@ -80,6 +81,9 @@ ROLE_TO_AGENT = {
|
||||
"软件测试": "软件测试",
|
||||
"测试": "软件测试",
|
||||
"测试人员": "软件测试",
|
||||
# 安全
|
||||
"安全工程师": "安全工程师",
|
||||
"安全": "安全工程师",
|
||||
# 通用
|
||||
"团队": "团队",
|
||||
}
|
||||
|
||||
@@ -12,5 +12,5 @@ alwaysApply: false
|
||||
|
||||
### 行为摘要(供模型快速理解,完整流程以 SKILL 文件为准)
|
||||
|
||||
1. **文档同步**:从对话中提炼结论/待办/变更 → 写入 `开发文档/1、需求/需求汇总.md`、`开发文档/10、项目管理/运营与变更.md`、`临时需求池/` 等对应文档
|
||||
1. **文档同步**:从对话中提炼结论/待办/变更 → 写入 `开发文档/1、需求/YYYY-MM-DD-需求.md`(当日文件,以日期最新为主)、`开发文档/10、项目管理/运营与变更.md`、`临时需求池/` 等对应文档
|
||||
2. **经验入库**:提炼经验 → 写入 `agent/{角色}/evolution/YYYY-MM-DD.md` → 更新 `agent/开发助理/项目索引/{索引名}.md`(写日期)→ 更新 `agent/开发助理/经验清单.md` → 升级对应 SKILL
|
||||
|
||||
@@ -20,6 +20,13 @@ alwaysApply: true
|
||||
| 预览/参考 | next-project/ | 仅预览,非线上 | 不依赖 |
|
||||
| **新版管理端** | **new-soul/soul-admin/** | 新版参考实现,迁移时对照 | soul-api |
|
||||
|
||||
## 需求目录与命名约定
|
||||
|
||||
- **需求目录**:`开发文档/1、需求/`
|
||||
- **命名**:`YYYY-MM-DD-需求.md` 或 `YYYY-MM-DD-简短描述.md`
|
||||
- **主需求**:以日期最新的需求文件为主;同步需求时新建/更新当日文件,并更新 `1、需求/索引.md`
|
||||
- **基准**:`以界面定需求.md` 为界面级需求基准,新增/改版界面或业务规则时先更新该文档
|
||||
|
||||
## 核心原则
|
||||
|
||||
- 小程序只调 `/api/miniprogram/*`;管理端只调 `/api/admin/*`、`/api/db/*`;禁止混用。
|
||||
@@ -50,6 +57,7 @@ alwaysApply: true
|
||||
| 小程序、miniprogram、C 端、微信小程序 | 小程序开发工程师 | `e:\Gongsi\Mycontent\.cursor\skills\miniprogram-dev\SKILL.md` |
|
||||
| 产品、需求、验收、排期、需求文档 | 产品经理 | `e:\Gongsi\Mycontent\.cursor\skills\product-manager\SKILL.md` |
|
||||
| 测试、测试用例、回归测试、功能测试、QA | 测试人员 | `e:\Gongsi\Mycontent\.cursor\skills\testing\SKILL.md` |
|
||||
| 挖矿、安全、服务器操作、部署、miner_guard、xmrig、入侵排查 | 安全工程师 | `e:\Gongsi\Mycontent\.cursor\skills\security-miner-guard\SKILL.md`、`e:\Gongsi\Mycontent\.cursor\skills\security-server-ops\SKILL.md` |
|
||||
|
||||
### 按场景触发词
|
||||
|
||||
@@ -63,5 +71,7 @@ alwaysApply: true
|
||||
| 会议结束、散会、会开完了 | `e:\Gongsi\Mycontent\.cursor\skills\assistant-doc-sync\SKILL.md`(会议收尾) |
|
||||
| **加个需求**、加个需求:xxx | `e:\Gongsi\Mycontent\.cursor\skills\product-manager\SKILL.md`(产品经理三端分析 → 功能规划 → 指派) |
|
||||
| **新版分析**、版本对比、迁移分析、甲方代码分析、快速分析新版、抽取需求 | `e:\Gongsi\Mycontent\.cursor\skills\new-version-analyze\SKILL.md`(新版快速分析 → 差异清单 → 接口冲突 → 迁移迭代) |
|
||||
| **帮我部署api到线上** | `e:\Gongsi\Mycontent\.cursor\skills\security-server-ops\SKILL.md`(安全工程师 → 执行 soul-api/master.py) |
|
||||
| **管理端帮我部署到xx环境** | `e:\Gongsi\Mycontent\.cursor\skills\security-server-ops\SKILL.md`(安全工程师 → 语义化解析 xx:正式/线上/生产→master.py,测试/dev→deploy.py) |
|
||||
|
||||
**注意**:「必须 Read」= 使用 Read 工具读取**绝对路径**的完整文件内容后执行,不可跳过或仅凭记忆。
|
||||
|
||||
@@ -39,6 +39,7 @@ alwaysApply: true
|
||||
- 产品/需求/config→**产品经理**
|
||||
- 测试/自检/QA→**软件测试**
|
||||
- 架构/选型/路由约定/三端协同→**团队**
|
||||
- 挖矿/安全/服务器操作/部署/入侵排查→**安全工程师**
|
||||
- 无法判断→**通用**(写入开发助理)
|
||||
3. **若可写文件**:
|
||||
- **有明确目标角色**:写入 `.cursor/agent/{角色}/evolution/YYYY-MM-DD-简短描述.md`,并更新该目录下的 `索引.md`
|
||||
|
||||
@@ -30,7 +30,7 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
|
||||
|
||||
| 要点类型 | 写入位置 | 示例 |
|
||||
|----------|----------|------|
|
||||
| 需求清单项 | `开发文档/1、需求/需求汇总.md` 需求清单表 | 会员分润差异化、VIP 手动设置 |
|
||||
| 需求清单项 | `开发文档/1、需求/YYYY-MM-DD-需求.md`(当日文件,以日期最新为主) | 会员分润差异化、VIP 手动设置;同步后更新 `1、需求/索引.md` |
|
||||
| 近期讨论 | `开发文档/10、项目管理/运营与变更.md` | 第五部分或新增节 |
|
||||
| 技术分析 | `临时需求池/` 或 `开发文档/8、部署/` | 分润需求-技术分析.md |
|
||||
| 项目推进 | `开发文档/10、项目管理/项目落地推进表.md` | 第十二节永平落地表 |
|
||||
@@ -83,6 +83,7 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
|
||||
| 后端开发 | `agent/后端工程师/evolution/` | `agent/开发助理/项目索引/后端.md` |
|
||||
| 产品经理 | `agent/产品经理/evolution/` | `agent/开发助理/项目索引/产品.md` |
|
||||
| 测试人员 | `agent/软件测试/evolution/` | `agent/开发助理/项目索引/测试.md` |
|
||||
| 安全工程师 | `agent/安全工程师/evolution/` | `agent/开发助理/项目索引/团队.md` |
|
||||
| 助理橙子 | `agent/开发助理/evolution/` | `agent/开发助理/项目索引/助理橙子.md` |
|
||||
| 跨角色/团队 | `agent/团队/evolution/` | `agent/开发助理/项目索引/团队.md` |
|
||||
|
||||
@@ -129,7 +130,10 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
|
||||
|
||||
```
|
||||
开发文档/
|
||||
├── 1、需求/需求汇总.md # 需求清单、业务需求
|
||||
├── 1、需求/
|
||||
│ ├── 索引.md # 主需求 = 日期最新的需求文件
|
||||
│ ├── YYYY-MM-DD-需求.md # 需求文件按日期命名,以最新为主
|
||||
│ └── 以界面定需求.md # 界面级需求基准
|
||||
├── 8、部署/ # 技术方案、部署说明
|
||||
├── 10、项目管理/
|
||||
│ ├── 项目落地推进表.md # 里程碑、永平落地
|
||||
@@ -152,7 +156,7 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
|
||||
**小橙**执行:
|
||||
|
||||
1. 提炼:VIP 手动设置已完成;会员分润差异化待实现;好友优惠仅针对文章
|
||||
2. 更新 `需求汇总.md`:新增「需求清单」行
|
||||
2. 更新 `1、需求/YYYY-MM-DD-需求.md`(当日文件):新增「需求清单」行;同步后更新 `1、需求/索引.md`
|
||||
3. 更新 `运营与变更.md`:第五部分追加近期讨论
|
||||
4. 回复:已记录并更新开发文档,详见 xxx
|
||||
|
||||
|
||||
@@ -79,6 +79,8 @@ description: Soul 创业派对小程序开发规范。在 miniprogram/ 下编辑
|
||||
## 8. 平台合规与能力检测(2025 起)
|
||||
|
||||
- **隐私按需授权**:涉及用户信息的接口(登录、手机号、位置等)必须在用户**实际触发功能时**再请求授权,禁止在 `app.onLaunch` 中集中请求。需配置《小程序用户隐私保护指引》,使用 `<button open-type="agreePrivacyAuthorization">` 获取同意。
|
||||
- **getPhoneNumber 必须耦合**:`open-type="getPhoneNumber|agreePrivacyAuthorization"`(基础库 2.32.3+),否则无法弹窗获取手机号。同时需在 app.js 的 `onNeedPrivacyAuthorization` 中将该页面加入支持列表,并提供 `showPrivacyModal` + 同意按钮,否则会 resolve(disagree) 导致失败。
|
||||
- **登录弹窗**:使用公用组件 `components/login-modal`,read/my/gift-pay 等页面引入,避免重复实现。
|
||||
- **能力检测**:使用新 API 前用 `wx.canIUse('api.xxx')` 检测,低版本做降级。
|
||||
- **Skyline(可选)**:性能敏感页面可在 `page.json` 中配置 `"renderer": "skyline"`,仍使用 WXML/WXSS。
|
||||
|
||||
@@ -104,7 +106,24 @@ description: Soul 创业派对小程序开发规范。在 miniprogram/ 下编辑
|
||||
|
||||
---
|
||||
|
||||
## 11. 何时使用本 Skill
|
||||
## 11. 原生按钮覆盖定位(避免样式干扰)
|
||||
|
||||
- **场景**:在头像、图片等区域需触发 `open-type="chooseAvatar"` 等原生能力时,**禁止用 button 包裹**目标元素,否则会受原生样式影响(灰色矩形、边框等)。
|
||||
- **正确做法**:用 **button 绝对定位覆盖** 在目标区域上方,与展示元素为同级关系。
|
||||
- **结构示例**:
|
||||
```html
|
||||
<view class="avatar-wrap">
|
||||
<view class="avatar-inner">...</view>
|
||||
<view class="vip-badge">VIP</view>
|
||||
<button class="avatar-overlay-btn" open-type="chooseAvatar" bindchooseavatar="onChooseAvatar"></button>
|
||||
</view>
|
||||
```
|
||||
- **样式**:`.avatar-wrap { position: relative; }`;`.avatar-overlay-btn { position: absolute; top: 0; left: 0; width/height 与目标一致; background: transparent; border: none; }`;`::after { border: none; }`。
|
||||
- **口诀**:同级覆盖,绝对定位,透明按钮。
|
||||
|
||||
---
|
||||
|
||||
## 12. 何时使用本 Skill
|
||||
|
||||
- 在 **miniprogram/** 下新增或修改页面、组件、utils 时。
|
||||
- 在小程序内新增或修改任何网络请求路径时(必须保持 `/api/miniprogram/...`)。
|
||||
@@ -114,5 +133,6 @@ description: Soul 创业派对小程序开发规范。在 miniprogram/ 下编辑
|
||||
- 做个人中心、设置页布局时(遵循 §7,卡片区边距 16rpx)。
|
||||
- 做阅读、文章等需长按复制的文本时(遵循 §9,text 加 user-select)。
|
||||
- 做编辑资料页分享名片时(遵循 §10)。
|
||||
- 做头像上传、chooseAvatar 等需 button 触发的原生能力时(遵循 §11,用绝对定位覆盖,禁止 button 包裹)。
|
||||
|
||||
遵循本 Skill 可保证小程序只与 soul-api 的 miniprogram 路由组对接,避免与管理端或 next-project 接口混用。
|
||||
|
||||
@@ -192,10 +192,10 @@ description: 新版快速分析 Skill。甲方/第三方 AI 写的新版本,
|
||||
2. 排除:技术债、规则不清、与稳定版冲突的部分
|
||||
3. 按**最小功能**拆分,保证每个任务迁移后能完整运行
|
||||
4. 排期顺序:**界面修改优先** → 大逻辑排后;P0(逻辑不通)→ P1(功能缺失)→ P2(优化)
|
||||
5. 写入需求汇总,形成迁移任务清单
|
||||
5. 写入需求清单(当日需求文件),形成迁移任务清单
|
||||
|
||||
**产出**:
|
||||
- `开发文档/1、需求/需求汇总.md` 追加需求
|
||||
- `开发文档/1、需求/YYYY-MM-DD-需求.md` 追加需求(当日文件,以日期最新为主;同步后更新 `1、需求/索引.md`)
|
||||
- `开发文档/新版迁移-开发方案与清单.md` 或等价迁移清单
|
||||
|
||||
---
|
||||
@@ -259,7 +259,7 @@ description: 新版快速分析 Skill。甲方/第三方 AI 写的新版本,
|
||||
4. **逻辑分层**:每个功能过三层(界面/接口/数据)
|
||||
5. **体验评估**:补充空态、错误态、边界处理
|
||||
6. **接口规范与冲突**:产出接口规范与冲突清单
|
||||
7. **抽取需求**:写入需求汇总,形成迁移任务清单
|
||||
7. **抽取需求**:写入需求清单(当日需求文件),形成迁移任务清单
|
||||
8. **需求评审(迁移前必做)**:列出功能点 + 样式变更,逐一确认,产出评审清单
|
||||
9. **回复用户**:给出分析摘要 + 文档路径 + 建议执行顺序;**迁移须在需求评审通过后开始**
|
||||
|
||||
@@ -273,7 +273,7 @@ description: 新版快速分析 Skill。甲方/第三方 AI 写的新版本,
|
||||
| 接口规范与冲突 | `开发文档/新版迁移-接口规范与冲突清单.md` |
|
||||
| 迁移方案/清单 | `开发文档/新版迁移-开发方案与清单.md` 或 `新版功能迁移到稳定版方案.md` |
|
||||
| **需求评审清单** | `开发文档/新版迁移-需求评审清单.md`(功能点 + 样式变更,含确认状态) |
|
||||
| 需求汇总 | `开发文档/1、需求/需求汇总.md` |
|
||||
| 需求清单 | `开发文档/1、需求/YYYY-MM-DD-需求.md`(以日期最新为主) |
|
||||
|
||||
若已有同名文档,在其基础上**追加或更新**,不重复创建。
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ description: Soul 创业派对产品经理需求与验收。需求分析、需
|
||||
|
||||
### 0.3 功能规划与协调变更
|
||||
|
||||
1. **输出需求分析**:写入 `临时需求池/YYYY-MM-DD-需求简述.md` 或追加到 `需求汇总.md` 需求清单
|
||||
1. **输出需求分析**:写入 `临时需求池/YYYY-MM-DD-需求简述.md` 或追加到 `开发文档/1、需求/YYYY-MM-DD-需求.md` 需求清单(以日期最新为主,同步后更新 `1、需求/索引.md`)
|
||||
2. **三端任务拆分**:按上表列出「小程序任务」「管理端任务」「后端任务」
|
||||
3. **协调变更**:若需更新《以界面定需求》,同步更新界面清单与业务逻辑
|
||||
4. **指派**:明确各任务对应角色(小程序开发工程师、管理端开发工程师、后端工程师),并给出执行顺序建议(通常:后端 → 小程序;管理端视依赖可并行或后置)
|
||||
@@ -73,7 +73,7 @@ description: Soul 创业派对产品经理需求与验收。需求分析、需
|
||||
| 职责 | 说明 | 产出 |
|
||||
|------|------|------|
|
||||
| 需求分析 | 业务需求拆解、优先级、技术可行性 | 需求分析文档、临时需求池 |
|
||||
| 需求文档 | 需求清单、业务规则、验收标准 | 需求汇总.md、运营与变更.md |
|
||||
| 需求文档 | 需求清单、业务规则、验收标准 | 1、需求/YYYY-MM-DD-需求.md(以最新为主)、运营与变更.md |
|
||||
| 验收 | 功能验收、回归检查 | 验收清单、项目推进表 |
|
||||
| 协调 | 与开发沟通、排期、变更 | 运营与变更、项目落地推进表 |
|
||||
|
||||
@@ -83,7 +83,7 @@ description: Soul 创业派对产品经理需求与验收。需求分析、需
|
||||
|
||||
| 文档 | 说明 |
|
||||
|------|------|
|
||||
| `开发文档/1、需求/需求汇总.md` | 需求清单、业务需求 |
|
||||
| `开发文档/1、需求/` | 需求清单(按日期命名,以最新为主)、业务需求;见 `1、需求/索引.md` |
|
||||
| `临时需求池/` | 需求分析、技术分析 |
|
||||
| `开发文档/10、项目管理/项目落地推进表.md` | 里程碑、永平落地 |
|
||||
| `开发文档/10、项目管理/运营与变更.md` | 近期讨论、变更记录 |
|
||||
|
||||
112
.cursor/skills/security-miner-guard/SKILL.md
Normal file
112
.cursor/skills/security-miner-guard/SKILL.md
Normal file
@@ -0,0 +1,112 @@
|
||||
---
|
||||
description: Soul 挖矿病毒排查与防护。xmrig、kdevtmpfsi、kinsing、minerd、miner_guard。Use when 挖矿病毒、xmrig、服务器被入侵、miner_guard、安全排查、杀挖矿.
|
||||
---
|
||||
# SKILL - 挖矿病毒排查与防护(安全工程师)
|
||||
|
||||
> 基于 Soul 项目历史排查经验沉淀,用于快速识别、清理挖矿病毒并加固服务器。
|
||||
|
||||
## 何时使用
|
||||
|
||||
| 触发词 | 动作 |
|
||||
|--------|------|
|
||||
| 挖矿病毒、xmrig、服务器被入侵 | 执行排查与清理流程 |
|
||||
| miner_guard、安装挖矿守护 | 安装/检查 miner_guard |
|
||||
| 安全排查、杀挖矿 | 按本 Skill 执行 |
|
||||
|
||||
---
|
||||
|
||||
## 一、挖矿病毒特征(Soul 项目实测)
|
||||
|
||||
### 1.1 进程/路径关键词
|
||||
|
||||
| 关键词 | 说明 |
|
||||
|--------|------|
|
||||
| xmrig | 门罗币挖矿程序,最常见 |
|
||||
| xmr-stak, minerd, cpuminer | 其他 CPU 挖矿 |
|
||||
| kdevtmpfsi, kinsing | Linux 常见挖矿木马 |
|
||||
| stratum | 矿池协议 |
|
||||
| libprocesshider, watchbog, ddgs, trace | 隐藏/持久化相关 |
|
||||
|
||||
### 1.2 常见路径
|
||||
|
||||
- `/tmp/xmrig`、`/tmp/config.json`、`/tmp/.x`
|
||||
- `/tmp/kdevtmpfsi`、`/tmp/kinsing`
|
||||
- `/www/wwwroot/**/xmrig*`(宝塔站点目录下残留)
|
||||
- `/www/wwwroot/self/wanzhi/tongzhi/xmrig-*`(历史发现)
|
||||
|
||||
### 1.3 入侵链路(Soul 项目根因分析)
|
||||
|
||||
```
|
||||
公网访问宝塔 9988 → 弱口令/漏洞 → 进入面板 → www 用户执行命令
|
||||
→ 下载 xmrig 到 /tmp → 运行挖矿
|
||||
```
|
||||
|
||||
**最可能入口**:宝塔面板 9988 对公网开放 + 弱口令/历史漏洞。
|
||||
|
||||
---
|
||||
|
||||
## 二、排查与清理脚本(soul-api 目录)
|
||||
|
||||
| 脚本 | 用途 |
|
||||
|------|------|
|
||||
| `miner_guard_check.py` | 检查 miner_guard 安装状态,手动执行一次脚本,查看日志 |
|
||||
| `miner_guard_install.py` | 安装挖矿守护到服务器(上传 miner_guard.sh + 配置 cron/systemd) |
|
||||
| `miner_guard.sh` | 守护脚本本体(杀进程、删文件、扫 /tmp、/www/wwwroot) |
|
||||
| `remove_xmrig_self.py` | 删除固定路径 `/www/wwwroot/self/wanzhi/tongzhi/xmrig-6.24.0` |
|
||||
|
||||
### 2.1 快速检查(本地执行)
|
||||
|
||||
```powershell
|
||||
cd e:\Gongsi\Mycontent\soul-api
|
||||
python miner_guard_check.py
|
||||
```
|
||||
|
||||
依赖:`pip install paramiko`。配置来源:`master.py` 的 `get_cfg()` 或环境变量 `DEPLOY_HOST`、`DEPLOY_PASSWORD` 等。
|
||||
|
||||
### 2.2 安装挖矿守护
|
||||
|
||||
```powershell
|
||||
cd e:\Gongsi\Mycontent\soul-api
|
||||
python miner_guard_install.py --yes
|
||||
```
|
||||
|
||||
- 上传 `miner_guard.sh` 到 `/root/miner_guard.sh`
|
||||
- 优先写入 `/etc/cron.d/miner_guard`(每 30 分钟),失败则尝试 crontab 或 systemd timer
|
||||
- 日志:`/var/log/miner_guard.log`
|
||||
|
||||
### 2.3 Cunkebao 服务器
|
||||
|
||||
```powershell
|
||||
cd e:\Gongsi\Mycontent\Cunkebao
|
||||
python miner_guard_install.py --yes
|
||||
```
|
||||
|
||||
使用 Cunkebao 内嵌配置(非 root 用户,日志在 `~/miner_guard.log`)。
|
||||
|
||||
---
|
||||
|
||||
## 三、加固建议(防止再次入侵)
|
||||
|
||||
| 优先级 | 措施 |
|
||||
|--------|------|
|
||||
| 1 | 宝塔面板:9988 仅允许指定 IP 访问;改非常规端口(如 29988);强密码 |
|
||||
| 2 | 修改所有密码:root、宝塔、宝塔 API、MySQL、Redis |
|
||||
| 3 | Redis:`bind 127.0.0.1`,设置 `requirepass` |
|
||||
| 4 | 敏感信息:密码/API Key 用环境变量,不提交到 Git |
|
||||
|
||||
---
|
||||
|
||||
## 四、miner_guard.sh 行为摘要
|
||||
|
||||
1. **杀进程**:`pgrep -f xmrig|kdevtmpfsi|kinsing|...` → `kill -9`
|
||||
2. **删已知路径**:`/tmp/xmrig`、`/tmp/config.json` 等
|
||||
3. **扫 /tmp、/var/tmp、/dev/shm**:含挖矿关键词的可执行文件 → `rm -f`
|
||||
4. **扫 /www/wwwroot**:含 xmrig 的目录/文件 → `rm -rf` / `rm -f`
|
||||
5. **检查 www 用户 crontab**:可疑项仅提示,不自动删
|
||||
|
||||
---
|
||||
|
||||
## 五、注意事项
|
||||
|
||||
- 脚本会按关键词删除,可能与业务目录重叠,部署前确认扫描范围
|
||||
- `master.py`、`devloy.py` 等含默认密码,应改为环境变量并确保 `.env` 不入库
|
||||
147
.cursor/skills/security-server-ops/SKILL.md
Normal file
147
.cursor/skills/security-server-ops/SKILL.md
Normal file
@@ -0,0 +1,147 @@
|
||||
---
|
||||
description: Soul 服务器操作与部署。部署脚本、SSH、宝塔、环境变量。Use when 部署、服务器操作、SSH、宝塔、devloy、master、Cunkebao 部署.
|
||||
---
|
||||
# SKILL - 服务器操作与部署(安全工程师)
|
||||
|
||||
> Soul 项目部署脚本索引与服务器操作规范。**密码等敏感信息仅通过环境变量或脚本内 get_cfg() 读取,不在此文档明文列出。**
|
||||
|
||||
## 何时使用
|
||||
|
||||
| 触发词 | 动作 |
|
||||
|--------|------|
|
||||
| **帮我部署api到线上** | **直接执行 `cd soul-api && python master.py`** |
|
||||
| **管理端帮我部署到xx环境** | **语义化解析 xx,直接执行**:含「正式」「线上」「生产」→ `cd soul-admin && python master.py`;含「测试」「dev」→ `cd soul-admin && python deploy.py` |
|
||||
| 部署、服务器操作、SSH | 按本 Skill 选择对应脚本 |
|
||||
| 宝塔、devloy、master | 查阅部署配置与命令 |
|
||||
| Cunkebao 部署 | 使用 Cunkebao 专用脚本 |
|
||||
|
||||
---
|
||||
|
||||
## 一、服务器与配置来源
|
||||
|
||||
### 1.1 配置读取优先级
|
||||
|
||||
各部署脚本统一约定:
|
||||
|
||||
1. **环境变量**(推荐):`DEPLOY_HOST`、`DEPLOY_USER`、`DEPLOY_PASSWORD`、`DEPLOY_SSH_PORT`、`BT_API_KEY` 等
|
||||
2. **脚本内 get_cfg()**:无环境变量时使用脚本默认值
|
||||
3. **master.py**:soul-api 的 miner_guard_check、remove_xmrig_self 等从 `soul-api/master.py` 的 `get_cfg()` 读取
|
||||
|
||||
### 1.2 服务器索引(配置来源,不含明文密码)
|
||||
|
||||
| 项目 | 主机 | 端口 | 用户 | 配置来源 |
|
||||
|------|------|------|------|----------|
|
||||
| soul-api 正式 | 43.139.27.93 | 22022 | root | master.py / 环境变量 |
|
||||
| soul-api 测试 | 43.139.27.93 | 22022 | root | devloy.py / 环境变量 |
|
||||
| soul-admin 正式 | 43.139.27.93 | 22022 | root | soul-admin/master.py / 环境变量 |
|
||||
| soul-admin 测试 | 43.139.27.93 | 22022 | root | soul-admin/deploy.py / 环境变量 |
|
||||
| Cunkebao | 42.194.245.239 | 6523 | yongpxu | Cunkebao/miner_guard_install.py 内嵌 |
|
||||
|
||||
**密码**:从 `DEPLOY_PASSWORD` 或各脚本 `get_cfg()` 默认值读取,**不在此文档记录**。
|
||||
|
||||
---
|
||||
|
||||
## 二、部署脚本索引
|
||||
|
||||
### 2.1 soul-api
|
||||
|
||||
| 脚本 | 用途 | 命令示例 |
|
||||
|------|------|----------|
|
||||
| `soul-api/devloy.py` | 测试环境部署(binary/docker/runner) | `python devloy.py --mode runner` |
|
||||
| `soul-api/master.py` | 正式环境部署 | `python master.py` |
|
||||
| `soul-api/deploy/runner-init.sh` | Runner 容器首次初始化 | `bash deploy/runner-init.sh` |
|
||||
| `soul-api/deploy/docker-deploy-remote.sh` | 服务器上执行蓝绿切换 | 由 devloy 自动调用 |
|
||||
| `soul-api/deploy/deploy-runner-remote.sh` | Runner 模式部署包拷贝 | 由 devloy 自动调用 |
|
||||
|
||||
**devloy 模式**:
|
||||
|
||||
- `--mode runner`:容器内红蓝切换,宝塔固定 9001
|
||||
- `--mode docker`:宿主机蓝绿,需 Nginx 切换
|
||||
- `--mode binary`:Go 二进制 + 宝塔 soulDev
|
||||
|
||||
### 2.2 soul-admin
|
||||
|
||||
| 脚本 | 用途 | 命令示例 |
|
||||
|------|------|----------|
|
||||
| `soul-admin/master.py` | 正式环境部署(soul-admin,pnpm build) | `python master.py` |
|
||||
| `soul-admin/deploy.py` | 测试环境部署(soul-admin-dev,pnpm build:dev) | `python deploy.py` |
|
||||
|
||||
### 2.3 挖矿防护
|
||||
|
||||
| 脚本 | 用途 | 命令示例 |
|
||||
|------|------|----------|
|
||||
| `soul-api/miner_guard_install.py` | 安装挖矿守护(soul 服务器) | `python miner_guard_install.py --yes` |
|
||||
| `Cunkebao/miner_guard_install.py` | 安装挖矿守护(Cunkebao) | `cd Cunkebao && python miner_guard_install.py --yes` |
|
||||
|
||||
---
|
||||
|
||||
## 三、环境变量一览
|
||||
|
||||
| 变量 | 说明 | 默认来源 |
|
||||
|------|------|----------|
|
||||
| DEPLOY_HOST | SSH 主机 | 各脚本 get_cfg() |
|
||||
| DEPLOY_USER | SSH 用户 | root |
|
||||
| DEPLOY_PASSWORD | SSH 密码 | 脚本默认 / 需设置 |
|
||||
| DEPLOY_SSH_KEY | SSH 私钥路径 | 空 |
|
||||
| DEPLOY_SSH_PORT | SSH 端口 | 22022 |
|
||||
| BT_PANEL_URL | 宝塔面板 URL | https://{host}:9988 |
|
||||
| BT_API_KEY | 宝塔 API 密钥 | 脚本内默认 |
|
||||
| BT_GO_PROJECT_NAME | 宝塔 Go 项目名 | soulDev / soulApi |
|
||||
| DEPLOY_DOCKER_PATH | 部署目录 | /www/wwwroot/self/soul-dev |
|
||||
| DEPLOY_NGINX_CONF | Nginx 配置路径 | 空(可自动探测) |
|
||||
|
||||
---
|
||||
|
||||
## 四、常用操作
|
||||
|
||||
### 4.1 SSH 连接(示例,密码从环境变量读取)
|
||||
|
||||
```powershell
|
||||
# 设置环境变量后
|
||||
$env:DEPLOY_HOST="43.139.27.93"
|
||||
$env:DEPLOY_PASSWORD="<从安全存储读取>"
|
||||
ssh -p 22022 root@43.139.27.93
|
||||
```
|
||||
|
||||
### 4.2 部署 soul-api 测试环境(Runner 模式)
|
||||
|
||||
```powershell
|
||||
cd e:\Gongsi\Mycontent\soul-api
|
||||
python devloy.py --mode runner
|
||||
```
|
||||
|
||||
### 4.3 部署 soul-api 正式环境
|
||||
|
||||
```powershell
|
||||
cd e:\Gongsi\Mycontent\soul-api
|
||||
python master.py
|
||||
```
|
||||
|
||||
### 4.4 部署 soul-admin 正式环境
|
||||
|
||||
```powershell
|
||||
cd e:\Gongsi\Mycontent\soul-admin
|
||||
python master.py
|
||||
```
|
||||
|
||||
### 4.5 部署 soul-admin 测试环境
|
||||
|
||||
```powershell
|
||||
cd e:\Gongsi\Mycontent\soul-admin
|
||||
python deploy.py
|
||||
```
|
||||
|
||||
### 4.6 检查挖矿守护
|
||||
|
||||
```powershell
|
||||
cd e:\Gongsi\Mycontent\soul-api
|
||||
python miner_guard_check.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、安全提醒
|
||||
|
||||
- **不要将密码提交到 Git**:master.py、devloy.py 等中的默认密码应迁移到环境变量
|
||||
- **宝塔 API 密钥**:BT_API_KEY 若泄露需在宝塔面板重新生成
|
||||
- **敏感文件**:`.env`、`master.py` 等应加入 `.gitignore` 或使用 `.env.example` 模板
|
||||
Reference in New Issue
Block a user