☰
PanWatch AI 盯盘生产环境部署加固:HTTPS 反代、数据备份与监控告警完整指南
2026/10/4 1:47:33 网站建设 项目流程

PanWatch AI 盯盘生产环境部署加固:HTTPS 反代、数据备份与监控告警完整指南

【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated reports.|盯盘侠:覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch

PanWatch(盯盘侠)是一款覆盖 A股/港股/美股 的 AI 盯盘系统,提供持仓分析、实时价格提醒与自动报告。个人试用时docker run一条命令就能跑起来,但把它当作 7×24 小时的生产服务时,还需要在HTTPS 反向代理、数据目录备份、健康检查与监控告警三个环节做加固。本文按生产落地的顺序,带你一步步完成配置。

核心结论先说:PanWatch 的所有状态都集中在一个数据目录里,备份只需盯住一个卷;镜像自带健康检查与日志入库,监控只需"外接"一个告警通道。

一、Docker 部署基线:端口、重启策略与数据卷

生产部署的第一步不是上 HTTPS,而是把容器本身的三件事做对:自动重启、固定数据卷、最小端口暴露。官方推荐的启动方式(见 README.md Quick Start 章节):

docker run -d \ --name panwatch \ --restart unless-stopped \ -p 127.0.0.1:8000:8000 \ -v panwatch_data:/app/data \ sunxiao0721/panwatch:latest

三个关键细节:

  • --restart unless-stopped:宿主重启或容器崩溃后自动拉起,这是生产可用性的底线;
  • -p 127.0.0.1:8000:8000:只绑定本机回环地址,8000 端口不对公网开放,由反向代理统一入口对外;
  • -v panwatch_data:/app/data:数据目录挂载为命名卷,所有持久化内容(数据库、Playwright 浏览器、缓存)都在/app/data下(见 Dockerfile 中DATA_DIR的定义)。

💡 可选瘦身:如果不需要 K 线截图等浏览器功能,加-e PLAYWRIGHT_SKIP_BROWSER_INSTALL=1可跳过首次 Chromium 下载,启动更快、数据卷更小。

二、HTTPS 反向代理:Nginx / Caddy 配置要点

PanWatch 后端是 FastAPI 服务,且 AI 分析、智能助手等页面通过SSE(Server-Sent Events)推送实时事件流(实现见 src/platform/events/sse.py,服务端会主动发送 keepalive 心跳注释行防止代理断开空闲连接)。因此反向代理有两条硬性要求:

  1. 开启 TLS 终止:证书用 Let's Encrypt 即可;
  2. 关闭响应缓冲:否则 SSE 事件会被代理攒住,前端收不到实时推送。

Nginx 最小配置示例(proxy_buffering off是 SSE 场景的关键一行):

