核心功能: - 记账CRUD(支出/收入/分类/备注/日期) - 统计分析(概览/分类占比/每日趋势) - 预算管理(按月设置/进度条/超支提醒) - 数据导出CSV 安全与认证: - HMAC-SHA256签名token认证 - 用户数据隔离 - 输入验证与错误处理 - CORS配置 前端优化: - 骨架屏加载 - 账单按日期分组 - 预算页面重构(快捷预设+Numpad) - SvgIcon组件(H5+微信双端适配) - 下拉刷新 后端优化: - 共享日期工具函数 - 数据库连接池优化 - 健康检查端点 - 优雅关闭处理 技术栈: - 前端:Uni-app (Vue 3 + Pinia) - 后端:Node.js + Express + MySQL
58 lines
1.6 KiB
Bash
58 lines
1.6 KiB
Bash
#!/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"
|