NBlog: 开源博客系统

2025年09月16日 07:32:37
51044
博客 框架 UI

项目结构

📌 NBlog Naccl/NBlog

一个前后端分离的开源博客系统,基于 Spring Boot + Vue 技术栈开发,界面清新简洁,拥有多个丰富的博客组件,自带管理后台。

项目大小
涉及语言 Java 47.38% Vue 37.92% JavaScript 7.60% CSS 4.63% SCSS 1.09% HTML 1.02% Shell 0.38%
许可协议 MIT License

NBlog logo

简介

Spring Boot + Vue「前后端分离,人不分离」博客系统

自用博客,长期维护,欢迎勘误

预览地址:

前台:https://naccl.top

后台:https://admin.naccl.top

后端

  1. 核心框架:Spring Boot
  2. 安全框架:Spring Security
  3. Token:jjwt
  4. ORM 框架:MyBatis
  5. 分页插件:PageHelper
  6. NoSQL 缓存:Redis
  7. Markdown 转 HTML:commonmark-java
  8. 离线 IP 地址库:ip2region
  9. 定时任务:quartz
  10. UserAgent 解析:yauaa

邮件模板参考自 Typecho-CommentToMail-Template

前端

核心框架:Vue2.x、Vue Router、Vuex

Vue 项目基于 @vue/cli4.x 构建

JS 依赖及参考的 css:axiosmomentnprogressv-viewerprismjsAPlayerMetingJSlodashmavonEditorechartstocbotiCSS

@willWang8023 维护的 Vue3 版本请查看 blog-view-vue3

后台 UI

