跳到主要内容
← 返回项目列表

AIInfraGuide — 个人 AI 知识中心站点

把 AI Infra / Agent / 项目复盘 / 论文笔记 / 思考 整合到一个 Astro 静态站点;19+ 模块、500+ 页,部署在阿里云 ECS

角色

架构 + 内容 + 部署一肩挑

时间

2025-Q4 ~ 持续中

仓库

GitHub →

Demo

访问 →

技术栈

Astro Tailwind CSS Pagefind TypeScript nginx acme.sh

这是站点本身的项目档案——既是种子内容,也演示项目模板该怎么填。

1. 背景痛点

做了大量 AI Infra / Agent 教程、读了大量论文、参加过多次比赛、有不少零散思考——但都散落在本地 markdown / 笔记本 / 旧博客里:

  • 检索难:要找半年前那段思考,记得用过哪几个关键词都未必能找到
  • 复用难:教程、项目、论文、博客互相没引用——同一份知识在多份文档里被重复表述
  • 遗忘快:项目做完就忘——没系统化沉淀,下次面对类似问题又从零想

需要一个结构化、可搜索、互相引用、长期更新的个人知识中心。

2. 技术决策(含放弃了什么)

  • 为什么 Astro 而不是 Next.js / Hugo:Astro 0 JS 默认 + Markdown content collections 原生支持 + 部署极简(纯静态);Next 太重,Hugo 模板生态比 Astro 弱
  • 为什么自部署而不是 GitHub Pages / Vercel:自有域名 + 完全可控(已经有 nginx 在做别的站);放弃了 Pages 的 zero-ops 优势
  • 放弃了:评论系统 / 多人协作 / RSS-pull 自动转录——保持单人、写作驱动

3. 技术栈与架构

[Markdown 内容]


docs/{guides,posts,interview,projects,contests,research}/*.md
    │  (Astro Content Collections + Zod schema)

src/pages/* (Astro 路由)


build-time: DEPLOY_TARGET=aliyun npx astro build


dist/ (~570 静态页)


rsync 到阿里云 ECS /var/www/aiinfra/


nginx + Let's Encrypt → https://aiinfra.vidrealm.tech

核心组件:

  • content collections + Zod schema:每类内容(教程 / 博客 / 项目 / 比赛 / 笔记 / 面试)独立 schema,编译期校验
  • Pagefind:静态搜索引擎,无后端、构建时索引
  • Tailwind + 组件化:CategoryCard / GuideContent / Layout 组件复用
  • acme.sh + Let’s Encrypt:HTTPS 自动续期

4. 关键代码 / Demo 链接

5. 复盘——教训与下次改进

做对的

  • 早期就用 content collections + schema——后期重构时编译期校验救命
  • 学习路线和模块教程分离——首页 / 导航不被 100+ 篇文章淹没
  • 部署链路简单(纯静态 + rsync)——零运维,几乎不出问题

走错的

  • 一开始把 base path 写死成 /AIInfraGuide(GitHub Pages 风格)——切换到自有域名时改了一圈代码。经验:从第一天就考虑多目标部署
  • frontmatter 里 description 字段嵌套双引号没处理——Module 16 第 1 章构建挂了一次
  • 模块编号顺序在重构时被 linter 改乱过几次——经验:order 字段在 schema 里给个默认值,不要硬编码

🔁 下次改进

  • 加自动化 lint:检查所有 markdown frontmatter / 死链 / 图片缺失
  • 加跨内容类型的反向链接生成(项目 → 教程 → 论文笔记自动反向显示)
  • 更聪明的标签系统(现在 tags 字段没被前端利用)

6. 衍生 / 反向链接