# 快速博客FastBlog **Repository Path**: codekpy/fast-blog ## Basic Information - **Project Name**: 快速博客FastBlog - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-19 - **Last Updated**: 2026-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastBlog > 基于 Node.js + Vue 3 的动态博客系统,支持静态站点生成。 FastBlog 是一款采用 **静态站点生成器** 模式的动态博客系统。后端负责内容管理与模板渲染,将页面预编译为静态 HTML 资源;访客只访问静态文件,兼顾性能与 SEO。 --- ## 特性 - **静态站点生成** — 文章/页面发布后自动生成静态 HTML,访问速度快,SEO 友好 - **Markdown 编辑** — 使用 Toast UI Editor,支持实时预览、分类/标签选择、封面图 - **管理后台 SPA** — 基于 Vue 3 + Element Plus 构建的现代化单页管理界面 - **评论系统** — 静态页面嵌入 JS 动态加载评论,支持回复与后台审核 - **媒体管理** — 支持图片上传、拖拽上传、缩略图预览、链接复制 - **模板系统** — 基于 Nunjucks 的主题模板,支持自定义主题 - **RSS / Sitemap** — 自动生成 RSS Feed 和站点地图 --- ## 技术栈 | 层级 | 技术 | 用途 | |---|---|---| | **后端框架** | Express + TypeScript | API 服务 | | **数据库** | MySQL | 数据存储 | | **数据库 ORM** | Knex | SQL 查询构建器 | | **模板引擎** | Nunjucks | 静态页面渲染 | | **前端框架** | Vue 3 + TypeScript | 管理后台 UI | | **UI 组件库** | Element Plus | 后台管理界面组件 | | **状态管理** | Pinia | 前端状态管理 | | **路由** | Vue Router 4 | 前端路由 | | **富文本编辑器** | Toast UI Editor | 文章编辑 | | **构建工具** | Vite | 前端构建 | | **HTTP 客户端** | Axios | 前后端通信 | | **认证** | JWT | 身份验证 | | **文件上传** | Multer | 媒体文件处理 | --- ## 项目结构 ``` FastBlog/ ├── admin/ # 管理后台前端(Vue 3 + Vite) │ ├── src/ │ │ ├── api/ # API 请求封装 │ │ ├── components/ # 公共组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia 状态管理 │ │ └── views/ # 页面视图(登录、仪表盘、文章、评论等) │ ├── vite.config.ts │ └── package.json ├── server/ # 后端 API 服务(Express + TypeScript) │ ├── src/ │ │ ├── database/ # 数据库连接与迁移 │ │ ├── middleware/ # 中间件(JWT 验证等) │ │ ├── models/ # 数据模型 │ │ ├── routes/ # API 路由 │ │ │ └── admin/ # 后台管理路由 │ │ ├── services/ # 业务逻辑层 │ │ └── templates/ # Nunjucks 模板文件 │ └── package.json ├── public/ # 生成的静态站点(对外服务目录) ├── .trae/ # AI 辅助开发文档 └── package.json # 根级快捷脚本 ``` --- ## 快速开始 ### 环境要求 - Node.js >= 18 - MySQL >= 8.0 ### 安装 ```bash # 克隆项目 git clone https://gitee.com/codekpy/fast-blog.git cd fast-blog # 安装根级依赖(无实际依赖,仅脚本管理) npm install # 安装后端依赖 cd server npm install cd .. # 安装前端依赖 cd admin npm install cd .. ``` ### 配置 在 `server/` 目录下创建 `.env` 文件: ```env DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=your_password DB_NAME=fastblog JWT_SECRET=your_jwt_secret PORT=3000 ``` ### 启动开发服务器 ```bash # 启动后端开发服务器(热更新) npm run dev # 启动前端开发服务器(Vite HMR) npm run dev:admin # 同时启动前后端 npm run dev:full ``` 首次启动后,访问 `http://localhost:3000/setup` 进入安装向导,完成数据库初始化和管理员账号创建。 ### 构建与生产部署 ```bash # 构建后端 TypeScript npm run build # 构建前端生产包 npm run build:admin # 构建前后端 npm run build:all # 启动生产服务 npm run start ``` --- ## 可用脚本 | 命令 | 说明 | |---|---| | `npm run dev` | 启动后端开发服务器(热更新) | | `npm run dev:admin` | 启动前端开发服务器(Vite HMR) | | `npm run dev:full` | 构建前端 + 启动后端 | | `npm run build` | 编译后端 TypeScript | | `npm run build:admin` | 构建前端生产包 | | `npm run build:all` | 构建前端 + 后端 | | `npm run start` | 启动后端生产服务 | --- ## 数据库表 - **articles** — 文章(标题、内容、分类、标签、状态、封面图) - **categories** — 分类 - **tags** — 标签 - **article_tags** — 文章-标签关联 - **pages** — 独立页面 - **comments** — 评论(支持二级回复、审核状态) - **site_config** — 站点配置(键值对存储) - **media** — 媒体文件 --- ## 静态站点生成 内容变更(发布/修改/删除文章、页面、配置等)会自动触发静态站点生成,输出到 `public/` 目录,包含: - 首页(文章列表,分页) - 分类页、标签页 - 文章详情页 - 独立页面 - RSS / Sitemap --- ## 许可证 本项目基于 [MIT 许可证](LICENSE) 开源。