[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-personal-content-ai-site":3},{"id":4,"slug":5,"name":6,"summary":7,"stack":8,"background":13,"responsibility":14,"workflow":15,"architecture":23,"highlights":24,"retrospective":33,"repositoryUrl":34,"liveUrl":35,"featured":36},2,"personal-content-ai-site","个人内容与 AI 学习站","个人数字空间，统一管理博客、项目案例、AI 学习、游戏档案、留言和内容后台，并完成部署、备份与安全加固。",[9,10,11,12],"Nuxt","Vue","Spring Boot","PostgreSQL","这个网站把原来分散在本地笔记、项目目录和简历里的内容统一管理。\n\n公开页面包括文章、项目案例、AI 学习、游戏档案、Now 和留言，后台供个人维护。\n\n目标不是堆功能，而是让内容能长期维护：文章能编辑、草稿能保存、项目能补细节、游戏库能自动同步，同时控制部署和运维复杂度。","独立完成产品结构、数据库、前后端、部署和日常维护。\n\n- 设计文章、项目、AI、游戏和 Now 的数据结构\n- 开发 Nuxt 公开页面和 Vue 内容后台\n- 开发 Spring Boot API、认证和图片上传\n- 配置 PostgreSQL、Nginx、systemd 和定时任务\n- 处理备份、日志轮转、资源巡检和 HTTPS",[16,17,18,19,20,21,22],"后台创建或编辑内容","后端校验字段、权限和固定链接","Markdown 内容保存为文章","公开接口只返回已发布数据","Nuxt 在服务端渲染公开页面","Nginx 统一代理 API 和前端","定时任务维护备份、统计和游戏同步","前端采用 Nuxt 4 和 Vue 3，公开页面使用服务端渲染。后台是同一套 Nuxt 项目，通过受保护的 \u002Fadmin 路由提供内容管理。\n\n后端使用 Spring Boot 和 PostgreSQL。认证采用 Argon2id、会话 Cookie、CSRF、登录限流和 Bearer Token；文章正文使用 Markdown，图片上传后统一验证和压缩。\n\nNginx 负责 HTTPS、反向代理、安全响应头和静态资源缓存。服务由 systemd 管理，数据库和发布目录保留备份。",[25,26,27,28,29,30,31,32],"文章支持 Markdown、图片上传、草稿、历史版本和复制","后台支持项目、游戏档案、AI 学习、热点、账号和 Now","公开文章按技术、游戏和 AI 分类，URL 保持稳定","后台认证使用 Argon2id、HttpOnly Cookie、CSRF 和限流","Steam 使用 Web API 同步游戏库和最近两周游玩状态","留言使用 CSRF、字段校验和 IP 频率限制","数据库、前端发布和系统服务有备份与恢复策略","日志轮转、资源巡检和健康检查覆盖日常运维","个人项目最大的风险不是某个功能做不出来，而是内容越堆越难维护。\n\n这个站先保证文章、项目和游戏档案的数据结构清楚，再逐步增加自动化。后面会把更多重复维护交给定时任务，公开页面保持简单，后台提供更明确的状态和错误提示。","https:\u002F\u002Fgithub.com\u002FS1rryNut\u002Fco11ap5e",null,true]