stock-scanner-V2-股票分析系统-开源-量化框架-09007


这个仓库 stock-scanner 是一个股票分析系统,它基于原项目 https://github.com/DR-lin-eng/stock-scanner 进行了二次修改,以下是对该仓库的详细介绍:

功能特性

  1. 增加 HTML 页面:支持在浏览器上在线使用该系统。
  2. 多市场支持:增加了对港股、美股的支持。
  3. 部署便捷:完善了 Dockerfile 和 GitHub Actions,支持通过 Docker 一键部署,并且支持 x86_64 和 ARM64 架构镜像。
  4. 流式输出:支持流式输出,同时支持前端传入 Key(仅用于本地用户,不会输出日志等内容)。
  5. 前端重构:前端重构为 Vue3 + Vite + TS + Naive UI 的技术栈,支持响应式布局。
  6. 自动化部署:支持通过 GitHub Actions 一键部署。
  7. 反向代理:支持 Nginx 反向代理,可通过 80/443 端口访问系统。

目录结构

.env.example
.gitignore
Dockerfile
README.md
docker-compose.prod.yml
docker-compose.simple.yml
docker-compose.yml
pyproject.toml
requirements.txt
web_server.py
tests/
  test_akshare.py
  test_stream.py
utils/
  api_utils.py
  logger.py
.github/
  workflows/
frontend/
  README.md
  index.html
  package-lock.json
  package.json
  public/
  src/
  tsconfig.app.json
  tsconfig.json
  tsconfig.node.json
  vite.config.ts
services/
  __init__.py
  ai_analyzer.py
  fund_service_async.py
  stock_analyzer_service.py
  ...
nginx/
  ...

主要文件及功能

  1. README.md:项目的说明文档,包含项目简介、功能变更、Docker 镜像一键部署步骤、Nginx 反向代理使用方法以及 Github Actions 部署所需的环境变量等信息。
  2. Docker 相关文件
    • Dockerfile:用于构建 Docker 镜像。
    • docker-compose.prod.ymldocker-compose.simple.ymldocker-compose.yml:用于使用 Docker Compose 部署项目。
  3. 前端文件
    • frontend 目录:包含前端项目的代码,使用 Vue3 + Vite + TS + Naive UI 构建。
    • package.jsonpackage-lock.json:记录前端项目的依赖信息。
    • src 目录:前端项目的源代码目录。
  4. 后端文件
    • web_server.py:可能是项目的 Web 服务器入口文件。
    • services 目录:包含各种服务模块,如 ai_analyzer.pyfund_service_async.pystock_analyzer_service.py 等。
    • utils 目录:包含一些工具函数,如 api_utils.pylogger.py
  5. 测试文件
    • tests 目录:包含项目的测试代码,如 test_akshare.pytest_stream.py
  6. GitHub Actions 文件
    • .github/workflows/docker-image.yml:用于自动化构建和部署 Docker 镜像。

部署方法

Docker 镜像一键部署

# 拉取最新版本
docker pull cassianvale/stock-scanner:latest

# 启动主应用容器
docker run -d \
  --name stock-scanner-app \
  --network stock-scanner-network \
  -p 8888:8888 \
  -v "$(pwd)/logs:/app/logs" \
  -v "$(pwd)/data:/app/data" \
  -e API_KEY="你的API密钥" \
  -e API_URL="你的API地址" \
  -e API_MODEL="你的API模型" \
  -e API_TIMEOUT="60" \
  -e LOGIN_PASSWORD="你的登录密码" \
  -e ANNOUNCEMENT_TEXT="你的公告内容" \
  --restart unless-stopped \
  cassianvale/stock-scanner:latest

# 运行Nginx容器
docker run -d \
  --name stock-scanner-nginx \
  --network stock-scanner-network \
  -p 80:80 \
  -p 443:443 \
  -v "$(pwd)/nginx/nginx.conf:/etc/nginx/conf.d/default.conf" \
  -v "$(pwd)/nginx/logs:/var/log/nginx" \
  -v "$(pwd)/nginx/ssl:/etc/nginx/ssl" \
  --restart unless-stopped \
  nginx:stable-alpine

使用 Nginx 反向代理

使用 Docker Compose 启动项目,具体步骤如下:

# 克隆仓库
git clone https://github.com/cassianvale/stock-scanner.git
cd stock-scanner

# 创建.env文件并填写必要的环境变量
cat > .env << EOL
API_KEY=你的API密钥
API_URL=你的API地址
API_MODEL=你的API模型
API_TIMEOUT=超时时间(默认60秒)
LOGIN_PASSWORD=登录密码(可选)
ANNOUNCEMENT_TEXT=公告文本
EOL

# 创建SSL证书目录
mkdir -p nginx/ssl

# 生成自签名SSL证书(仅用于测试环境)
openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout nginx/ssl/privkey.pem \
  -out nginx/ssl/fullchain.pem \
  -subj "/CN=localhost"

贡献

欢迎提交 issues 和 pull requests 来为项目做出贡献。

Github