后台基于 vue-admin-template 二次修改后的 my-vue-admin-template 模板进行开发(于2021年11月1日重构

UI 框架为 Element UI

前台 UI

Semantic UI:主要使用,页面布局样式,个人感觉挺好看的 UI 框架,比较适合前台界面的开发,语义化的 css,前一版博客系统使用过,可惜该框架 Vue 版的开发完成度不高,见 Semantic UI Vue

Element UI:部分使用,一些小组件,弥补了 Semantic UI 的不足,便于快速实现效果

文章排版:基于 typo.css 修改

Telegram Bot 快捷操作

桌面 Phone Phone
桌面客户端效果图 **客户端效果图1 **客户端效果图2

若要启用该功能,参考以下步骤:

  1. 向 @BotFather 申请一个 Bot,得到该 Bot 的token,格式如1234567890:qwertyuiopasdfghjklzxcvbnm
  2. 与该 Bot 私聊,随便发个消息,然后打开此链接https://api.telegram.org/bot/getUpdates(替换链接中的 token),在result -> message -> chat -> id得到chatId
  3. 将获取的tokenchatId填入application-dev.properties,并启用comment.notify.channel=tg
  4. 由于目前仅提供 webhook 的方式获取消息更新,所以application-dev.properties中的blog.api需要填写后端 API 的地址,并且必须是https(Telegram 的要求),也就是说如果你没有公网 IP 或内网穿透或反向代理,那么在本地环境是无法测试的,建议直接扔服务器上
  5. 国内通常情况下无法访问 TG 的 API,因此提供了两种方式
    1. 正向代理:配置http.proxy.server,通过你的代理发送请求
    2. 反向代理:可以直接使用我跑在 Cloudflare Workers 上的反代,默认配置即可。示例代码已放在blog-api/cfworker-tg-api-open.js,可自行搭建(22.05.12 更新,近两天绝大多数地区 *.workers.dev 域名已被墙,因此若仍想使用此反代方式访问 cf worker,需要将 Worker 绑定路由至自己的域名,详见相关讨论**)

开发环境

  1. 创建 MySQL 数据库nblog,并执行/blog-api/nblog.sql初始化表数据
  2. 修改配置信息/blog-api/src/main/resources/application-dev.properties
  3. 安装 Redis 并启动
  4. 启动后端服务
  5. 分别在blog-cmsblog-view目录下执行npm install安装依赖
  6. 分别在blog-cmsblog-view目录下执行npm run serve启动前后台页面

注意事项

一些常见问题:

  • MySQL 确保数据库字符集为utf8mb4(”站点设置“及”文章详情“等许多表字段需要utf8mb4格式字符集来支持 emoji 表情,否则在导入 sql 文件时,即使成功导入,也会有部分字段内容不完整,导致前端页面渲染数据时报错)
  • 确保 Maven 和 NPM 能够成功导入现版本依赖,请勿升级或降低依赖版本
  • 数据库中默认用户名密码为Admin123456,因为是个人博客,没打算做修改密码的页面,可在top.naccl.util.HashUtils下的main方法手动生成密码存入数据库
  • 注意修改application-dev.properties的配置信息
    • 注意修改token.secretKey,否则无法保证 token 安全性
    • spring.mail.hostspring.mail.port的默认配置为阿里云邮箱,其它邮箱服务商参考关键字spring mail 服务器(邮箱配置用于接收/发送评论提醒)
  • 如需部署,注意将/blog-view/src/plugins/axios.js/blog-cms/src/util/request.js中的baseUrl修改为你的后端 API 地址
  • 大部分个性化配置可以在后台“站点设置”中修改,小部分由于考虑到首屏加载速度(如首页大图)需要修改前端源码

隐*功能

  • 在前台访问/login路径登录后,可以以博主身份(带有博主标识)回复评论,且不需要填写昵称和邮箱即可提交
  • 在 Markdown 中加入 (注意以正文形式添加,而不是代码片段)可以在文章中添加 APlayer 音乐播放器,netease为网易云音乐,其它配置及具体用法参考 MetingJS
  • 提供了两种隐*文字效果:在 Markdown 中使用@@包住文字,文字会被渲染成“黑幕”效果,鼠标悬浮在上面时才会显示;使用%%包住文字,文字会被“蓝色覆盖层”遮盖,只有鼠标选中状态才会反色显示。例如:@@隐*文字@@%%隐*文字%%

LICENSE

MIT

Thanks

感谢 JetBrains 提供的 Open Source License

感谢上面提到的每个开源项目

免责声明 © 2025 - 虚宝阁

本站部分源码来源于网络,版权归属原开发者,用户仅获得使用权。依据《计算机软件保护条例》第十六条,禁止:

  • 逆向工程破解技术保护措施
  • 未经许可的分发行为
  • 去除源码中的原始版权标识

※ 本站源码仅用于学习和研究,禁止用于商业用途。如有侵权, 请及时联系我们进行处理。

侵权举报请提供: 侵权页面URL | 权属证明模板

响应时效:收到完整材料后48小时内处理

相关推荐

OpenIsle- 轻量级的Java开源社区系统

这是一个基于 Spring Boot 和 Vue3 构建的开源自由社区系统,定位为轻量级的 Discourse。它完全开源、可二次开发,支持白名单邀请、自定义标签、实时通知等功能。

393 2025-09-13

xianyu-auto-reply: 闲鱼店铺自动回复系统

闲鱼自动回复管理系统是一个基于 Python + FastAPI 开发的自动化客服系统,专为闲鱼平台设计。系统通过 WebSocket 连接闲鱼服务器,实时接收和处理消息,提供智能化的自动回复服务。

2314 2025-09-28

refine: 企业级React后台框架

这是一个专为构建 CRUD(增删改查)应用设计的 Web 框架,只需一行命令即可生成项目骨架,内置登录、列表、详情、编辑页面等功能。业务逻辑与 UI、路由完全解耦,可灵活集成 Ant Design、Material-UI 等设计系统,适用于快速开发管理后台、仪表盘、内部工具和 B2B 应用。

32865 2025-09-13

Claudable:基于 Next.js 框架的网站生成器

把你用自然语言描述的应用想法,直接变成可以运行的网站代码。Claudable 背后依赖强大的 AI 编程助手,主要是 Claude Code,也支持 Cursor CLI 来理解你的需求并生成代码。你不需要懂复杂的 API 设置、数据库配置或者部署流程:用简单的语言告诉 Claudable 你想要什么应用。

2525 2025-09-15

drawnix

开源白板工具(SaaS),一体化白板,包含思维导图、流程图、自由画等。All in one open-source whiteboard tool with mind, flowchart, freehand and etc.

11913 2025-08-28

Seelen-UI: 高度可定制的 Windows 桌面美化工具

一款免费开源的 Windows 桌面增强工具,专注于高度自定义和效率提升。它采用 Rust 语言开发,结合 Tauri 框架与 Web 技术,支持窗口平铺管理、应用启动器、Dock、任务栏、动态壁纸、插件扩展等功能。

13691 2025-10-04

TensorFlow.js: javascript界的机器学习大神

TensorFlow.js 把机器学习能力带进了 JavaScript。训练模型、运行推理,甚至搞实时 AI Web 或移动端、Node 后端。谷歌用,创业公司用,爱好者用,用过都说好。

18976 2025-10-01

langchainjs: 用语言模型构建模块化AI应用

帮助你用大型语言模型(如 GPT)构建模块化智能应用。 想做 AI 代理?做会读 PDF 的问答机器人?轻松搞定。 简直是生成式 AI 的乐高积木。

15824 2025-10-01

fastapi: Python web api 框架

一个基于 Python 3.6+ 版本的异步 WEB 应用框架,使用 Python 类型注解构建 web API 。主要特点有: 高性能:与 Node JS 和 Go 相当。 编码快:将开发功能的速度提高 2~3 倍。 Bug少:减少大约 40% 的由开发人员导致的错误。 直观:强大的编辑器支持,可智能感知和补全代码。 简单:易于学习和使用,减少文档阅读时间。 简短:尽量减少代码重复。 健壮:获得可用于生产的代码,具有自动交互文档。 基于标准:基于 OpenAPI 和 JSON Schema 。

90539 2025-09-16