#!/bin/bash # 三大核心功能快速安装脚本(WSL/Linux) set -e echo "=========================================" echo " Blackdata StockTerminal 核心功能安装" echo "=========================================" echo "" # 检查是否在 WSL/Linux 环境 if [[ "$OSTYPE" != "linux-gnu"* ]]; then echo "⚠ 此脚本仅支持 WSL/Linux 环境" exit 1 fi # 1. 安装系统依赖 echo "[1/6] 检查并安装系统依赖..." sudo apt update sudo apt install -y postgresql postgresql-contrib redis-server python3-pip python3-venv # 2. 启动服务 echo "" echo "[2/6] 启动 PostgreSQL 和 Redis..." sudo service postgresql start sudo service redis-server start # 验证服务 if redis-cli ping > /dev/null 2>&1; then echo "✓ Redis 运行正常" else echo "⚠ Redis 启动失败,缓存将降级到内存模式" fi # 3. 创建虚拟环境(如果不存在) if [ ! -d ".venv" ]; then echo "" echo "[3/6] 创建 Python 虚拟环境..." python3 -m venv .venv else echo "" echo "[3/6] 虚拟环境已存在,跳过创建" fi # 4. 安装 Python 依赖 echo "" echo "[4/6] 安装 Python 依赖包..." source .venv/bin/activate pip install --upgrade pip pip install -r requirements.txt # 5. 配置环境变量 echo "" echo "[5/6] 配置环境变量..." if [ ! -f ".env" ]; then if [ -f ".env.example" ]; then cp .env.example .env echo "✓ 已从 .env.example 创建 .env 文件" else echo "⚠ .env.example 不存在,请手动创建 .env 文件" fi # 生成随机 SECRET_KEY SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(32))") echo "" echo "生成的 SECRET_KEY(请添加到 .env):" echo "SECRET_KEY=$SECRET_KEY" echo "" else echo "✓ .env 文件已存在" fi # 6. 初始化数据库 echo "" echo "[6/6] 初始化数据库..." # 检查 PostgreSQL 密码配置 if grep -q "PG_PASSWORD=your_password" .env 2>/dev/null || grep -q "PG_PASSWORD=$" .env 2>/dev/null; then echo "" echo "⚠ 请先在 .env 中设置 PostgreSQL 密码:" echo " 1. 设置数据库密码: sudo -u postgres psql -c \"ALTER USER postgres PASSWORD 'your_password';\"" echo " 2. 在 .env 中配置: PG_PASSWORD=your_password" echo "" echo "配置完成后,运行: python cli.py init" else python cli.py init echo "✓ 数据库初始化完成" fi echo "" echo "=========================================" echo " 安装完成!" echo "=========================================" echo "" echo "下一步:" echo "1. 编辑 backend/.env 文件,配置数据库密码和其他选项" echo "2. 如果未初始化数据库,运行: python cli.py init" echo "3. 启动服务: python main.py" echo "4. 浏览器访问: http://localhost:8000" echo "5. 默认管理员: admin / admin123 (首次登录后务必修改密码)" echo "6. 测试功能: python test_core_features.py" echo "" echo "详细文档:" echo "- 升级指南: backend/UPGRADE_GUIDE.md" echo "- 配置说明: backend/ENV_CONFIG.md" echo ""