Files
EasyTier/easytier-contrib/easytier-uptime/start-dev.sh

95 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# EasyTier Uptime Monitor 开发环境启动脚本
set -e
echo "🚀 Starting EasyTier Uptime Monitor Development Environment..."
# 检查依赖
echo "📦 Checking dependencies..."
# 检查 Rust
if ! command -v cargo &> /dev/null; then
echo "❌ Rust is not installed. Please install Rust first."
exit 1
fi
# 检查 Node.js
if ! command -v node &> /dev/null; then
echo "❌ Node.js is not installed. Please install Node.js first."
exit 1
fi
# 检查 npm
if ! command -v npm &> /dev/null; then
echo "❌ npm is not installed. Please install npm first."
exit 1
fi
# 设置环境变量
export RUST_LOG=debug
export NODE_ENV=development
# 创建必要的目录
echo "📁 Creating directories..."
mkdir -p logs
mkdir -p configs
mkdir -p frontend/dist
# 复制环境配置文件
if [ ! -f .env ]; then
echo "📝 Creating environment configuration..."
cp .env.development .env
fi
# 安装前端依赖
echo "📦 Installing frontend dependencies..."
cd frontend
if [ ! -d "node_modules" ]; then
npm install
fi
cd ..
# 启动后端服务
echo "🔧 Starting backend server..."
cargo run &
BACKEND_PID=$!
# 等待后端服务启动
echo "⏳ Waiting for backend server to start..."
sleep 5
# 启动前端开发服务器
echo "🎨 Starting frontend development server..."
cd frontend
npm run dev &
FRONTEND_PID=$!
cd ..
# 等待前端服务启动
echo "⏳ Waiting for frontend server to start..."
sleep 3
echo "✅ Development environment started successfully!"
echo "🌐 Frontend: http://localhost:3000"
echo "🔧 Backend API: http://localhost:8080"
echo "📊 API Health Check: http://localhost:8080/health"
echo ""
echo "Press Ctrl+C to stop all services"
# 清理函数
cleanup() {
echo ""
echo "🛑 Stopping services..."
kill $BACKEND_PID 2>/dev/null || true
kill $FRONTEND_PID 2>/dev/null || true
echo "✅ All services stopped"
exit 0
}
# 设置信号处理
trap cleanup SIGINT SIGTERM
# 等待用户中断
wait