ccbot 资金报表系统配置与运维

ccbot 是一个面向多账户财务核算与报表推送的量化辅助系统。它采用前后端分离架构,包括底层的 SQLite 数据归档、FastAPI 只读 API 侧车,以及 Vue 3 + Tailwind 前端看板,统一通过飞书进行日报推送与表单交互。


一、 项目目录结构 (Directory Tree)

ccbot/                            # 项目根目录
├── docker-compose.yml            # 容器总编排文件 (串联前后端与网络)
├── .env                          # 全局机密环境变量 (已进行 [REDACTED] 脱敏)
├── data/                         # 挂载卷目录 (用于 SQLite 数据库和日志持久化)

├── backend/                      # 后端核心工程 (Python / 飞书机器人内核)
│   ├── Dockerfile.backend        # 后端容器构建脚本
│   ├── requirements.txt          # Python 依赖清单
│   ├── main.py                   # 飞书通信网关与主事件循环 (入口点)
│   ├── api_sidecar.py            # 独立只读 API 网关 (为前端提供数据)
│   ├── handlers.py               # 交互路由、业务逻辑层与卡片生成
│   ├── reporting.py              # 财务核算 (Dietz) 与报表卡片渲染
│   ├── tasks.py                  # 后台调度引擎 (数据自动对账与推送)
│   ├── market_feeds.py           # 外部行情网关 (Tradier、Yahoo 等源的统一出口)
│   ├── database.py               # 异步数据库引擎与 ORM 模型
│   └── config.py                 # 全局配置中心、时间锚点与连接池管理

└── frontend/                     # 前端工程 (Vue 3 / Vite / Tailwind UI)
    ├── Dockerfile.frontend       # 前端构建脚本 (Node打包 + Nginx代理)
    ├── nginx.conf                # Nginx 配置 (静态资源托管与 /api 代理转发)
    ├── package.json              # Node.js 项目依赖清单
    ├── vite.config.js            # Vite 构建工具配置
    ├── tailwind.config.js        # Tailwind 样式主题配置
    ├── index.html                # 前端页面物理入口
    └── src/                      # 前端源代码
        ├── main.js               # Vue 实例挂载文件
        ├── App.vue               # 前端看板根组件 (UI 主界面)
        └── index.css             # 全局样式与 Tailwind 核心注入

二、 系统配置参数矩阵 (.env 契约)

项目根目录下的 .env 配置文件参数详解:

配置键名参数类型默认值 / 推荐值作用与物理边界
CACHE_TTL_IDLE浮点数3600.0市场闲时(未交易时间)的行情与指标本地缓存生存时间(秒),防限流。
CACHE_TTL_TRADING浮点数60.0市场开盘交易时间段内的缓存生存时间(秒)。
DAILY_REPORT_TIME时间06:30每日触发 Dietz 财务核算并向飞书推送日报的时间(北京时间/CST)。
DB_NAME路径data/titan_q_assets.db核心数据库持久化路径,记录每日账户净值快照(daily_snapshots)。
DIVIDEND_TAX_RATE比例0.10针对账户美股/ETF 分红自动扣除的预扣税率(默认为 10%)。
TRADIER_ACCESS_TOKEN密钥[REDACTED]Tradier API 生产环境访问凭证,必须严格只读授权。
FEISHU_APP_ID凭证[REDACTED]飞书开放平台自建机器人的 App ID。
FEISHU_APP_SECRET密钥[REDACTED]飞书自建机器人的 App Secret,用于生成 tenant_access_token。
FEISHU_REPORT_CHAT_IDID[REDACTED]接收每日财务核算与估值日报的群组 ID(oc_ 前缀)。

二、 部署与运行指令 (Docker Compose)

ccbot 由三个互联的容器构成:写引擎(bot)、读侧车(api)和前端托管(frontend)。

1. 编译并拉起服务 (首次部署/代码更新)

cd /root/HermesAgent/ccbot
 
# 停止旧服务并清理容器
docker compose down
 
# 重新构建镜像并后台拉起
docker compose up -d --build

2. 状态与健康度校验

  • 数据库就绪校验bot 容器自带 Python 脚本健康探测,会核验 daily_snapshots 是否加载完成。
  • 查看容器日志
    # 查看后端机器人日志
    docker logs -f titanq-bot --tail=100
     
    # 查看只读 API 侧车日志
    docker logs -f titanq-api --tail=100

三、 日常维护与数据备份

1. 本地数据库安全备份 (SQLite 容灾)

由于数据库在挂载卷中持续处于写状态,严禁直接使用 cp 拷贝,必须执行在线备份(Online Backup)以防止 B-Tree 损坏:

sqlite3 /root/ccbot/data/titan_q_assets.db ".backup '/root/ccbot_backup_$(date +%F).db'"

2. 容器内部测试命令 (手动测试)

在服务启动状态下,可向 bot 容器直接发送指令测试数据核算是否正常:

docker exec -it titanq-bot python test_ccbot.py

相关链接