跳到主要内容

构建日志

本页记录网站周边系统的重要变化,包括开发环境、维护自动化、发布流程与值得说明的网站功能。自动生成的更新页面回答“哪些笔记最近变了”;本页则说明“新增了什么能力,以及为什么这样做”。

公开条目使用功能性占位符替代私有仓库名和主机名;精确的资产清单保留在私有运维记录中。

每条记录保持简短:

  • Added — 新增的能力与命令;
  • Changed — 行为上的变化;
  • Verified — 通过的检查项;
  • Next — 有意延后的工作。

2026-08-09 — RSSHub 生产影子负载

Added

  • 在独立的 /srv/rsshub Compose 项目中部署官方 RSSHub 镜像,通过不可变摘要(digest)固定版本,启用内存缓存、unless-stopped 策略及容器健康检查。
  • 通过 rss.example.com、Caddy 和 infra-edge 提供 HTTPS 服务;RSSHub 的 1200 端口仅存在于 Docker 内部,未映射到宿主机。
  • 在 VPS 上生成 ACCESS_KEY,仅配置代表性 Bilibili 路由所需的变量;在 Kuma 中新增无密钥的公开健康监控。

Changed

  • infra-edge 网络现包含 Caddy 和 RSSHub,Caddy 通过 rsshub-prod 别名解析服务。
  • 当前 RSSHub 版本在启用 ACCESS_KEY 时会保护 /healthz 端点。因此,容器和 Caddy 使用仅绑定健康检查路径的派生代码(derived code);原始密钥仍保留在受保护的 env 文件中。
  • 部署保持“影子”(shadow)状态:现有的 feed 消费者、持久化数据、调度器及本地 RSSHub 均未改动。

Verified

  • 本地、公共及权威 DNS 查询均指向 VPS;HTTPS 健康检查返回 200 且 TLS 有效,HTTP 返回 308。
  • 未认证的真实路由返回 403。认证后的本地和 VPS 金丝雀(canary)测试均返回相同的 RSS 频道身份、20 条内容且无错误负载。
  • 通过公网和 Tailscale 主机地址均无法访问 1200 端口;UFW、仅限 Tailscale 的 SSH、Caddy、私有 Kuma 及零失败的 systemd 单元状态保持完好。
  • 仅重启 RSSHub 后,状态恢复为 running healthy,Caddy 和 Kuma 容器未受影响。临时下游兼容性金丝雀测试成功抓取代表性条目,未触碰生产数据。

Next

  • 将 SQLite 备份/恢复、调度器迁移、RSSHub 端点切换及本地回退退役合并至受控的 Phase 4 阶段。

2026-08-09 — 共享 VPS 入口与私有监控

Added

  • 部署 Caddy 作为唯一的公网 Docker 入口,仅发布宿主机 TCP 80/443 端口,并建立可复用的外部桥接网络 infra-edge
  • 部署 Uptime Kuma,数据持久化存储,管理界面精确绑定 127.0.0.1:3001,仅通过 Tailscale SSH 的本地转发隧道访问。
  • infra.example.com 增加 HTTPS /healthz 端点,由 Caddy 管理证书及 HTTP 到 HTTPS 的重定向。

Changed

  • 基础设施验收不再将“UFW 激活”视为 Docker 端口安全的充分证据。每次部署需联合检查 Compose 绑定、docker inspect、宿主机 socket、UFW 规则及来自其他机器的探测结果。
  • 新增受控重启生存检查:重启后仅通过 Tailscale 重连,随后复验管理访问、容器状态、持久化数据、TLS、拒绝路径及失败单元。

Verified

  • 暴露面审计确认公网地址仅开放 Caddy 的 TCP 80/443;Uptime Kuma 的唯一宿主机绑定为 127.0.0.1:3001,无其他 Docker 宿主机端口发布。
  • 从 WSL2 发起的公网 SSH 和 TCP 3001 连接均超时。在正常证书校验下,HTTPS 健康端点返回 200 和 ok,HTTP 返回 308。
  • 一次受控重启后,Tailscale、Docker、Caddy 及健康状态的 Kuma 自动恢复,Kuma 初始化状态持久化,systemctl --failed 报告零单元。

Next

  • 应用迁移、镜像固定、备份实现及恢复演练保持为独立的后续阶段,不随共享入口部署扩大范围。

2026-08-04 — WSL 开发环境刷新

Added

  • 建立安全的配置快照工作流,包含校验和、Conda 导出、包列表及恢复辅助工具。明确排除项目文件、私有 SSH 密钥及 Shell 秘密信息。

  • 新增 maintain 命令用于日常 Ubuntu 维护:

    maintain status # 磁盘、缓存及待更新包
    maintain update # 安全的就地 Ubuntu 升级
    maintain clean # 仅清理可重现的包缓存
    maintain all # 更新、清理并报告
  • 通过 systemd 自动安装 Ubuntu 安全更新,限制为官方安全源,并配置为永不自动重启 WSL。

  • 安装日常开发所需的轻量命令行工具:fdjqshellcheckpipxncdudirenvhyperfine

  • 提供可选的 Windows 侧 VHDX 压缩辅助工具,用于在大规模清理 Linux 缓存后回收宿主机磁盘空间。

Changed

  • Node.js 从 20 升级至 24.18.1,网站固定版本同步更新。
  • Conda 不再在每个终端自动激活 base 环境。改为首次使用时加载,因此 conda activate <environment> 依然可用,而普通 Shell 默认使用 Ubuntu 的 Python。
  • Shell 启动时移除重复的 PATH 条目,使用更安全的 Git 和系统别名,并集成 zoxidedirenv
  • 包缓存减少约 18 GB。这在 WSL 内部释放了空间;缩小 Windows VHDX 文件仍是单独的显式操作。

Verified

  • Docusaurus 的英文、简体中文和法文生产构建全部完成。
  • Vite 和 Next.js 项目通过了相应的构建和测试检查;已知的存量 lint 债务保持不变。
  • Ubuntu 完成所有待处理包更新,无损坏或半配置状态的包。
  • 新 Shell 测试确认 Conda 懒加载、PATH 去重及维护命令正常工作。
  • 最终配置快照通过所有 SHA-256 校验,且不含私钥或秘密文件。

Next

  • 待活跃仓库的工作提交或妥善保存后,再将日常开发从 root 迁移至普通 WSL 用户。
  • 项目迁移与环境维护保持分离,以便文件所有权和 VS Code 重连易于验证和回滚。

条目模板

## YYYY-MM-DD — 简短结果

### Added
- 新能力及其主要命令或入口点。

### Changed
- 重要的行为变化及其原因。

### Verified
- 构建、测试、健康检查或备份结果。

### Next
- 有意延后的工作(如有)。
探索关联打开关联网络