155 lines
3.0 KiB
Markdown
155 lines
3.0 KiB
Markdown
|
|
# 部署配置模板
|
||
|
|
|
||
|
|
## JSON配置文件结构
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"项目名称": "soul",
|
||
|
|
"项目说明": "Soul创业实验书籍阅读平台",
|
||
|
|
"域名": "soul.quwanzhi.com",
|
||
|
|
"域名列表": ["soul.quwanzhi.com"],
|
||
|
|
|
||
|
|
"本地项目路径": "/Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验",
|
||
|
|
"服务器项目路径": "/www/wwwroot/soul",
|
||
|
|
|
||
|
|
"运行用户": "www",
|
||
|
|
"Node版本": "v22.14.0",
|
||
|
|
"包管理器": "pnpm",
|
||
|
|
|
||
|
|
"端口策略": {
|
||
|
|
"优先端口": 3006,
|
||
|
|
"候选范围": [3000, 3100]
|
||
|
|
},
|
||
|
|
|
||
|
|
"构建命令": {
|
||
|
|
"安装依赖": "pnpm install",
|
||
|
|
"构建": "pnpm run build",
|
||
|
|
"启动脚本模板": "next start -p {PORT}"
|
||
|
|
},
|
||
|
|
|
||
|
|
"部署策略": {
|
||
|
|
"部署前清空目录": true,
|
||
|
|
"排除目录": ["node_modules", ".next", ".git", "out"]
|
||
|
|
},
|
||
|
|
|
||
|
|
"宝塔Node项目": {
|
||
|
|
"最大内存MB": 4096,
|
||
|
|
"自动启动": true
|
||
|
|
},
|
||
|
|
|
||
|
|
"HTTPS": {
|
||
|
|
"启用": true,
|
||
|
|
"证书目录": "/www/server/panel/vhost/cert/www.quwanzhi.com"
|
||
|
|
},
|
||
|
|
|
||
|
|
"Nginx": {
|
||
|
|
"清理重复域名配置": true,
|
||
|
|
"配置模板": "标准反向代理"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 最小化配置(必填字段)
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"项目名称": "myproject",
|
||
|
|
"域名": "myproject.quwanzhi.com",
|
||
|
|
"本地项目路径": "/path/to/local/project",
|
||
|
|
"服务器项目路径": "/www/wwwroot/myproject",
|
||
|
|
"端口策略": {
|
||
|
|
"优先端口": 3010
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 不同项目类型配置示例
|
||
|
|
|
||
|
|
### Next.js 项目
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"项目名称": "nextjs-app",
|
||
|
|
"域名": "app.quwanzhi.com",
|
||
|
|
"本地项目路径": "/path/to/nextjs",
|
||
|
|
"服务器项目路径": "/www/wwwroot/nextjs-app",
|
||
|
|
"包管理器": "pnpm",
|
||
|
|
"端口策略": {"优先端口": 3020},
|
||
|
|
"构建命令": {
|
||
|
|
"启动脚本模板": "next start -p {PORT}"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Vue 项目
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"项目名称": "vue-admin",
|
||
|
|
"域名": "admin.quwanzhi.com",
|
||
|
|
"本地项目路径": "/path/to/vue",
|
||
|
|
"服务器项目路径": "/www/wwwroot/vue-admin",
|
||
|
|
"包管理器": "npm",
|
||
|
|
"端口策略": {"优先端口": 9528},
|
||
|
|
"构建命令": {
|
||
|
|
"安装依赖": "npm install",
|
||
|
|
"构建": "npm run build:prod",
|
||
|
|
"启动脚本模板": "serve -s dist -p {PORT}"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### NestJS 后端
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"项目名称": "api-server",
|
||
|
|
"域名": "api.quwanzhi.com",
|
||
|
|
"本地项目路径": "/path/to/nestjs",
|
||
|
|
"服务器项目路径": "/www/wwwroot/api-server",
|
||
|
|
"包管理器": "pnpm",
|
||
|
|
"端口策略": {"优先端口": 3200},
|
||
|
|
"构建命令": {
|
||
|
|
"安装依赖": "pnpm install",
|
||
|
|
"构建": "pnpm run build",
|
||
|
|
"启动脚本模板": "node dist/main.js"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 配置文件存放位置
|
||
|
|
|
||
|
|
```
|
||
|
|
服务器管理/
|
||
|
|
└── 部署配置/
|
||
|
|
├── soul_部署配置.json
|
||
|
|
├── zhiji_部署配置.json
|
||
|
|
├── kr_wb_部署配置.json
|
||
|
|
└── ...
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 使用方法
|
||
|
|
|
||
|
|
```python
|
||
|
|
import json
|
||
|
|
from 功能插件.宝塔部署器 import 宝塔部署器
|
||
|
|
|
||
|
|
# 读取配置
|
||
|
|
with open("部署配置/soul_部署配置.json", "r") as f:
|
||
|
|
配置 = json.load(f)
|
||
|
|
|
||
|
|
# 执行部署
|
||
|
|
部署器 = 宝塔部署器()
|
||
|
|
结果 = 部署器.部署Node网站(配置)
|
||
|
|
|
||
|
|
print(结果)
|
||
|
|
```
|