Files
weibo_signin/LOCAL_SETUP.md
2026-03-09 16:10:29 +08:00

5.4 KiB
Raw Blame History

Weibo-HotSign 本地开发环境配置指南

快速开始

1. 环境要求

  • Python 3.8+
  • Windows 操作系统
  • 可选Redis如果需要完整功能

2. 一键启动

# 双击运行或在命令行执行
start_all.bat

这个脚本会自动:

  • 检查 Python 环境
  • 创建 SQLite 数据库(包含测试用户)
  • 安装所有依赖
  • 启动所有服务

3. 访问应用

启动成功后,浏览器会自动打开:

4. 测试账号

数据库初始化时会自动创建一个测试用户:

用户名: admin
邮箱: admin@example.com
密码: Admin123!

你也可以通过注册页面创建新用户。

5. 停止服务

# 双击运行或在命令行执行
stop_all.bat

配置说明

数据库配置

默认使用 SQLite 数据库,无需额外配置。数据库文件位于项目根目录:

weibo_hotsign.db

如需使用 MySQL修改 backend/.env.local

DATABASE_URL=mysql+aiomysql://user:password@localhost/weibo_hotsign

Redis 配置(可选)

本地开发默认不需要 Redis,系统会使用内存存储。

如需启用 Redis用于生产环境或测试分布式功能修改 backend/.env.local

USE_REDIS=true
REDIS_URL=redis://localhost:6379

环境变量

后端配置 (backend/.env.local)

# 数据库
DATABASE_URL=sqlite+aiosqlite:///./weibo_hotsign.db

# Redis可选
USE_REDIS=false
# REDIS_URL=redis://localhost:6379

# JWT 配置
JWT_SECRET_KEY=dev-secret-key-change-in-production
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=60

# Cookie 加密密钥
COOKIE_ENCRYPTION_KEY=dev-cookie-encryption-key-32b

# 服务端口
AUTH_SERVICE_PORT=8001
API_SERVICE_PORT=8000

# 环境
ENVIRONMENT=development

前端配置 (frontend/.env)

FLASK_ENV=development
FLASK_DEBUG=True
SECRET_KEY=dev-flask-secret-key-change-in-production

# 后端服务地址
API_BASE_URL=http://localhost:8000
AUTH_BASE_URL=http://localhost:8001

# Session 配置
SESSION_TYPE=filesystem

手动启动(高级)

如果需要单独启动某个服务:

1. 创建数据库

python create_sqlite_db.py

2. 安装后端依赖

cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

3. 启动 Auth Service

cd backend
venv\Scripts\activate
set PYTHONPATH=%CD%
python -m uvicorn auth_service.app.main:app --host 0.0.0.0 --port 8001 --reload

4. 启动 API Service

cd backend
venv\Scripts\activate
set PYTHONPATH=%CD%
python -m uvicorn api_service.app.main:app --host 0.0.0.0 --port 8000 --reload

5. 启动 Frontend

cd frontend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python app.py

常见问题

Q: 启动失败,提示找不到模块

A: 确保设置了 PYTHONPATH

set PYTHONPATH=%CD%

Q: 数据库连接失败

A: 检查 backend/.env.local 中的 DATABASE_URL 配置是否正确。

Q: 端口被占用

A: 修改 .env 文件中的端口配置,或关闭占用端口的程序。

Q: Redis 连接失败

A: 本地开发不需要 Redis。如果看到 Redis 警告,可以忽略,系统会自动使用内存存储。

Q: 如何重置数据库

A: 删除 weibo_hotsign.db 文件,然后重新运行 python create_sqlite_db.py

开发建议

1. 使用虚拟环境

每个服务都应该在独立的虚拟环境中运行,避免依赖冲突。

2. 查看日志

每个服务启动时会打开独立的命令行窗口,可以在窗口中查看实时日志。

3. 热重载

开发模式下,修改代码后服务会自动重启(--reload 参数)。

4. API 文档

项目结构

weibo-hotsign/
├── backend/                    # 后端服务
│   ├── shared/                # 共享模块
│   ├── auth_service/          # 认证服务
│   ├── api_service/           # API 服务
│   ├── task_scheduler/        # 任务调度(需要 Celery
│   ├── signin_executor/       # 签到执行(需要 Celery
│   └── requirements.txt       # 后端依赖
├── frontend/                   # Flask 前端
│   ├── templates/             # HTML 模板
│   ├── app.py                 # Flask 应用
│   └── requirements.txt       # 前端依赖
├── weibo_hotsign.db           # SQLite 数据库(自动生成)
├── create_sqlite_db.py        # 数据库初始化脚本
├── init-db-sqlite.sql         # SQLite 建表脚本
├── start_all.bat              # 一键启动脚本
├── stop_all.bat               # 停止所有服务
└── LOCAL_SETUP.md             # 本文档

生产环境部署

生产环境建议:

  • 使用 MySQL 数据库
  • 启用 Redis
  • 使用 Nginx 反向代理
  • 使用 Docker Compose 部署
  • 配置 HTTPS
  • 修改所有默认密钥

参考 docker-compose.yml 进行容器化部署。

技术栈

  • 后端: Python 3.11 + FastAPI + SQLAlchemy (async)
  • 前端: Flask + Jinja2 + 原生 CSS
  • 数据库: SQLite (开发) / MySQL (生产)
  • 缓存: 内存 (开发) / Redis (生产)
  • 任务队列: Celery + Redis (可选)

许可证

MIT