74 lines
3.3 KiB
Bash
74 lines
3.3 KiB
Bash
#!/usr/bin/env bash
|
||
# ══════════════════════════════════════════════════
|
||
# 01_setup_project.sh
|
||
# 初始化项目:创建目录、生成 .env 文件
|
||
# 用法:bash scripts/01_setup_project.sh
|
||
# ══════════════════════════════════════════════════
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||
|
||
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; BLUE='\033[0;34m'; NC='\033[0m'
|
||
info() { echo -e "${BLUE}[INFO]${NC} $*"; }
|
||
ok() { echo -e "${GREEN}[OK]${NC} $*"; }
|
||
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
||
|
||
cd "$PROJECT_DIR"
|
||
info "项目目录:$PROJECT_DIR"
|
||
|
||
# ── 创建运行时目录 ──────────────────────────────
|
||
info "创建运行时目录..."
|
||
mkdir -p data/uploads data/parsed logs models
|
||
mkdir -p services/embedding services/mcp-server
|
||
mkdir -p services/compliance-backend/app/{core,api,services,models}
|
||
ok "目录结构创建完成"
|
||
|
||
# ── 复制 .env 文件 ──────────────────────────────
|
||
if [[ ! -f ".env" ]]; then
|
||
cp .env.example .env
|
||
warn "已创建 .env 文件,请编辑并填写必要配置:"
|
||
warn " 必填:DEEPSEEK_API_KEY(或 DASHSCOPE_API_KEY)"
|
||
warn " 可选:修改各组件密码"
|
||
echo ""
|
||
echo -e "${YELLOW}是否现在编辑 .env 文件?(y/n)${NC}"
|
||
read -r ans
|
||
if [[ "$ans" == "y" ]]; then
|
||
${EDITOR:-nano} .env
|
||
fi
|
||
else
|
||
ok ".env 文件已存在,跳过复制"
|
||
fi
|
||
|
||
# ── 验证 .env 关键字段 ──────────────────────────
|
||
info "验证 .env 配置..."
|
||
source .env 2>/dev/null || true
|
||
|
||
if [[ -z "${DEEPSEEK_API_KEY:-}" && -z "${DASHSCOPE_API_KEY:-}" ]]; then
|
||
warn "⚠️ 未设置 LLM API Key!"
|
||
warn " 请在 .env 中设置 DEEPSEEK_API_KEY 或 DASHSCOPE_API_KEY"
|
||
warn " DeepSeek 申请:https://platform.deepseek.com"
|
||
else
|
||
ok "LLM API Key 已配置"
|
||
fi
|
||
|
||
# ── 验证 Docker ─────────────────────────────────
|
||
info "检查 Docker 环境..."
|
||
if ! command -v docker &>/dev/null; then
|
||
warn "Docker 未安装,请先运行:bash scripts/00_install_docker_ubuntu.sh"
|
||
exit 1
|
||
fi
|
||
docker compose version > /dev/null
|
||
ok "Docker Compose 可用:$(docker compose version)"
|
||
|
||
# ── 显示下一步 ──────────────────────────────────
|
||
echo ""
|
||
echo -e "${GREEN}══════════════════════════════════════════${NC}"
|
||
echo -e "${GREEN} 项目初始化完成!${NC}"
|
||
echo -e "${GREEN}══════════════════════════════════════════${NC}"
|
||
echo ""
|
||
echo "下一步操作:"
|
||
echo " 1. 拉取镜像(可选,较慢):bash scripts/02_pull_images.sh"
|
||
echo " 2. 启动全部服务: bash scripts/06_start_all.sh"
|
||
echo " 3. 检查健康状态: bash scripts/check_health.sh"
|