返回项目列表
个人内容与 AI 学习站 封面

Case Study / 02

个人内容与 AI 学习站

个人数字空间,统一管理博客、项目案例、AI 学习、游戏档案、留言和内容后台,并完成部署、备份与安全加固。

Background

项目背景

这个网站把原来分散在本地笔记、项目目录和简历里的内容统一管理。 公开页面包括文章、项目案例、AI 学习、游戏档案、Now 和留言,后台供个人维护。 目标不是堆功能,而是让内容能长期维护:文章能编辑、草稿能保存、项目能补细节、游戏库能自动同步,同时控制部署和运维复杂度。

Responsibility

我的职责

独立完成产品结构、数据库、前后端、部署和日常维护。 - 设计文章、项目、AI、游戏和 Now 的数据结构 - 开发 Nuxt 公开页面和 Vue 内容后台 - 开发 Spring Boot API、认证和图片上传 - 配置 PostgreSQL、Nginx、systemd 和定时任务 - 处理备份、日志轮转、资源巡检和 HTTPS

Workflow

业务流程

  1. 01

    后台创建或编辑内容

  2. 02

    后端校验字段、权限和固定链接

  3. 03

    Markdown 内容保存为文章

  4. 04

    公开接口只返回已发布数据

  5. 05

    Nuxt 在服务端渲染公开页面

  6. 06

    Nginx 统一代理 API 和前端

  7. 07

    定时任务维护备份、统计和游戏同步

Architecture

技术架构

前端采用 Nuxt 4 和 Vue 3,公开页面使用服务端渲染。后台是同一套 Nuxt 项目,通过受保护的 /admin 路由提供内容管理。 后端使用 Spring Boot 和 PostgreSQL。认证采用 Argon2id、会话 Cookie、CSRF、登录限流和 Bearer Token;文章正文使用 Markdown,图片上传后统一验证和压缩。 Nginx 负责 HTTPS、反向代理、安全响应头和静态资源缓存。服务由 systemd 管理,数据库和发布目录保留备份。

Engineering

工程亮点

  • 文章支持 Markdown、图片上传、草稿、历史版本和复制
  • 后台支持项目、游戏档案、AI 学习、热点、账号和 Now
  • 公开文章按技术、游戏和 AI 分类,URL 保持稳定
  • 后台认证使用 Argon2id、HttpOnly Cookie、CSRF 和限流
  • Steam 使用 Web API 同步游戏库和最近两周游玩状态
  • 留言使用 CSRF、字段校验和 IP 频率限制
  • 数据库、前端发布和系统服务有备份与恢复策略
  • 日志轮转、资源巡检和健康检查覆盖日常运维

Retrospective

项目复盘

个人项目最大的风险不是某个功能做不出来,而是内容越堆越难维护。 这个站先保证文章、项目和游戏档案的数据结构清楚,再逐步增加自动化。后面会把更多重复维护交给定时任务,公开页面保持简单,后台提供更明确的状态和错误提示。