Files
server-ops/TIMELINE.md
fxy 489d63de51 docs: 补全 6/15-6/19 缺失服务记录
TIMELINE: +v0.3/0.4 新闻流水线 + WebDAV/Vaultwarden/Halo + Dashboard v1.4 + 灵感周报
CHANGELOG: +v1.4.0 三联部署 + v1.5.0 双策略架构
DECISION_LOG: +6 项关键架构决策 (RSS替代/RAW存档/四件套/指标统一/主任越权/周报定位)
服务清单: 15->18 项,补齐缺失服务
2026-06-20 15:11:39 +08:00

12 KiB
Raw Blame History

服务器服务部署时间线

记录东京服务器43.163.225.30)上每个服务的诞生背景和部署时间。


2026 年之前

🔴 Beast Trader 策略运行(起点)

  • 背景:你已经在服务器上运行 Freqtrade 策略,但无法实时监控运行状态
  • 痛点:策略有没有在跑、最近有没有成交、收益如何——这些信息需要一个面板来展示
  • 这是一切的起点

2026 年上半年

🟡 v1.0 — Beast Dashboard监控面板

  • 部署时间:约 2026 年初
  • 背景:策略运行在 freqtrade 上,需要一个 Web 面板实时监控
  • 技术选型FastAPI 后端(端口 9000+ 纯 HTML 前端Caddy 反代 dashboard.xybkwd.top
  • 核心功能:实时展示策略状态、持仓、最近交易记录
  • 意义:服务器上第一个自建 Web 服务,打开了后续所有服务的大门

🟢 v2.0 — Telegram Bot 通知

  • 部署时间Dashboard 之后不久
  • 背景Dashboard 需要人主动去看,策略有信号时需要主动推送
  • 技术选型Freqtrade 原生 Telegram 集成 + 自建 @jason5612_bot
  • 核心功能:策略信号推送、交易通知、每日日报推送到微信(通过 Server酱
  • 意义:从"人查面板"升级到"机器主动通知"

🟢 v3.0 — Caddy 反向代理

  • 部署时间:服务数量达到 3 个左右时
  • 背景:每个服务都跑在不同端口,直接 IP:端口 访问体验差,且没有 HTTPS
  • 技术选型Caddy自动 Let's Encrypt 证书)+ 域名(xybkwd.top 系列)
  • 核心功能统一入口、HTTPS、basic_auth 保护
  • 意义:从此访问服务变成正常的域名访问,安全性也解决了

🔵 v4.0 — Gitea私有 Git 服务)

  • 部署时间:约 2026 年中
  • 背景:策略代码、面板代码都在服务器上手工改,没有版本控制,一旦改坏无法回滚
  • 技术选型Gitea轻量级自托管 Git+ gitea.xybkwd.top
  • 核心功能:代码版本管理、跨设备同步、作为知识库中枢
  • 意义:从此所有代码改动都有历史记录,服务器上的"作坊"升级成"有规范的工程"

🟣 v5.0 — 灵感收集器Memos → AI → Gitea

  • 部署时间:约 2026 年 5 月
  • 背景:你有很多碎片想法(微信、备忘录),但散落各处,无法沉淀
  • 技术选型Memos碎片记录+ Daily Digest 脚本DeepSeek API 分析)+ Gitea 存储
  • 核心功能:碎片灵感 → AI 深度分析 → Markdown 归档 → Gitea
  • cron:每日 22:00 北京时间自动运行
  • 意义:第一次把"AI 分析"引入工作流,不只是执行策略,还帮你思考

🟠 v6.0 — 栖云导航页nav.xybkwd.top

  • 部署时间:约 2026 年 5-6 月
  • 背景:服务越来越多,需要一个统一入口
  • 技术选型:纯静态 HTML/var/www/nav/index.html+ Caddy 静态托管
  • 核心功能:所有服务的导航、快速跳转
  • 意义"栖云"这个名字就是这时候定的,个人数据中心的雏形出现了

🔴 v7.0 — 每日要闻brief.xybkwd.top

  • 部署时间:约 2026 年 6 月初
  • 背景:每天想快速了解重要新闻,但不想被信息流淹没
  • 技术选型RSS 抓取7 个源)→ DeepSeek 总结 → brief.html 两栏展示
  • 核心功能AI 精选摘要、分类展示、移动端适配
  • cron:每 3 小时抓取一次30 分钟后 AI 总结
  • 意义:第一次把"新闻聚合 + AI 总结"做成自动化流水线

