#!/bin/bash # MengStack Demo 一键部署脚本 # 用法: ./deploy.sh set -e APP_DIR="/www/wwwroot/mengstack-demo" SERVICE_NAME="mengstack-demo" BINARY_NAME="mengstack-demo" GO_PATH="/usr/local/go/bin" export GOPROXY=https://goproxy.cn,direct echo "=== MengStack Demo 部署开始 ===" # 1. 拉取最新代码 echo "[1/4] 拉取最新代码..." cd "$APP_DIR" git pull origin master # 2. 构建二进制 echo "[2/4] 构建 Go 二进制..." export PATH="$GO_PATH:$PATH" go build -o "$BINARY_NAME" ./cmd/server/ # 3. 重启服务 echo "[3/4] 重启服务..." systemctl restart "$SERVICE_NAME" # 4. 等待并检查状态 sleep 3 echo "[4/4] 检查服务状态..." if systemctl is-active --quiet "$SERVICE_NAME"; then echo "=== 部署成功 ===" echo "服务状态: $(systemctl is-active $SERVICE_NAME)" curl -s http://localhost:2223/health | head -c 200 echo "" else echo "=== 部署失败 ===" journalctl -u "$SERVICE_NAME" --no-pager -n 20 exit 1 fi