You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
3.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/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 未运行,请先启动 DockerMySQL 需要 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