setup_server.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/bash
  2. SERVER_IP="45.61.60.10"
  3. SERVER_USER="root"
  4. SERVER_PASS="UQb9TgSwC@vwhEM"
  5. GREEN='\033[0;32m'
  6. NC='\033[0m'
  7. echo -e "${GREEN}=== 开始配置远程服务器环境 ===${NC}"
  8. # 使用 expect 登录远程服务器并执行初始化
  9. /usr/bin/expect <<EOF
  10. set timeout 600
  11. spawn ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP
  12. expect {
  13. "password:" { send "$SERVER_PASS\r" }
  14. "yes/no" { send "yes\r"; exp_continue }
  15. }
  16. expect "#"
  17. # 1. 更新系统并安装基础依赖
  18. send "echo '--- 1. UPDATING PACKAGES & SYSTEM ---'\r"
  19. expect "#"
  20. send "apt-get update && apt-get install -y curl gnupg git build-essential nginx certbot python3-certbot-nginx\r"
  21. expect "#"
  22. # 2. 安装 Node.js 22 LTS (via NodeSource)
  23. send "echo '--- 2. INSTALLING NODE.JS 22 ---'\r"
  24. expect "#"
  25. send "curl -fsSL https://deb.nodesource.com/setup_22.x | bash -\r"
  26. expect "#"
  27. send "apt-get install -y nodejs\r"
  28. expect "#"
  29. # 3. 验证 Node/NPM 并安装 PM2
  30. send "echo '--- 3. INSTALLING PM2 ---'\r"
  31. expect "#"
  32. send "node -v && npm -v\r"
  33. expect "#"
  34. send "npm install -g pm2 --registry=https://registry.npmmirror.com\r"
  35. expect "#"
  36. # 4. 创建部署目录
  37. send "echo '--- 4. CREATING DEPLOYMENT DIR ---'\r"
  38. expect "#"
  39. send "mkdir -p /var/www/ccdw-website\r"
  40. expect "#"
  41. send "chown -R root:root /var/www/ccdw-website\r"
  42. expect "#"
  43. # 5. 验证安装
  44. send "echo '--- 5. VERIFYING INSTALLATIONS ---'\r"
  45. expect "#"
  46. send "command -v node && command -v npm && command -v pm2 && command -v nginx\r"
  47. expect "#"
  48. send "exit\r"
  49. expect eof
  50. EOF
  51. echo -e "${GREEN}=== 服务器环境配置完成! ===${NC}"