docs(deployment): 更新部署文档并添加自动化部署脚本
- 更新了 DEPLOYMENT.md 文档,增加了更多部署细节和说明 - 添加了 Linux 和 Windows 平台的自动化部署脚本 - 更新了 README.md,增加了部署相关说明 - 调整了 .env 文件配置,以适应新的部署流程 - 移除了部分不必要的代码和配置
This commit is contained in:
104
scripts/README.md
Normal file
104
scripts/README.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# 结伴客部署脚本
|
||||
|
||||
## 概述
|
||||
|
||||
本目录包含用于将结伴客项目部署到远程 CentOS 服务器的脚本。
|
||||
|
||||
## 脚本说明
|
||||
|
||||
### deploy.sh (Bash 脚本 - 适用于 Linux/Mac)
|
||||
|
||||
使用 rsync 将项目文件同步到远程服务器。
|
||||
|
||||
#### 使用方法
|
||||
|
||||
```bash
|
||||
# 给脚本添加执行权限
|
||||
chmod +x deploy.sh
|
||||
|
||||
# 部署所有模块
|
||||
./deploy.sh all
|
||||
|
||||
# 部署后端服务
|
||||
./deploy.sh backend
|
||||
|
||||
# 部署后台管理系统
|
||||
./deploy.sh admin
|
||||
|
||||
# 部署官方网站
|
||||
./deploy.sh website
|
||||
```
|
||||
|
||||
### deploy.ps1 (PowerShell 脚本 - 适用于 Windows)
|
||||
|
||||
Windows 系统下的部署脚本,同样使用 rsync 进行文件同步。
|
||||
|
||||
#### 使用方法
|
||||
|
||||
```powershell
|
||||
# 部署所有模块
|
||||
.\deploy.ps1 all
|
||||
|
||||
# 部署后端服务
|
||||
.\deploy.ps1 backend
|
||||
|
||||
# 部署后台管理系统
|
||||
.\deploy.ps1 admin
|
||||
|
||||
# 部署官方网站
|
||||
.\deploy.ps1 website
|
||||
```
|
||||
|
||||
## 部署要求
|
||||
|
||||
1. **rsync** 必须安装在本地机器上
|
||||
- Linux/Mac: 通常预装,如果没有可以使用包管理器安装
|
||||
- Windows: 需要安装 rsync for Windows,例如通过 WSL 或 Git for Windows
|
||||
|
||||
2. **SSH 访问权限** 到远程服务器 (1.13.156.49)
|
||||
- 确保本地 SSH 公钥已添加到远程服务器的 `~/.ssh/authorized_keys` 文件中
|
||||
|
||||
Ai哦推荐考拉¥741515
|
||||
## 部署目录结构
|
||||
|
||||
远程服务器 CentOS (IP: 1.13.156.49) 上各项目的部署目录如下:
|
||||
|
||||
```
|
||||
/
|
||||
├── data/
|
||||
│ ├── nodejs/
|
||||
│ │ └── jiebanke/ # 后端服务部署目录
|
||||
│ ├── vue/
|
||||
│ │ └── jiebanke/ # 后台管理系统部署目录
|
||||
│ └── website/
|
||||
│ └── jiebanke/ # 官方网站部署目录
|
||||
```
|
||||
|
||||
## 工作流程
|
||||
|
||||
1. 使用 rsync 同步文件到远程服务器
|
||||
2. 排除 node_modules、.git 等不需要的文件和目录
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 部署脚本只进行文件同步,不执行构建操作
|
||||
- 微信小程序不需要部署到远程服务器,需使用微信开发者工具进行构建和上传
|
||||
- 部署过程中会自动排除 node_modules、.git 等目录
|
||||
- 脚本使用 `--delete` 参数,会删除远程服务器上已不存在于本地的文件
|
||||
|
||||
## 故障排除
|
||||
|
||||
### rsync 命令未找到
|
||||
确保已安装 rsync:
|
||||
- Ubuntu/Debian: `sudo apt-get install rsync`
|
||||
- CentOS/RHEL: `sudo yum install rsync`
|
||||
- macOS: 通常预装
|
||||
- Windows: 安装 Git for Windows 或 WSL
|
||||
|
||||
### SSH 连接失败
|
||||
确保:
|
||||
1. SSH 公钥已添加到远程服务器
|
||||
2. 可以手动通过 `ssh root@1.13.156.49` 连接服务器
|
||||
|
||||
### 权限问题
|
||||
确保运行脚本的用户有足够权限执行 rsync 和访问项目文件。
|
||||
111
scripts/deploy.ps1
Normal file
111
scripts/deploy.ps1
Normal file
@@ -0,0 +1,111 @@
|
||||
# 结伴客项目部署脚本 (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 "========== 部署完成 =========="
|
||||
127
scripts/deploy.sh
Normal file
127
scripts/deploy.sh
Normal file
@@ -0,0 +1,127 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 结伴客项目部署脚本
|
||||
# 用于将项目部署到远程 CentOS 服务器
|
||||
|
||||
set -e # 遇到错误时退出
|
||||
|
||||
# 配置信息
|
||||
REMOTE_HOST="1.13.156.49"
|
||||
REMOTE_USER="root"
|
||||
REMOTE_PASSWORD="Aiotjkl$743838"
|
||||
BACKEND_REMOTE_PATH="/data/nodejs/jiebanke"
|
||||
ADMIN_SYSTEM_REMOTE_PATH="/data/vue/jiebanke"
|
||||
WEBSITE_REMOTE_PATH="/data/website/jiebanke"
|
||||
|
||||
# 颜色输出
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${GREEN}========== 结伴客项目部署脚本 ==========${NC}"
|
||||
|
||||
# 检查是否提供了部署目标参数
|
||||
if [ $# -eq 0 ]; then
|
||||
echo -e "${YELLOW}使用方法:${NC}"
|
||||
echo " ./deploy.sh all - 部署所有模块"
|
||||
echo " ./deploy.sh backend - 部署后端服务"
|
||||
echo " ./deploy.sh admin - 部署后台管理系统"
|
||||
echo " ./deploy.sh website - 部署官方网站"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查rsync是否安装
|
||||
check_rsync() {
|
||||
if ! command -v rsync &> /dev/null; then
|
||||
echo -e "${RED}错误: 未找到 rsync 命令,请先安装 rsync${NC}"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 部署后端服务
|
||||
deploy_backend() {
|
||||
echo -e "${BLUE}正在部署后端服务到 $REMOTE_HOST:$BACKEND_REMOTE_PATH ...${NC}"
|
||||
|
||||
# 检查rsync
|
||||
check_rsync
|
||||
|
||||
# 同步文件到远程服务器
|
||||
echo -e "${BLUE}正在同步文件到远程服务器...${NC}"
|
||||
rsync -avz --delete \
|
||||
--exclude node_modules \
|
||||
--exclude .git \
|
||||
--exclude logs \
|
||||
../backend/ $REMOTE_USER@$REMOTE_HOST:$BACKEND_REMOTE_PATH/
|
||||
|
||||
echo -e "${GREEN}后端服务部署完成${NC}"
|
||||
}
|
||||
|
||||
# 部署后台管理系统
|
||||
deploy_admin_system() {
|
||||
echo -e "${BLUE}正在部署后台管理系统到 $REMOTE_HOST:$ADMIN_SYSTEM_REMOTE_PATH ...${NC}"
|
||||
|
||||
# 检查rsync
|
||||
check_rsync
|
||||
|
||||
# 同步文件到远程服务器
|
||||
echo -e "${BLUE}正在同步文件到远程服务器...${NC}"
|
||||
rsync -avz --delete \
|
||||
--exclude node_modules \
|
||||
--exclude .git \
|
||||
--exclude dist \
|
||||
../admin-system/ $REMOTE_USER@$REMOTE_HOST:$ADMIN_SYSTEM_REMOTE_PATH/
|
||||
|
||||
echo -e "${GREEN}后台管理系统部署完成${NC}"
|
||||
}
|
||||
|
||||
# 部署官方网站
|
||||
deploy_website() {
|
||||
echo -e "${BLUE}正在部署官方网站到 $REMOTE_HOST:$WEBSITE_REMOTE_PATH ...${NC}"
|
||||
|
||||
# 检查rsync
|
||||
check_rsync
|
||||
|
||||
# 同步文件到远程服务器
|
||||
echo -e "${BLUE}正在同步文件到远程服务器...${NC}"
|
||||
rsync -avz --delete \
|
||||
--exclude node_modules \
|
||||
--exclude .git \
|
||||
../website/ $REMOTE_USER@$REMOTE_HOST:$WEBSITE_REMOTE_PATH/
|
||||
|
||||
echo -e "${GREEN}官方网站部署完成${NC}"
|
||||
}
|
||||
|
||||
|
||||
# 部署所有模块
|
||||
deploy_all() {
|
||||
echo -e "${BLUE}开始部署所有模块...${NC}"
|
||||
deploy_backend
|
||||
deploy_admin_system
|
||||
deploy_website
|
||||
echo -e "${GREEN}所有模块部署完成${NC}"
|
||||
}
|
||||
|
||||
# 根据参数执行相应操作
|
||||
case $1 in
|
||||
"backend")
|
||||
deploy_backend
|
||||
;;
|
||||
"admin")
|
||||
deploy_admin_system
|
||||
;;
|
||||
"website")
|
||||
deploy_website
|
||||
;;
|
||||
"all")
|
||||
deploy_all
|
||||
;;
|
||||
*)
|
||||
echo -e "${RED}未知参数: $1${NC}"
|
||||
echo -e "${YELLOW}请使用: all, backend, admin, website${NC}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo -e "${GREEN}========== 部署完成 ==========${NC}"
|
||||
@@ -1,21 +1,20 @@
|
||||
{
|
||||
"name": "jiebanke-api-tests",
|
||||
"name": "jiebanke-scripts",
|
||||
"version": "1.0.0",
|
||||
"description": "结伴客系统API测试脚本",
|
||||
"main": "test-api.js",
|
||||
"description": "结伴客项目部署和管理脚本",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "node test-api.js",
|
||||
"test:health": "node -e \"require('./test-api.js').api.get('/health').then(r => console.log('健康检查:', r.data)).catch(console.error)\""
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"deploy": "echo \"请在项目根目录的 scripts 文件夹中运行 ./deploy.sh 或 .\\deploy.ps1\"",
|
||||
"deploy:all": "echo \"请在项目根目录的 scripts 文件夹中运行 ./deploy.sh all 或 .\\deploy.ps1 all\"",
|
||||
"deploy:backend": "echo \"请在项目根目录的 scripts 文件夹中运行 ./deploy.sh backend\"",
|
||||
"deploy:admin": "echo \"请在项目根目录的 scripts 文件夹中运行 ./deploy.sh admin\"",
|
||||
"deploy:website": "echo \"请在项目根目录的 scripts 文件夹中运行 ./deploy.sh website\""
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^1.6.0"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"keywords": [
|
||||
"api-testing",
|
||||
"jiebanke",
|
||||
"travel",
|
||||
"animal-adoption"
|
||||
"deployment",
|
||||
"scripts",
|
||||
"jiebanke"
|
||||
],
|
||||
"author": "结伴客开发团队",
|
||||
"license": "MIT"
|
||||
|
||||
Reference in New Issue
Block a user