#!/bin/bash # 小菜记账服务器初始化脚本 # 适用于 Ubuntu 22.04 LTS + 阿里云 2H2G set -e echo "=== 小菜记账服务器初始化 ===" # 更新系统 echo "1/8 更新系统包..." sudo apt update && sudo apt upgrade -y # 安装 Node.js 20 echo "2/8 安装 Node.js 20..." curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs # 安装 MySQL 8.0 echo "3/8 安装 MySQL 8.0..." sudo apt install -y mysql-server # 安全配置 MySQL echo "4/8 配置 MySQL..." sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root_password';" sudo mysql -e "CREATE DATABASE IF NOT EXISTS xiaocai DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" sudo mysql -e "CREATE USER IF NOT EXISTS 'xiaocai'@'localhost' IDENTIFIED BY 'xiaocai123';" sudo mysql -e "GRANT ALL PRIVILEGES ON xiaocai.* TO 'xiaocai'@'localhost';" sudo mysql -e "FLUSH PRIVILEGES;" # 安装 Nginx echo "5/8 安装 Nginx..." sudo apt install -y nginx # 安装 PM2 echo "6/8 安装 PM2..." sudo npm install -g pm2 # 创建部署目录 echo "7/8 创建部署目录..." sudo mkdir -p /var/www/xiaocai sudo mkdir -p /var/log/xiaocai sudo chown -R $USER:$USER /var/www/xiaocai # 配置防火墙 echo "8/8 配置防火墙..." sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw --force enable echo "" echo "=== 服务器初始化完成 ===" echo "MySQL root 密码: root_password" echo "MySQL xiaocai 密码: xiaocai123" echo "请修改 deploy/ecosystem.config.js 中的数据库密码" echo "" echo "下一步: ./deploy.sh"