Files
jiebanke/scripts/deploy.ps1
aiotagro b2d940e014 docs(deployment): 更新部署文档并添加自动化部署脚本
- 更新了 DEPLOYMENT.md 文档,增加了更多部署细节和说明
- 添加了 Linux 和 Windows 平台的自动化部署脚本
- 更新了 README.md,增加了部署相关说明
- 调整了 .env 文件配置,以适应新的部署流程
- 移除了部分不必要的代码和配置
2025-09-10 14:16:27 +08:00

111 lines
3.5 KiB
PowerShell

# 结伴客项目部署脚本 (PowerShell 版本)
# 用于将项目部署到远程 CentOS 服务器
param(
[Parameter(Mandatory=$false)]
[string]$Target = ""
)
# 配置信息
$REMOTE_HOST = "1.13.156.49"
$REMOTE_USER = "root"
$REMOTE_PASSWORD = "Aiotjkl$741515"
$BACKEND_REMOTE_PATH = "/data/nodejs/jiebanke"
$ADMIN_SYSTEM_REMOTE_PATH = "/data/vue/jiebanke"
$WEBSITE_REMOTE_PATH = "/data/website/jiebanke"
# 颜色输出函数
function Write-ColorOutput($ForegroundColor) {
# Save the current color
$fc = $host.UI.RawUI.ForegroundColor
$host.UI.RawUI.ForegroundColor = $ForegroundColor
# Output the content
if ($args) {
Write-Output $args
}
else {
$input | Write-Output
}
# Restore the original color
$host.UI.RawUI.ForegroundColor = $fc
}
Write-ColorOutput Green "========== 结伴客项目部署脚本 =========="
# 检查是否提供了部署目标参数
if ($Target -eq "") {
Write-ColorOutput Yellow "使用方法:"
Write-Output " .\deploy.ps1 all - 部署所有模块"
Write-Output " .\deploy.ps1 backend - 部署后端服务"
Write-Output " .\deploy.ps1 admin - 部署后台管理系统"
Write-Output " .\deploy.ps1 website - 部署官方网站"
exit 1
}
# 部署后端服务
function Deploy-Backend {
Write-ColorOutput Green "正在部署后端服务到 $REMOTE_HOST:$BACKEND_REMOTE_PATH ..."
# 同步文件到远程服务器
Write-ColorOutput Green "正在同步文件到远程服务器..."
$rsyncArgs = "-avz --delete --exclude node_modules --exclude .git --exclude logs ../backend/ $REMOTE_USER@$REMOTE_HOST`:$BACKEND_REMOTE_PATH/"
Start-Process -FilePath "rsync" -ArgumentList $rsyncArgs -NoNewWindow -Wait
Write-ColorOutput Green "后端服务部署完成"
}
# 部署后台管理系统
function Deploy-AdminSystem {
Write-ColorOutput Green "正在部署后台管理系统到 $REMOTE_HOST:$ADMIN_SYSTEM_REMOTE_PATH ..."
# 同步文件到远程服务器
Write-ColorOutput Green "正在同步文件到远程服务器..."
$rsyncArgs = "-avz --delete --exclude node_modules --exclude .git --exclude dist ../admin-system/ $REMOTE_USER@$REMOTE_HOST`:$ADMIN_SYSTEM_REMOTE_PATH/"
Start-Process -FilePath "rsync" -ArgumentList $rsyncArgs -NoNewWindow -Wait
Write-ColorOutput Green "后台管理系统部署完成"
}
# 部署官方网站
function Deploy-Website {
Write-ColorOutput Green "正在部署官方网站到 $REMOTE_HOST:$WEBSITE_REMOTE_PATH ..."
# 同步文件到远程服务器
Write-ColorOutput Green "正在同步文件到远程服务器..."
$rsyncArgs = "-avz --delete --exclude node_modules --exclude .git ../website/ $REMOTE_USER@$REMOTE_HOST`:$WEBSITE_REMOTE_PATH/"
Start-Process -FilePath "rsync" -ArgumentList $rsyncArgs -NoNewWindow -Wait
Write-ColorOutput Green "官方网站部署完成"
}
# 部署所有模块
function Deploy-All {
Write-ColorOutput Green "开始部署所有模块..."
Deploy-Backend
Deploy-AdminSystem
Deploy-Website
Write-ColorOutput Green "所有模块部署完成"
}
# 根据参数执行相应操作
switch ($Target) {
"backend" {
Deploy-Backend
}
"admin" {
Deploy-AdminSystem
}
"website" {
Deploy-Website
}
"all" {
Deploy-All
}
default {
Write-ColorOutput Red "未知参数: $Target"
Write-ColorOutput Yellow "请使用: all, backend, admin, website"
exit 1
}
}
Write-ColorOutput Green "========== 部署完成 =========="