Files
AIRegulation-Deployment/scripts/01_setup_project.sh
2026-04-23 09:58:47 +08:00

74 lines
3.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"