🔵 v8.0 — Todo 系统todos.html + todo_server.py

  • 部署时间:约 2026 年 6 月
  • 背景:灵感收集器分析了你的想法,但产生的待办事项没有地方管理
  • 技术选型Python HTTP Server端口 9001+ PWA 前端(todos.html
  • 核心功能CRUD 待办、优先级、分类、从灵感自动提取 todo
  • 意义:灵感 → 待办 → 执行的闭环形成了

🟢 v9.0 — AI 对话chat.xybkwd.top

  • 部署时间:约 2026 年 6 月
  • 背景:想在手机上直接和 AI 对话,而不依赖 WorkBuddy 桌面端
  • 技术选型FastAPI + SQLite端口 8900+ 内嵌 HTML/JS 前端
  • 核心功能:移动端 AI 对话、对话历史存储、Markdown 渲染
  • 意义WorkBuddy 的能力延伸到了手机端

🟡 v10.0 — 系统备份自动化

  • 部署时间:约 2026 年 6 月中旬
  • 背景:服务越来越多,一旦服务器出问题,重建成本很高
  • 技术选型backup.sh 脚本 + cron 每日 04:00 自动备份
  • 备份内容系统配置、Docker 元数据、SQLite 数据库、工作目录、SSL 证书
  • 意义:从"能跑"升级到"不怕丢"

当前状态2026-06-15

服务 域名 端口 状态
Caddy反代 各域名 80/443 运行中
Gitea gitea.xybkwd.top 3000 运行中
Memos memo.xybkwd.top 5230 运行中
Dashboard dashboard.xybkwd.top 9000 dry-run 运行中
AI Chat chat.xybkwd.top 8900 运行中
Todo Server nav.xybkwd.top/api 9001 运行中
每日要闻 brief.xybkwd.top 静态 运行中
栖云导航 nav.xybkwd.top 静态 运行中
Audiobookshelf podcast.xybkwd.top 13378 运行中
灵感收集器 cron 每日 22:00 运行
系统备份 cron 每日 04:00 运行
音频归档 D://服务器备份//有声书// 手动同步

演化规律

每次加新服务,都遵循同一个模式:

痛点出现 → 找到一个最小可用的技术方案 → 快速上线 → 用一段时间 → 发现新问题 → 迭代或加新服务

没有一开始就做宏大规划,都是按需生长。现在的架构是 10 次迭代 自然演化的结果。


2026-06-15 — Calibre-Web 电子书库上线

背景:冯总在文石阅读器上读书并做标注,需要一个统一管理平台,且与 AI 打通。

部署内容

  • Docker 部署 linuxserver/calibre-web:latest
  • 端口8083Caddy 反代到 books.xybkwd.top
  • 数据目录:~/calibre-web/books(图书库)、~/calibre-web/config(配置)
  • nav 导航页新增电子书库卡片(琥珀色书籍图标)

后续计划

  • 上传图书文件
  • 打通文石标注同步Calibre Companion / WebDAV
  • 开发 AI 读书助手(摘要生成、笔记整理、微信读书同步)
  • 建立独立 Gitea 仓库 ebook-library 管理书库相关代码和文档

意义个人知识管理从多个碎片Memos、要闻、Gitea走向阅读 → 标注 → AI 分析 → 笔记归档的完整闭环。

2026-06-15 — Lucky 清除 & 全面安全加固

背景:冯总要求排查服务器安全状态,确保纯私有化部署的个人服务不对外暴露。

排查发现

  • Lucky 已无实质作用进程、Docker、二进制均不存在仅残留 配置目录132KB
  • 所有服务的 Caddy basicauth 认证缺失(之前设置后被取消)
  • ufw 残留 Lucky 端口规则16601/tcp和多余规则9001/tcp
  • Shadowsocks 服务正常运行31567/tcp代理用途
  • fail2ban 未安装

执行操作

  • 彻底删除 (无 Docker 镜像/容器/卷残留)
  • 恢复所有个人服务的 basicauth 保护(用户名 ,密码
  • 加密的服务gitea / dashboard / memo / nav / books
  • 不加的服务blog公开、vaultwarden自身有登录
  • Caddyfile 备份到 server-ops 仓库

安全铁律

  • 严禁取消 basicauth任何调试通过 localhost 不改 Caddyfile

2026-06-16 — 新闻流水线大改造 v0.3/v0.4

背景:国内主流媒体 RSS 已全线死亡(新华网、新浪、人民、澎湃、凤凰等均无可用 RSS且多源数据存在时间格式混乱、来源标识被 AI 改写等问题。

改造内容

  • 本地抓取层全面重写5路非RSS抓取新浪API + 新华网HTML + 人民网HTML + 观察者网HTML + 微博热搜)
  • 国际源从7个扩展至12个新增BBC/Guardian/CNBC/FT中文/Bloomberg
  • 中英文源合并后每轮约500条 -> RAW全量存档 -> 精选80条送AI摘要
  • 新增 selector.py 多策略评分精选器(来源权重+时效+多样性16主题分类
  • 新增行情数据采集线fetch_market_daily.py31品种日线OHLCV
  • URL日期提取支持三种格式YYYYMMDD / YYYY_MM_DD / YYYY/MMDD
  • 修复ctime字符串转int、AI改写来源名恢复、微信读书时长秒->分钟

意义:从依赖不可靠的 RSS -> 自主打造非RSS抓取体系每日处理500条新闻AI精选80条。个人新闻聚合从玩具变成了可靠的信息基础设施。

2026-06-17 — 个人服务三联WebDAV + Vaultwarden + Halo

背景:个人数据中心从服务器工具向真正的个人云演进,补齐数据存储、密码管理、内容发布三个缺口。

部署内容

  • WebDAVdav.xybkwd.top:8766一本日记 App 同步后端文字日记207条 + 照片全部云同步。容器bytemark/webdavhtpasswd 认证
  • Vaultwardenvault.xybkwd.top:8088Bitwarden 兼容密码管理器,所有服务密码统一管理,多端同步
  • Halo 博客www.xybkwd.top:8090个人博客公开内容发布平台

意义至此个人云四件套齐备——存储WebDAV、密码Vaultwarden、阅读Calibre-Web/Audiobookshelf、发布Halo

2026-06-19 — Dashboard v1.4.0 + 双策略架构固化

背景Freqtrade 从单策略升级为双策略并行(趋势 v2.2d + 震荡 v3.2Dashboard 同步升级。

变动内容

  • Dashboard 三 Tab 布局:趋势概览 + 震荡概览 + 震荡指标面板RSI/布林带/ATR/MFI
  • 双 Telegram Bot趋势 + 震荡
  • 双 Docker 实例:端口 8081/8082symlink 隔离 dry-run/live 数据库
  • 指标面板与策略实际决策逻辑完全统一
  • 移除 BTC/USDT持续 bug 且非交易目标)

意义:双策略架构是交易部从作坊式到平台化的关键一步。


2026-06-20 — Audiobookshelf 有声书服务上线 + 音频归档体系

v11.0 — 有声书 & 播客服务

部署内容

  • Docker 部署 ghcr.io/advplyr/audiobookshelf:latest,端口 13378
  • Caddy 反代到 podcast.xybkwd.top
  • docker-compose 管理:/home/ubuntu/audiobookshelf/docker-compose.yml
  • 数据目录:config/ metadata/ audiobooks/ podcasts/
  • 手机端通过希声 App 同步收听

核心工作流

B站/YouTube → yt-dlp 下载(带 upload_date) → 转 MP3
  → 按源端发布时间排序 → 加 01-N 前缀(完整保留标题)
  → 放入 audiobooks/节目名/
  → Audiobookshelf watcher 自动检测 → 希声自动同步

技术突破 — 章节排序三层同步铁律 Audiobookshelf 章节排序依赖三层数据,只改文件名不生效:

位置 关键字段 规则
① 文件系统 文件名 01-标题.mp3 数字前缀确保字母序
② books 表 chapters JSON start(秒) 必须连续递增
③ books 表 audioFiles JSON index 必须顺序 1→2→3→...

滚动淘汰 + 本地归档体系

  • 每节目服务器只保留最新 3 集(节省磁盘)
  • 淘汰的旧集 → archive_pending/ 暂存 → sync_archive.sh SCP 到本地
  • 本地归档:D:/服务器备份/有声书/<节目名>/D 盘 392G 可用)
  • 服务器脚本:/home/ubuntu/audiobookshelf/scripts/archive_old_audio.sh
  • 本地脚本:D:/服务器备份/有声书/sync_archive.sh

踩坑记录

  1. 数据库误删 — 必须问用户再动手(血的教训)
  2. 章节排序 — 不是靠文件名字母序,是靠 chapters[].start 时间戳
  3. SCP 中文路径 — 含空格的目录需临时路径中转
  4. 容器无需频繁重启 — watcher 自动检测文件变化
  5. B站无纯音频流 — 用 -f worstvideo+worstaudio/worst 最小化下载量

当前有声书内容

节目 集数 来源
渤海小吏·八王之乱 5集 B站
纵横四海 3集 B站
翟东升 3集 YouTube
Elon Musk 99集 本地导入

意义:从碎片化的通勤时间利用,升级为一套完整的"内容获取 → 整理归档 → 移动收听"流水线。个人知识输入的又一条通道。