deploy-server.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #!/bin/bash
  2. # AI-CS 服务器部署脚本
  3. # 使用方法:在服务器上运行此脚本进行快速部署
  4. set -e # 遇到错误立即退出
  5. echo "🚀 开始部署 AI-CS 系统..."
  6. # 检查是否为 root 用户
  7. if [ "$EUID" -ne 0 ]; then
  8. echo "❌ 请使用 root 用户运行此脚本"
  9. exit 1
  10. fi
  11. # 1. 更新系统
  12. echo "📦 更新系统软件包..."
  13. apt update && apt upgrade -y
  14. # 2. 安装基础工具
  15. echo "📦 安装基础工具..."
  16. apt install -y curl wget git vim
  17. # 3. 安装 Node.js 18+
  18. echo "📦 安装 Node.js..."
  19. if ! command -v node &> /dev/null; then
  20. curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
  21. apt install -y nodejs
  22. else
  23. echo "✅ Node.js 已安装: $(node -v)"
  24. fi
  25. # 4. 安装 Go 1.21+
  26. echo "📦 安装 Go..."
  27. if ! command -v go &> /dev/null; then
  28. GO_VERSION="1.21.6"
  29. wget https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz
  30. tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz
  31. echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
  32. export PATH=$PATH:/usr/local/go/bin
  33. rm go${GO_VERSION}.linux-amd64.tar.gz
  34. else
  35. echo "✅ Go 已安装: $(go version)"
  36. fi
  37. # 5. 安装 MySQL
  38. echo "📦 安装 MySQL..."
  39. if ! command -v mysql &> /dev/null; then
  40. apt install -y mysql-server
  41. systemctl start mysql
  42. systemctl enable mysql
  43. echo "⚠️ 请运行 'mysql_secure_installation' 配置 MySQL 安全设置"
  44. else
  45. echo "✅ MySQL 已安装"
  46. fi
  47. # 6. 安装 Nginx
  48. echo "📦 安装 Nginx..."
  49. if ! command -v nginx &> /dev/null; then
  50. apt install -y nginx
  51. systemctl start nginx
  52. systemctl enable nginx
  53. else
  54. echo "✅ Nginx 已安装"
  55. fi
  56. # 7. 安装 PM2
  57. echo "📦 安装 PM2..."
  58. if ! command -v pm2 &> /dev/null; then
  59. npm install -g pm2
  60. pm2 startup
  61. else
  62. echo "✅ PM2 已安装"
  63. fi
  64. # 8. 创建项目目录
  65. echo "📁 创建项目目录..."
  66. mkdir -p /var/www
  67. cd /var/www
  68. # 9. 提示用户克隆项目
  69. echo ""
  70. echo "✅ 基础环境安装完成!"
  71. echo ""
  72. echo "📝 接下来的步骤:"
  73. echo "1. 克隆项目到 /var/www/AI-CS"
  74. echo " git clone https://github.com/your-username/AI-CS.git"
  75. echo ""
  76. echo "2. 配置后端环境变量:"
  77. echo " cd /var/www/AI-CS/backend"
  78. echo " cp .env.example .env"
  79. echo " # 编辑 .env 文件,填入数据库配置"
  80. echo ""
  81. echo "3. 创建数据库:"
  82. echo " mysql -u root -p"
  83. echo " CREATE DATABASE ai_cs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
  84. echo ""
  85. echo "4. 编译后端:"
  86. echo " cd /var/www/AI-CS/backend"
  87. echo " go mod tidy"
  88. echo " go build -o backend main.go"
  89. echo ""
  90. echo "5. 配置前端环境变量:"
  91. echo " cd /var/www/AI-CS/frontend"
  92. echo " cp .env.example .env.production"
  93. echo " # 编辑 .env.production,设置 API 地址"
  94. echo ""
  95. echo "6. 构建前端:"
  96. echo " npm install"
  97. echo " npm run build"
  98. echo ""
  99. echo "7. 配置 Nginx(参考部署文档)"
  100. echo ""
  101. echo "8. 配置 SSL 证书:"
  102. echo " certbot --nginx -d yourdomain.com -d www.yourdomain.com -d api.yourdomain.com"
  103. echo ""