跳转到主要内容

WRITING

介绍一下这个网站

2026年7月14日5 分钟阅读曾田力
独立开发网站改版基础设施设计
介绍一下这个网站

先自报家门:这是一个人运营的站群。 一台 VPS,一个域名 tianli.cyou,上面跑着主站、知识库、水利工具箱,和一堆只有我自己用的东西。2026 年 7 月,它刚经历了两件事:一次叫「纸上手册」的改版,和一次相当彻底的大扫除。趁着灰尘落定,写一篇导览——现在有什么、改了什么、删了什么,以及"只给我自己看的入口"是怎么设计的。

现在有什么

对外公开的,三块:

入口是什么
tianli.cyou主站:近 30 篇博文(水利 / AI 工程 / 投资三条线)、项目、研究成果、简历
tianli.cyou/kb知识库:复盘、playbook、知识卡片的聚合站
hydro.tianli.cyou水利工具箱:纳污能力、水能出力、生态流量、灌溉定额,在线直接算

不公开的,也是三块:定时任务面板、VPS 运维控制台、一个自用的借贷计算器。它们怎么藏、怎么进,后面单独说。

站点地图:公开层三个入口零门槛,私人层三个工具全部套 Cloudflare Access,底下是同一台 VPS 和同一个 nginx 入口
整个站群的分层地图:公开内容零门槛,私人工具全部躲在 Cloudflare Access 后面,底层是同一台 VPS。

改版:纸上手册

主站这次改版的设计语言叫「纸上手册」:亮色纸面底、正文优先、克制的导航,整个站读起来像一本装订好的技术手册,而不是一个闪着渐变光的 landing page。中英双语,每篇内容都有镜像。

改版里最重要的一刀不是加东西,是砍导航:顶栏原来挂着一个「应用」下拉大菜单,分类罗列十几个子站——那是旧站群时代的架构遗物,里面一半的域名连 DNS 都已经不存在了。现在整个顶栏只剩两样:名字,和语言切换。

另一刀砍在首页统计上:原来写着「6+ 生产子站」,其中一半已经死了。现在写 3,就是真的 3。

大扫除:活的留,死的删

改版顺带做了一次全面验尸。原则只有一条:每一条删除都要有实测证据——域名用 DoH 查权威应答,服务用 curl 打,进程看 systemd journal 和 docker ps,证明死透了才动手;动手前全部落备份,回滚是一条命令。

挖出来的东西比预想的多:

  • 3 个整站:运维面板、文档工具站、思维导图站,代码、路由、访问策略全链路清除
  • 5 个僵尸运行时:一个监控容器裸跑了 12 天,但它的域名早已删除,谁都访问不到;一个服务上次清理时宣布退役却漏了停;一个消息推送器三个多月 journal 零输出
  • 6 个 Cloudflare Access 应用:守着的入口全部已经不存在
  • 若干指向死目标的定时任务和配置实体
大扫除前后对比:对外统计的生产子站从 6 到 3,Access 应用从 12 到 6,僵尸常驻进程从 5 清零
三组前后对照:对外统计终于诚实,访问策略只守活着的门,僵尸进程清零。

僵尸服务最讽刺的地方在于:它们不报错。CPU 不高,日志不红,监控全绿——只是没有任何人需要它们。基础设施的债,不是坏掉的东西,是没人记得为什么还开着的东西。

私人入口:一个书签的设计

站群里有不少东西只给我自己看:运维控制台、定时任务面板、几个自用工具。它们的设计遵循三条规矩:

  1. 公私分层:公开内容零门槛;私人工具一律套 Cloudflare Access,邮箱验证码进,Zero Trust。
  2. 永不暴露 IP:port:所有服务走子域名 + HTTPS + CF 代理,源站端口对公网不可见。
  3. 单一书签:私人入口只需要记一个——控制台。进去之后,顶部一排「站点直达」链接到其余所有站点。
私人入口的单书签模型:一个书签进控制台,邮箱验证码过 Access,进去之后站点直达其余全部
一个书签、一道验证、一排直达——私人入口的全部认知负担。

这个设计的好处是对称的:对外,攻击面收敛到 Cloudflare 边缘一层;对内,认知负担收敛到一个书签。改版前我自己都记不全有哪些私人入口——这本身就是该删东西的信号。

(还有少数更私的链路,比如订阅类,走独立路径,这里不展开。)

一个人怎么维护一个站群

最后说方法。一个人管一群站,靠的不是勤快,是让漂移在结构上不可能:

  • 菜单即数据库:所有子域、分组、导航关系定义在一组 YAML 实体里,导航栏、服务列表、nginx 配置全部从它生成。改一处,处处同步;15 类漂移审计挂在 pre-commit 上,配置对不上连 commit 都过不去。
  • 部署即校验:部署脚本不只是同步文件——构建产物指纹和线上比对、CDN 缓存主动清除、上线前预检 404。「部署成功」是校验出来的,不是感觉出来的。
  • 删除即备份:所有清理先落备份再动手,删错了一条命令回来。敢删,才删得动。

这个站会继续长,但方向定了:内容多长,基建少长。欢迎逛。