server { listen 443 ssl; server_name panwatch.example.com; ssl_certificate /etc/letsencrypt/live/panwatch.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/panwatch.example.com/privkey.pem; location / { proxy_pass http://127.0.0.1:8000; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering off; # SSE 实时推送必须关闭缓冲 proxy_read_timeout 300s; } }

Caddy 用户则一行reverse_proxy 127.0.0.1:8000 { flush_interval -1 }即可等价实现。

三、数据备份策略:一个卷,一份 SQL 数据库

PanWatch 使用 SQLite 作为唯一存储,数据库文件位于数据目录下的panwatch.db,并已启用 WAL 日志模式提升并发写入(见 src/platform/persistence/database.py)。这带来两个备份事实:

  • 备份范围小:只需备份/app/data卷,持仓、自选股、提醒规则、Agent 配置、AI 服务配置、通知渠道与历史日志全在其中;
  • 在线备份要注意 WAL 文件:WAL 模式下panwatch.db-wal里可能还有未合并的最新写入,直接只拷主文件可能丢数据。

两种稳妥的备份方式:

方式一:容器级备份(最简单)

docker stop panwatch && \ docker run --rm -v panwatch_data:/data -v $(pwd)/backup:/out alpine \ cp -r /data /out/panwatch-$(date +%F) && \ docker start panwatch

停容器期间会有几分钟不可用,适合放在收盘后的非交易时段执行。

方式二:SQLite 在线热备(零停机)

docker exec panwatch sqlite3 /app/data/panwatch.db ".backup /app/data/backup.db" docker cp panwatch:$(echo /app/data/backup.db) ./backup.db

.backup命令会产出与 WAL 状态一致的完整快照,可定期执行后把backup.db传离服务器。

📌 备份建议:保留最近 7 天每日份 + 每月 1 份,存到异地对象存储或另一台机器;升级版本前先做一份,回滚时停容器、恢复卷、再启动即可。

四、健康检查与监控告警:让故障第一时间被看见

PanWatch 在三个层面内置了可观测性,生产监控"借力"即可:

1. 容器级健康检查(已内置)

Dockerfile 中已定义 HEALTHCHECK:每 30 秒请求一次/api/health,10 秒超时、连续 3 次失败即把容器标记为 unhealthy。只需在监控侧轮询:

docker inspect --format='{{.State.Health.Status}}' panwatch

2. 应用级一键体检(UI + API 双入口)

系统内置"一键体检"能力(实现见 src/modules/administration/selfcheck.py),覆盖数据库、磁盘空间、调度器、数据源、AI 服务、通知渠道六类检查项,失败时还会给出排查提示(hint字段)。建议把run_selfcheck的结果接进定时任务,任何一项变 fail 立即告警。

3. 日志与健康度 API

所有日志(含 DEBUG 级全量)通过DBLogHandler写入数据库,Web 界面的日志面板可回溯完整记录;/api/logs/health端点(见 src/modules/administration/api/logs.py)返回日志总量、级别分布与写入器状态,可直接作为监控探针。

🚨 告警通道复用:PanWatch 本身支持 Telegram / 企业微信 / 钉钉 / 飞书 / Bark / Webhook 多渠道通知(源码见 src/platform/notifications/notifier.py)。部署脚本的 cron 告警可以推到同一批渠道里,"股票提醒"和"服务告警"在同一块屏幕上看齐。需要更深排障时,把 server.py 中LOG_LEVEL=DEBUG打开,可看到调度器心跳与采集细节。

五、可选进阶:OpenTelemetry 链路追踪

如果希望观察每次 Agent 运行、每次 LLM 调用的耗时与 token 消耗,PanWatch 支持标准 OTLP 导出(一次 Agent 运行一个根 span,一次 LLM 调用一个gen_ai子 span,映射规则见 src/platform/observability/otel.py)。三步启用:

  1. pip install -r requirements-otel.txt安装可选依赖(文件见 requirements-otel.txt);
  2. 设置OTEL_EXPORTER_OTLP_ENDPOINT=http://jaeger:4318;
  3. 正常启动,日志会确认导出已启用。

不配置端点时该功能完全空转,对生产零开销。

六、生产加固清单

加固项做法状态
自动重启--restart unless-stopped✅ 必做
端口收敛-p 127.0.0.1:8000:8000,公网仅暴露 443✅ 必做
TLS 证书Nginx/Caddy 终止 TLS,SSE 关闭缓冲✅ 必做
数据卷备份每日.backup+ 异地副本,升级前快照✅ 必做
健康检查轮询docker inspectHealth 状态接告警✅ 必做
一键体检定时化selfcheck 结果失败即推送通知✅ 必做
时区固定-e TZ=Asia/Shanghai,保证 Agent 调度时间正确✅ 建议
日志级别日常INFO,排障切DEBUG(UI 日志板始终全量)✅ 建议
OTel 追踪指向 Jaeger/Tempo,观察 LLM 调用链路🔸 可选

按这份清单走完,你的 PanWatch 就从"能跑"升级为"敢长期跑":HTTPS 统一入口、数据可恢复、故障有告警、链路可观测。祝你的 AI 盯盘系统稳定运行每一个交易日。

【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated reports.|盯盘侠:覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询