description
| description |
| Soul 服务器操作与部署。部署脚本、SSH、宝塔、环境变量。Use when 部署、服务器操作、SSH、宝塔、devloy、master、Cunkebao 部署. |
SKILL - 服务器操作与部署(安全工程师)
Soul 项目部署脚本索引与服务器操作规范。密码等敏感信息仅通过环境变量或脚本内 get_cfg() 读取,不在此文档明文列出。
何时使用
| 触发词 |
动作 |
| 帮我部署一版全项目到线上 |
先部署 API:cd soul-api && python master.py,执行完毕后再部署管理端:cd soul-admin && python master.py,均为正式环境,顺序执行不并行 |
| 帮我部署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 配置读取优先级
各部署脚本统一约定:
- 环境变量(推荐):
DEPLOY_HOST、DEPLOY_USER、DEPLOY_PASSWORD、DEPLOY_SSH_PORT、BT_API_KEY 等
- 脚本内 get_cfg():无环境变量时使用脚本默认值
- 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 连接(示例,密码从环境变量读取)
4.2 部署 soul-api 测试环境(Runner 模式)
4.3 部署 soul-api 正式环境
4.4 部署 soul-admin 正式环境
4.4.1 全项目部署到线上(API → 管理端,顺序执行)
4.5 部署 soul-admin 测试环境
4.6 检查挖矿守护
五、安全提醒
- 不要将密码提交到 Git:master.py、devloy.py 等中的默认密码应迁移到环境变量
- 宝塔 API 密钥:BT_API_KEY 若泄露需在宝塔面板重新生成
- 敏感文件:
.env、master.py 等应加入 .gitignore 或使用 .env.example 模板