Files
stock-scanner/README.md
2025-03-11 09:20:04 +08:00

143 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 股票分析系统 (Stock Analysis System)
## 简介
基于 https://github.com/DR-lin-eng/stock-scanner 二次修改,感谢原作者
## 功能变更
1. 增加html页面支持浏览器在线使用
2. 增加港股、美股支持
3. 完善Dockerfile、GitHub Actions 支持docker一键部署使用
4. 支持x86_64 和 ARM64架构镜像
5. 支持流式输出支持前端传入Key(仅作为本地用户使用,日志等内容不会输出) 感谢@Cassianvale
6. 重构为Vue3+Vite+TS+Naive UI支持响应式布局
7. 支持GitHub Actions 一键部署
8. 支持Nginx反向代理可通过80/443端口访问
## 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
针对API_URL处理兼容更多的api地址规则与Cherry Studio一致 /结尾忽略v1版本#结尾强制使用输入地址。
API_URL 处理逻辑说明:
1. 当 API_URL 以 / 结尾时直接追加 chat/completions保留原有版本号
示例:
输入: https://ark.cn-beijing.volces.com/api/v3/
输出: https://ark.cn-beijing.volces.com/api/v3/chat/completions
2. 当 API_URL 以 # 结尾时强制使用当前链接:
示例:
输入: https://ark.cn-beijing.volces.com/api/v3/chat/completions#
输出: https://ark.cn-beijing.volces.com/api/v3/chat/completions
3. 当 API_URL 不以 / 结尾时使用默认版本号 v1
示例:
输入: https://ark.cn-beijing.volces.com/api
输出: https://ark.cn-beijing.volces.com/api/v1/chat/completions
```
默认8888端口部署完成后访问 http://你的域名或ip:8888 即可使用
## 使用Nginx反向代理
项目已集成Nginx服务可以通过80端口(HTTP)和443端口(HTTPS)访问应用
使用docker-compose启动
```shell
# 克隆仓库
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" \
-addext "subjectAltName=DNS:localhost,IP:127.0.0.1"
# 启动服务
docker-compose up -d
```
### 使用自己的SSL证书
如果您有自己的SSL证书可以替换自签名证书
1. 将您的证书文件放在 `nginx/ssl/` 目录下
2. 确保证书文件命名为 `fullchain.pem`,私钥文件命名为 `privkey.pem`
3. 重启服务: `docker-compose restart nginx`
相关参考:[免费泛域名 SSL 证书申请及自动续期(使用 1Panel 面板)](https://bronya-zaychik.cn/archives/GenSSL.html)
## Github Actions 部署
| 环境变量 | 说明 |
| --- | --- |
| DOCKERHUB_USERNAME | Docker Hub用户名 |
| DOCKERHUB_TOKEN | Docker Hub访问令牌 |
| SERVER_HOST | 部署服务器地址 |
| SERVER_USERNAME | 服务器用户名 |
| SSH_PRIVATE_KEY | SSH私钥 |
| DEPLOY_PATH | 部署路径 |
| SLACK_WEBHOOK | Slack通知Webhook可选 |
## 注意事项 (Notes)
- 股票分析仅供参考,不构成投资建议
- 使用前请确保网络连接正常
- 建议在实盘前充分测试
## 贡献 (Contributing)
欢迎提交 issues 和 pull requests
## 许可证 (License)
[待添加具体许可证信息]
## 免责声明 (Disclaimer)
本系统仅用于学习和研究目的,投资有风险,入市需谨慎。