#!/bin/bash # SentClaw 项目初始化脚本 # 用途:一键初始化开发环境 set -e echo "==========================================" echo "SentClaw 项目初始化脚本" echo "==========================================" echo "" # 检查 Docker if ! command -v docker &> /dev/null; then echo "❌ Docker 未安装,请先安装 Docker" exit 1 fi if ! command -v docker-compose &> /dev/null; then echo "❌ Docker Compose 未安装,请先安装 Docker Compose" exit 1 fi # 检查 Node.js if ! command -v node &> /dev/null; then echo "❌ Node.js 未安装,请先安装 Node.js 18+" exit 1 fi # 检查 Python if ! command -v python3 &> /dev/null; then echo "❌ Python 未安装,请先安装 Python 3.9+" exit 1 fi echo "✅ 环境检查通过" echo "" # 复制环境变量文件 if [ ! -f .env ]; then echo "📋 创建 .env 文件..." cp .env.example .env echo "✅ .env 文件已创建,请根据需要修改配置" else echo "⚠️ .env 文件已存在,跳过创建" fi echo "" # 启动 Docker 服务 echo "🐳 启动 Docker 服务(MySQL + Redis)..." docker-compose up -d echo "✅ Docker 服务已启动" echo "" # 等待 MySQL 启动 echo "⏳ 等待 MySQL 启动..." sleep 10 # 初始化后端 echo "🔧 初始化后端..." cd backend # 创建虚拟环境 if [ ! -d venv ]; then echo "📦 创建 Python 虚拟环境..." python3 -m venv venv echo "✅ 虚拟环境已创建" else echo "⚠️ 虚拟环境已存在,跳过创建" fi # 激活虚拟环境并安装依赖 echo "📦 安装 Python 依赖..." source venv/bin/activate pip install -r requirements.txt # 初始化数据库 echo "🗄️ 初始化数据库..." flask db upgrade cd .. echo "✅ 后端初始化完成" echo "" # 初始化前端 echo "🔧 初始化前端..." cd web if [ ! -d node_modules ]; then echo "📦 安装 Node.js 依赖..." npm install echo "✅ 前端依赖已安装" else echo "⚠️ node_modules 已存在,跳过安装" fi cd .. echo "✅ 前端初始化完成" echo "" # 初始化桌面应用 echo "🔧 初始化桌面应用..." cd desktop if [ ! -d node_modules ]; then echo "📦 安装 Electron 依赖..." npm install echo "✅ 桌面应用依赖已安装" else echo "⚠️ node_modules 已存在,跳过安装" fi cd .. echo "✅ 桌面应用初始化完成" echo "" echo "==========================================" echo "🎉 初始化完成!" echo "==========================================" echo "" echo "📖 快速开始:" echo "" echo "1. 启动后端:" echo " cd backend" echo " source venv/bin/activate" echo " python run.py" echo "" echo "2. 启动前端(新终端):" echo " cd web" echo " npm run dev" echo "" echo "3. 启动桌面应用(新终端):" echo " cd desktop" echo " npm run dev" echo "" echo "4. 访问应用:" echo " Web: http://localhost:5173" echo " API: http://localhost:5000" echo " 默认账号: admin / admin123" echo "" echo "💡 更多信息请查看 README.md" echo ""