116 lines
2.9 KiB
Bash
116 lines
2.9 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Copyright 2025 coze-dev Authors
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
|
|
# Coze Studio 启动脚本
|
|
# 该脚本将启动所有必要的服务
|
|
|
|
set -e
|
|
|
|
echo "🚀 正在启动 Coze Studio..."
|
|
|
|
# 获取脚本所在目录
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
# 检查是否安装了必要的工具
|
|
echo "📋 检查依赖..."
|
|
|
|
# 检查 Docker
|
|
if ! command -v docker &> /dev/null; then
|
|
echo "❌ Docker 未安装,请先安装 Docker"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查 Docker Compose
|
|
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
|
|
echo "❌ Docker Compose 未安装,请先安装 Docker Compose"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查 Rush
|
|
if ! command -v rush &> /dev/null; then
|
|
echo "❌ Rush 未安装,请先安装 Rush"
|
|
echo "安装命令: npm install -g @microsoft/rush"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ 依赖检查完成"
|
|
|
|
# 启动后端服务
|
|
echo "🔧 启动后端服务..."
|
|
cd docker
|
|
|
|
# 检查 .env 文件
|
|
if [ ! -f .env ]; then
|
|
if [ -f .env.example ]; then
|
|
echo "📄 创建 .env 文件..."
|
|
cp .env.example .env
|
|
echo "⚠️ 请根据需要编辑 .env 文件"
|
|
else
|
|
echo "⚠️ 未找到 .env.example 文件"
|
|
fi
|
|
fi
|
|
|
|
# 启动 Docker 服务
|
|
echo "🐳 启动 Docker 容器..."
|
|
if docker compose version &> /dev/null; then
|
|
docker compose up -d
|
|
else
|
|
docker-compose up -d
|
|
fi
|
|
|
|
cd ..
|
|
|
|
# 等待后端服务启动
|
|
echo "⏳ 等待后端服务启动..."
|
|
sleep 10
|
|
|
|
# 安装前端依赖
|
|
echo "📦 安装前端依赖..."
|
|
cd frontend
|
|
rush update
|
|
|
|
echo "🎨 启动前端开发服务器..."
|
|
cd apps/coze-studio
|
|
|
|
# 增加文件监控限制(解决 ENOSPC 错误)
|
|
echo "🔧 配置文件监控限制..."
|
|
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
sudo sysctl -w fs.inotify.max_user_watches=524288 2>/dev/null || true
|
|
fi
|
|
|
|
# 启动前端开发服务器
|
|
PORT=3001 rushx dev &
|
|
FRONTEND_PID=$!
|
|
|
|
echo "🎉 Coze Studio 启动完成!"
|
|
echo ""
|
|
echo "📍 前端地址: http://localhost:3001"
|
|
echo "📍 API 地址: http://localhost:8888"
|
|
echo "📍 文档地址: http://localhost:8888/docs"
|
|
echo ""
|
|
echo "🔍 查看日志:"
|
|
echo " 后端日志: cd docker && docker compose logs -f"
|
|
echo " 前端日志: cd frontend/apps/coze-studio && rushx dev"
|
|
echo ""
|
|
echo "🛑 停止服务:"
|
|
echo " 停止所有服务: cd docker && docker compose down"
|
|
echo " 停止前端: kill $FRONTEND_PID"
|
|
|
|
# 保持脚本运行
|
|
wait $FRONTEND_PID |