这个仓库 stock-scanner
是一个股票分析系统,它基于原项目 https://github.com/DR-lin-eng/stock-scanner 进行了二次修改,以下是对该仓库的详细介绍:
功能特性
- 增加 HTML 页面:支持在浏览器上在线使用该系统。
- 多市场支持:增加了对港股、美股的支持。
- 部署便捷:完善了 Dockerfile 和 GitHub Actions,支持通过 Docker 一键部署,并且支持 x86_64 和 ARM64 架构镜像。
- 流式输出:支持流式输出,同时支持前端传入 Key(仅用于本地用户,不会输出日志等内容)。
- 前端重构:前端重构为 Vue3 + Vite + TS + Naive UI 的技术栈,支持响应式布局。
- 自动化部署:支持通过 GitHub Actions 一键部署。
- 反向代理:支持 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/
...
主要文件及功能
- README.md:项目的说明文档,包含项目简介、功能变更、Docker 镜像一键部署步骤、Nginx 反向代理使用方法以及 Github Actions 部署所需的环境变量等信息。
- Docker 相关文件:
Dockerfile
:用于构建 Docker 镜像。docker-compose.prod.yml
、docker-compose.simple.yml
、docker-compose.yml
:用于使用 Docker Compose 部署项目。
- 前端文件:
frontend
目录:包含前端项目的代码,使用 Vue3 + Vite + TS + Naive UI 构建。package.json
和package-lock.json
:记录前端项目的依赖信息。src
目录:前端项目的源代码目录。
- 后端文件:
web_server.py
:可能是项目的 Web 服务器入口文件。services
目录:包含各种服务模块,如ai_analyzer.py
、fund_service_async.py
、stock_analyzer_service.py
等。utils
目录:包含一些工具函数,如api_utils.py
和logger.py
。
- 测试文件:
tests
目录:包含项目的测试代码,如test_akshare.py
和test_stream.py
。
- 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 来为项目做出贡献。