Skip to content

-
-分钟

project-admin

project-admin 是 LeeLaa Blog 的本地内容管理工具,用于维护文章、电台、回忆、友链、站点设置和构建任务。它面向仓库所有者在自己的电脑上使用,不是可部署到公网的后台系统。

运行边界

  • 服务固定监听 127.0.0.1:8888,不监听局域网或公网地址。
  • 默认且主要的运行方式是开发模式,包含 Vite HMR 和 Express API。
  • 单用户本地运行是既定信任模型,因此不提供登录、会话、角色或权限管理。
  • 不要通过反向代理、端口转发或修改监听地址将其暴露给其他设备或公网。

安装与启动

在仓库根目录安装依赖并启动:

bash
pnpm install
pnpm --dir project-admin dev

也可以使用根目录快捷命令:

bash
pnpm admin

启动后访问 http://127.0.0.1:8888

生产模式只用于验证构建产物和静态 fallback,不是项目的部署目标:

bash
pnpm --dir project-admin build
pnpm --dir project-admin start

功能

  • 管理 pages/posts 下的 Markdown 文章和元数据。
  • 预览文章并维护电台描述、回忆图片和友链数据。
  • 编辑本地设置,查看系统状态,执行博客更新与上传任务。
  • 在开发模式中同时提供管理界面、API 和前端热更新。

数据与安全约束

  • 文章 ID 只允许解析到 pages/posts/**/*.md,同时检查词法路径和真实路径,防止越过文章目录或通过符号链接逃逸。
  • Markdown、RSS 和可编辑富文本在返回给界面前经过 HTML 允许列表清洗。
  • 友链页面和图片抓取只接受解析到公网地址的 HTTP/HTTPS URL,实际连接固定到已验证地址并检查每次重定向;截图浏览器使用默认沙箱,页面资源由受控下载器限制请求数量和响应体大小。
  • 回忆上传限制为单文件、20 MB、图片 MIME;Sharp 进一步验证真实格式并限制为 6000 万像素,失败后清理临时文件。

这些约束用于避免误操作、恶意导入内容和异常资源拖垮本地工具,不改变“本机可信用户”的设计前提。完整说明见 DESIGN.md

测试

后台开发服务启动后,在仓库根目录运行:

bash
pnpm test:admin:e2e
pnpm test:admin:unit

测试用例统一放在仓库根目录的 test/admin/,实现代码目录不再夹带测试文件。E2E 测试说明见 test/README.md。生成的报告写入已被 Git 忽略的 test-report/

上次更新:

正在连接 GitHub评论区马上就来...