Files
soul/开发文档/服务器管理/references/部署配置模板.md

3.0 KiB

部署配置模板

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,
    "配置模板": "标准反向代理"
  }
}

最小化配置(必填字段)

{
  "项目名称": "myproject",
  "域名": "myproject.quwanzhi.com",
  "本地项目路径": "/path/to/local/project",
  "服务器项目路径": "/www/wwwroot/myproject",
  "端口策略": {
    "优先端口": 3010
  }
}

不同项目类型配置示例

Next.js 项目

{
  "项目名称": "nextjs-app",
  "域名": "app.quwanzhi.com",
  "本地项目路径": "/path/to/nextjs",
  "服务器项目路径": "/www/wwwroot/nextjs-app",
  "包管理器": "pnpm",
  "端口策略": {"优先端口": 3020},
  "构建命令": {
    "启动脚本模板": "next start -p {PORT}"
  }
}

Vue 项目

{
  "项目名称": "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 后端

{
  "项目名称": "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
    └── ...

使用方法

import json
from 功能插件.宝塔部署器 import 宝塔部署器

# 读取配置
with open("部署配置/soul_部署配置.json", "r") as f:
    配置 = json.load(f)

# 执行部署
部署器 = 宝塔部署器()
结果 = 部署器.部署Node网站(配置)

print(结果)