#!/bin/bash set -e echo "============================================" echo " 灵枢智能任务平台 - 本地模式启动" echo "============================================" echo # 检查 Python if ! command -v python3 &>/dev/null; then echo "[错误] 未找到 python3,请先安装:sudo apt install python3 python3-pip" exit 1 fi # 检查 Docker(用于跑 MySQL) if ! docker info >/dev/null 2>&1; then echo "[错误] Docker 未运行,请先启动 Docker(MySQL 需要 Docker)" exit 1 fi # ── 1. 初始化 .env ──────────────────────────────────────────── if [ ! -f ".env" ]; then cp .env.example .env echo "[信息] 已生成 .env,请确认配置后重新运行本脚本" fi # 本地模式固定数据库地址为 127.0.0.1:3307 set_env() { local key="$1" val="$2" if grep -q "^${key}=" .env 2>/dev/null; then sed -i "s|^${key}=.*|${key}=${val}|" .env else echo "${key}=${val}" >> .env fi } # ── 自动填写宿主机 IP ───────────────────────────────────────── set_env "DOCKER_HOST_IP" "127.0.0.1" echo "[信息] 本地模式,DOCKER_HOST_IP=127.0.0.1" # ── 自动填写 OpenClaw identity 目录 ────────────────────────── IDENTITY_DIR="$HOME/.openclaw/identity" if [ -d "$IDENTITY_DIR" ]; then set_env "OPENCLAW_IDENTITY_DIR" "$IDENTITY_DIR" echo "[信息] 已检测到 OpenClaw identity 目录: $IDENTITY_DIR" else echo "[警告] 未找到 OpenClaw identity 目录: $IDENTITY_DIR" echo " 请确认 OpenClaw 已安装并完成初始化" mkdir -p "$IDENTITY_DIR" set_env "OPENCLAW_IDENTITY_DIR" "$IDENTITY_DIR" fi set_env "DB_HOST" "127.0.0.1" set_env "DB_PORT" "3307" set_env "DB_USER" "root" set_env "DB_PASSWORD" "lingshu123" set_env "DB_NAME" "lingshu" set_env "OPENCLAW_URL" "http://127.0.0.1:18789" set_env "LINGSHU_CALLBACK_URL" "http://127.0.0.1:5000" # ── 2. 启动 MySQL 容器 ──────────────────────────────────────── echo "[启动] 正在启动 MySQL 容器..." docker compose -f docker-compose.db-only.yml up -d echo "[等待] 等待 MySQL 就绪..." for i in $(seq 1 30); do if docker exec lingshu_db mysqladmin ping -h localhost -plingshu123 --silent 2>/dev/null; then echo "[信息] MySQL 已就绪" break fi echo " 等待中... ($i/30)" sleep 2 done # ── 3. 安装 Python 依赖 ─────────────────────────────────────── echo echo "[安装] 正在安装 Python 依赖..." pip3 install -r backend/requirements.txt -q # ── 4. 启动 Flask ───────────────────────────────────────────── echo echo "[启动] 正在启动 Flask 后端..." echo "============================================" echo " 启动成功!浏览器访问: http://localhost:5000" echo " 账号: wangpai / admin123" echo " 按 Ctrl+C 停止服务" echo "============================================" echo cd backend export FLASK_APP=app export FLASK_ENV=development export FLASK_DEBUG=1 # 从 .env 加载环境变量 set -a source ../.env set +a python3 -m flask run --host=0.0.0.0 --port=5000