部署
Docker 部署
适合服务器长期运行:使用 docker/docker-compose.yml 启动 analyzer 定时任务和 server Web/API 服务。
两种 Docker 路径
| 方式 | 适合场景 | 镜像/入口 |
|---|---|---|
| 本地构建 | 跟随当前源码、便于二次开发和调试 | docker/docker-compose.yml |
| Docker Hub 官方镜像 | 服务器快速部署、无需本地构建 | zhulinsen/daily_stock_analysis:latest |
| GitHub Container Registry | 跟随 GitHub Releases / tag 使用 | ghcr.io/zhulinsen/daily_stock_analysis:<tag> |
本地 Compose 构建
项目的 Compose 文件定义了两个服务:analyzer 用于定时分析,server 用于 FastAPI / WebUI。默认读取仓库根目录 .env,并挂载 data、logs、reports、strategies。
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git cd daily_stock_analysis cp .env.example .env # 编辑 .env:STOCK_LIST + 至少一个 AI Key + 通知渠道 docker-compose -f ./docker/docker-compose.yml up -d # 或只启动 Web/API 服务 docker-compose -f ./docker/docker-compose.yml up -d server # 同时启动 analyzer 和 server docker-compose -f ./docker/docker-compose.yml up -d analyzer server
官方镜像运行
官方 Docker Hub 镜像名为 zhulinsen/daily_stock_analysis;GHCR 镜像名为 ghcr.io/zhulinsen/daily_stock_analysis。稳定部署建议使用明确版本 tag,测试可用 latest。
docker pull zhulinsen/daily_stock_analysis:latest docker pull ghcr.io/zhulinsen/daily_stock_analysis:latest # Web/API 服务模式示例 docker run -d \ --name dsa-web \ --env-file .env \ -p 8000:8000 \ -v $(pwd)/data:/app/data \ -v $(pwd)/logs:/app/logs \ -v $(pwd)/reports:/app/reports \ zhulinsen/daily_stock_analysis:latest \ python main.py --serve-only --host 0.0.0.0 --port 8000
常用管理命令
docker-compose -f ./docker/docker-compose.yml logs -f docker-compose -f ./docker/docker-compose.yml ps docker-compose -f ./docker/docker-compose.yml restart docker-compose -f ./docker/docker-compose.yml down git pull docker-compose -f ./docker/docker-compose.yml build --no-cache docker-compose -f ./docker/docker-compose.yml up -d
数据持久化
- data:SQLite 数据库与缓存。
- logs:运行日志。
- reports:分析报告。
- 如果宿主机遇到 Permission denied,可对挂载目录执行 chown -R 1000:1000。
sudo chown -R 1000:1000 ./data ./logs ./reports
访问 WebUI
- 容器内 WEBUI_HOST 必须是 0.0.0.0,Compose 已设置。
- 默认端口是 8000,可通过 API_PORT 调整。
- 云服务器需要在安全组放行 8000 或自定义端口。