Skip to content

Commit db5467e

Browse files
author
dministrator
committed
docs: Add quick deployment guide for NAS container
1 parent 00dae76 commit db5467e

2 files changed

Lines changed: 407 additions & 0 deletions

File tree

QUICK_DEPLOYMENT_GUIDE.md

Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
# 🚀 T+0 选股池周报 - 立即部署指南
2+
3+
## ⚡ 快速部署(复制粘贴到 NAS 执行)
4+
5+
### Step 1: SSH 登录 NAS
6+
7+
打开终端,执行:
8+
9+
```bash
10+
ssh my.sun@192.168.3.70
11+
```
12+
13+
输入密码:`MegaMingyang2023`
14+
15+
---
16+
17+
### Step 2: 查找容器 ID
18+
19+
在 NAS 上执行:
20+
21+
```bash
22+
sudo /usr/bin/docker ps -a | grep -i stock
23+
```
24+
25+
如果找不到,查看所有容器:
26+
27+
```bash
28+
sudo /usr/bin/docker ps -a
29+
```
30+
31+
**记下容器 ID**(例如:`abc123def456`
32+
33+
---
34+
35+
### Step 3: 进入容器
36+
37+
```bash
38+
sudo /usr/bin/docker exec -it <CONTAINER_ID> /bin/bash
39+
```
40+
41+
`<CONTAINER_ID>` 替换为实际的容器 ID
42+
43+
---
44+
45+
### Step 4: 在容器内执行所有命令
46+
47+
**复制以下所有内容**,在容器内一次性执行:
48+
49+
```bash
50+
# 切换到应用目录
51+
cd /app
52+
53+
# 1. 安装 Python 依赖
54+
echo "🔧 安装 Python 依赖..."
55+
pip3 install schedule pandas numpy requests python-dotenv
56+
57+
# 2. 验证依赖
58+
echo "✅ 验证依赖安装..."
59+
python3 -c "import schedule, pandas, numpy, requests; print('✓ 依赖安装成功')"
60+
61+
# 3. 检查 .env 配置
62+
echo ""
63+
echo "📋 检查环境配置..."
64+
if [ -f ".env" ]; then
65+
echo "✓ .env 文件存在"
66+
if grep -q "FEISHU_WEBHOOK_URL=" .env && [ -n "$(grep FEISHU_WEBHOOK_URL .env | cut -d'=' -f2)" ]; then
67+
echo "✓ FEISHU_WEBHOOK_URL 已配置"
68+
else
69+
echo "⚠️ FEISHU_WEBHOOK_URL 未配置"
70+
fi
71+
if grep -q "TUSHARE_TOKEN=" .env && [ -n "$(grep TUSHARE_TOKEN .env | cut -d'=' -f2)" ]; then
72+
echo "✓ TUSHARE_TOKEN 已配置"
73+
else
74+
echo "⚠️ TUSHARE_TOKEN 未配置"
75+
fi
76+
else
77+
echo "⚠️ .env 文件不存在"
78+
fi
79+
80+
# 4. 测试运行选股任务(可选,需要 1-2 分钟)
81+
echo ""
82+
echo "🧪 是否现在测试运行选股任务?(y/N)"
83+
read -p "> " answer
84+
85+
if [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then
86+
echo "开始测试..."
87+
python3 scripts/t0_stock_screener.py --notify
88+
echo ""
89+
echo "✅ 测试完成!请检查飞书消息"
90+
echo "CSV 文件位置:data/t0_stock_pool.csv"
91+
else
92+
echo "跳过测试运行"
93+
fi
94+
95+
# 5. 设置 crontab 定时任务(每周一 9:00)
96+
echo ""
97+
echo "⏰ 设置定时任务..."
98+
(crontab -l 2>/dev/null | grep -v 't0_stock_screener'; echo '0 9 * * 1 cd /app && python3 scripts/t0_stock_screener.py --notify >> logs/t0_screener.log 2>&1') | crontab -
99+
100+
# 6. 验证 crontab
101+
echo "验证 crontab 配置..."
102+
crontab -l | grep t0
103+
104+
echo ""
105+
echo "=========================================="
106+
echo "✅ 部署完成!"
107+
echo "=========================================="
108+
echo ""
109+
echo "下次执行时间:下周一 上午 9:00"
110+
echo ""
111+
echo "管理命令:"
112+
echo " 手动运行:python3 scripts/t0_stock_screener.py --notify"
113+
echo " 查看日志:tail -f logs/t0_screener.log"
114+
echo " 编辑定时:crontab -e"
115+
echo " 查看定时:crontab -l"
116+
echo ""
117+
echo "🎉 恭喜!T+0 选股池周报已配置完成!"
118+
```
119+
120+
---
121+
122+
## 📋 执行过程示例
123+
124+
```bash
125+
# SSH 登录
126+
my.sun@192.168.3.70's password: ********
127+
128+
# 查找容器
129+
$ sudo /usr/bin/docker ps -a | grep -i stock
130+
abc123def456 stock_analysis "/bin/bash" 2 days ago Up 2 days stock_analysis
131+
132+
# 进入容器
133+
$ sudo /usr/bin/docker exec -it abc123def456 /bin/bash
134+
135+
# 在容器内执行上述所有命令...
136+
137+
# 预期输出:
138+
🔧 安装 Python 依赖...
139+
Collecting schedule
140+
Installing collected packages: schedule, pandas, numpy, requests, python-dotenv
141+
Successfully installed pandas-2.x.x numpy-2.x.x requests-2.x.x python-dotenv-11.x.x schedule-1.x.x
142+
143+
✅ 验证依赖安装...
144+
✓ 依赖安装成功
145+
146+
📋 检查环境配置...
147+
✓ .env 文件存在
148+
✓ FEISHU_WEBHOOK_URL 已配置
149+
✓ TUSHARE_TOKEN 已配置
150+
151+
🧪 是否现在测试运行选股任务?(y/N)
152+
> y
153+
154+
开始测试...
155+
[选股过程日志...]
156+
✅ Feishu notification sent successfully
157+
✅ 测试完成!请检查飞书消息
158+
159+
⏰ 设置定时任务...
160+
验证 crontab 配置...
161+
0 9 * * 1 cd /app && python3 scripts/t0_stock_screener.py --notify >> logs/t0_screener.log 2>&1
162+
163+
==========================================
164+
✅ 部署完成!
165+
==========================================
166+
167+
下次执行时间:下周一 上午 9:00
168+
```
169+
170+
---
171+
172+
## ✅ 验收检查
173+
174+
### 1. 检查飞书消息
175+
176+
打开飞书群聊,应该收到测试推送的消息:
177+
178+
```
179+
## 📊 T+0 选股池周报
180+
**生成时间**: 2026-01-20 XX:XX
181+
182+
### 📈 筛选统计
183+
- **入选股票数量**: XX 只
184+
- **平均振幅**: X.XX%
185+
...
186+
```
187+
188+
### 2. 检查 CSV 文件
189+
190+
在容器内执行:
191+
192+
```bash
193+
ls -lh data/t0_stock_pool.csv
194+
cat data/t0_stock_pool.csv | head -5
195+
```
196+
197+
应该能看到选股结果数据。
198+
199+
### 3. 检查 crontab
200+
201+
```bash
202+
crontab -l
203+
```
204+
205+
应该显示:
206+
207+
```bash
208+
0 9 * * 1 cd /app && python3 scripts/t0_stock_screener.py --notify >> logs/t0_screener.log 2>&1
209+
```
210+
211+
---
212+
213+
## 🔧 故障排查
214+
215+
### 问题 1: 找不到容器
216+
217+
**解决**:
218+
```bash
219+
# 查看所有容器(包括已停止的)
220+
sudo /usr/bin/docker ps -a
221+
222+
# 如果容器已停止,启动它
223+
sudo /usr/bin/docker start <container_id>
224+
```
225+
226+
### 问题 2: pip3 安装失败
227+
228+
**错误**: `pip3: command not found`
229+
230+
**解决**:
231+
```bash
232+
# 在容器内尝试使用 python3 -m pip
233+
python3 -m pip install schedule pandas numpy requests python-dotenv
234+
```
235+
236+
### 问题 3: 飞书通知失败
237+
238+
**检查**:
239+
```bash
240+
# 查看 .env 配置
241+
cat .env | grep FEISHU
242+
243+
# 如果为空或未配置,编辑 .env
244+
vi .env
245+
# 添加:FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxx
246+
```
247+
248+
### 问题 4: Tushare 积分不足
249+
250+
**错误**: `RuntimeError: 积分不够,需要 2000 积分`
251+
252+
**解决**:
253+
1. 访问 https://tushare.pro
254+
2. 登录账号查看积分
255+
3. 通过签到或捐赠获得 2000 积分
256+
4. 更新 `.env` 中的 TUSHARE_TOKEN
257+
258+
---
259+
260+
## 📞 需要帮助?
261+
262+
如果遇到任何问题,可以:
263+
264+
1. 查看详细文档:`docs/NAS_CONTAINER_DEPLOYMENT.md`
265+
2. 查看日志:`tail -f logs/t0_screener.log`
266+
3. 手动运行测试:`python3 scripts/t0_stock_screener.py --notify`
267+
268+
---
269+
270+
## 🎯 下一步
271+
272+
部署完成后:
273+
274+
1. ✅ 检查飞书是否收到测试消息
275+
2. ✅ 查看 `data/t0_stock_pool.csv` 是否生成
276+
3. ✅ 等待下周一验证自动执行
277+
4. ✅ 定期查看日志确保正常运行
278+
279+
---
280+
281+
**祝部署顺利!** 🎉
282+
283+
如有问题,参考完整文档:
284+
- [NAS 容器部署指南](docs/NAS_CONTAINER_DEPLOYMENT.md)
285+
- [快速参考卡片](docs/T0_WEEKLY_QUICK_REFERENCE.md)
286+
- [完整总结](DEPLOYMENT_COMPLETE_SUMMARY.md)

0 commit comments

Comments
 (0)