-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.sh
More file actions
79 lines (66 loc) · 2.06 KB
/
Copy pathdeploy.sh
File metadata and controls
79 lines (66 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/bash
# 马场管理后端 一键部署脚本
# 适用于 Ubuntu 20.04/22.04
# 使用方法: bash deploy.sh
set -e
echo "===== 🐎 马场管理后端部署开始 ====="
# 1. 更新系统
echo ">>> 更新系统包..."
apt-get update -y
# 2. 安装 Node.js 18
echo ">>> 安装 Node.js 18..."
if ! command -v node &> /dev/null; then
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt-get install -y nodejs
fi
node -v
npm -v
# 3. 安装 MongoDB 7.0
echo ">>> 安装 MongoDB..."
if ! command -v mongod &> /dev/null; then
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list
apt-get update -y
apt-get install -y mongodb-org
fi
systemctl start mongod
systemctl enable mongod
echo "MongoDB 状态:"
systemctl is-active mongod
# 4. 安装 PM2(进程守护)
echo ">>> 安装 PM2..."
npm install -g pm2
# 5. 创建项目目录
echo ">>> 创建项目目录..."
mkdir -p /opt/horse-farm-server
cd /opt/horse-farm-server
# 6. 上传代码(这里用 git,或者手动 scp)
# 如果你用 git:
# git clone <你的仓库地址> .
# 如果手动上传,跳过这步
# 7. 安装依赖
echo ">>> 安装 npm 依赖..."
npm install --production
# 8. 创建生产环境配置
echo ">>> 配置环境变量..."
cat > .env << 'EOF'
PORT=3000
MONGODB_URI=mongodb://127.0.0.1:27017/horse-farm
JWT_SECRET=horse-farm-jwt-secret-2026
NODE_ENV=production
EOF
# 9. 用 PM2 启动
echo ">>> 启动服务..."
pm2 stop horse-farm 2>/dev/null || true
pm2 start src/app.js --name horse-farm
pm2 save
pm2 startup
# 10. 开放防火墙端口
echo ">>> 配置防火墙..."
ufw allow 3000/tcp 2>/dev/null || true
ufw allow 22/tcp 2>/dev/null || true
echo ""
echo "===== ✅ 部署完成 ====="
echo "后端地址: http://$(curl -s ifconfig.me):3000"
echo "查看日志: pm2 logs horse-farm"
echo "查看状态: pm2 status"