一个现代化、全栈式的个人博客系统。基于 Nuxt 3 构建,兼具静态站的物理透明性与动态博客的在线管理体验。
告别“本地编辑 -> Git 提交 -> 推送 -> 等待构建”的繁琐流程。
本项目的初衷是解决静态博客发布不便的问题,让你随时随地通过浏览器记录灵感:
- 🚀 强大的在线管理:内置高性能后台管理系统,支持在线创建、编辑文章,实时预览,即时保存。
- 💾 物理 Markdown 存储:文章以纯
.md文件形式存储在服务器磁盘(或 S3)。数据透明、无锁死、易于迁移。 - ⚡ 零构建发布:修改文章后实时生效,无需触发耗时的静态构建流程。
- 📦 全栈集成:集成评论 (Giscus)、统计 (Umami)、足迹 (ECharts)、多语言 (i18n) 等常用模块。
本项目采用 Nuxt 4 (Nuxt 3 最新 release) 架构,前后端紧密集成。
| 类别 | 技术/库 | 说明 |
|---|---|---|
| 基础框架 | Nuxt 4 / 3 | 提供 SSR、全栈 API 引擎 (Nitro) |
| UI 框架 | Nuxt UI | 基于 TailwindCSS 的全套 UI 组件 |
| 数据库 | SQLite | 零配置、极速,支撑系统设置与账户管理 |
| 文件管理 | Local / S3 | 支持服务器本地存储或 AWS S3 对象存储 |
| 身份认证 | Nuxt Auth | 基于 JWT 的安全登录方案 |
| 足迹地图 | ECharts | 交互式旅行轨迹展示 |
| 编辑器 | Vditor | 工业级 Markdown 编辑体验 |
- 响应式设计:完美适配 PC、平板及手机访问。
- 主题切换:支持深色模式 (Dark Mode) 与系统同步。
- 多语言支:内置中英文全站翻译,通过
i18n驱动。 - 性能优化:SSR 渲染保证极速秒开与最佳的 SEO 表现。
- 文章检索:支持分页、标签分类、快速检索。
- 评论系统:集成 Giscus 评论系统,基于 GitHub Discussions。
- 仪表盘:系统数据一览,包括运行时间、文章统计。
- 文章管理:
- 所见即所得:Markdown 编辑、侧边实时预览。
- 元数据控制:快捷设置封面图、文章路径、置顶状态等。
- 发布控制:支持“草稿/发布”状态一键切换。
- S3 强力集成:
- 支持配置 S3 兼容的对象存储(OSS/MinIO/S3)。
- 新增:支持自定义存储路径配置,方便管理不同项目的资源。
- 旅行足迹:可视化管理旅行城市,支持上传旅行照片,并与博文关联。
- 系统配置:
- 在线配置 Giscus 评论、Umami 统计,即配即用,无需修改代码。
🎯 隐藏的后台访问方式: 为了更优雅的用户体验,我们移除了导航栏中显眼的"管理"菜单,转而提供了两种隐藏的访问方式:
- 键盘暗号: 在页面任意位置(非输入框状态)依次输入
admin(1秒内),自动跳转到后台管理界面 - Logo 三连击: 在 500ms 内连续点击导航栏 logo "布吉岛" 三次或以上,自动跳转到后台管理界面
- Node.js >= 20.0
- Yarn / NPM / PNPM
- 克隆仓库:
git clone https://github.com/chao-eng/nuxt-blog-site.git cd nuxt-blog-site - 安装依赖:
yarn install
- 配置环境:
复制
.env.example并重命名为.env。 - 启动开发服务:
yarn dev
项目已提供高度集成的镜像,支持 amd64 和 arm64 架构。
docker run -d -p 3000:3000 \
-v $(pwd)/data:/app/data \
-v $(pwd)/data/blog:/app/blog \
-v $(pwd)/public/uploads:/app/static \
--name nuxt-blog \
bujidec/nuxt-blog-site:latest挂载目录说明:
/app/data: 存放 SQLite 数据库文件。/app/blog: 存放 Markdown 文章源文件。/app/static: 存放本地上传的图片资源(如不使用 S3)。
修改根目录下的 app_config.yml 文件,即可快速自定义:
- 网站标题、作者简介、社交链接(Github, 知乎, Bilibili 等)。
- SEO 常规元数据。
进入后台「系统设置 -> S3 配置」,填写你的 AccessKey/SecretKey。支持指定存储路径(如 my-blog/attachments/),实现灵活隔离。
本项目采用 MIT License。
感谢所有为本项目提供灵感的开源社区工具!

