{"id":19993217,"url":"https://github.com/zhangyd-c/OneBlog","last_synced_at":"2025-05-04T12:31:03.419Z","repository":{"id":45822630,"uuid":"128853331","full_name":"zhangyd-c/OneBlog","owner":"zhangyd-c","description":":alien: OneBlog，一个简洁美观、功能强大并且自适应的Java博客 ","archived":false,"fork":false,"pushed_at":"2025-03-16T11:55:44.000Z","size":13342,"stargazers_count":1061,"open_issues_count":8,"forks_count":390,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-04-11T15:56:47.740Z","etag":null,"topics":["blog","blog-hunter","bootstrap","dblog","justauth","oneblog","oss","qiniu","redis","seo","shiro","spider","spring-boot","springboot","wangeditor","websockets"],"latest_commit_sha":null,"homepage":"https://docs.zhyd.me","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhangyd-c.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-04-10T01:11:57.000Z","updated_at":"2025-04-11T06:52:53.000Z","dependencies_parsed_at":"2022-07-17T10:00:36.685Z","dependency_job_id":"7fa08f75-653b-415a-9d5a-fe059b764c7d","html_url":"https://github.com/zhangyd-c/OneBlog","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhangyd-c%2FOneBlog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhangyd-c%2FOneBlog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhangyd-c%2FOneBlog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhangyd-c%2FOneBlog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhangyd-c","download_url":"https://codeload.github.com/zhangyd-c/OneBlog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252334259,"owners_count":21731368,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blog","blog-hunter","bootstrap","dblog","justauth","oneblog","oss","qiniu","redis","seo","shiro","spider","spring-boot","springboot","wangeditor","websockets"],"created_at":"2024-11-13T04:52:31.823Z","updated_at":"2025-05-04T12:30:58.408Z","avatar_url":"https://github.com/zhangyd-c.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"/docs/_media/logo.png\" style=\"width: 300px\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\t\u003cstrong\u003eOneBlog 一个简洁美观、功能强大并且自适应的Java博客。使用springboot开发，前端使用Bootstrap。支持移动端自适应，配有完备的前台和后台管理功能。\u003c/strong\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://img.shields.io/badge/Maven-3.3.1-green.svg\" \u003e\u003c/img\u003e\n\t\u003ca target=\"_blank\" href=\"https://gitee.com/yadong.zhang/DBlog/blob/master/LICENSE\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/badge/license-GPL%20v3-yellow.svg\" \u003e\u003c/img\u003e\n\t\u003c/a\u003e\n\t\u003ca target=\"_blank\" href=\"https://www.oracle.com/technetwork/java/javase/downloads/index.html\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/badge/JDK-1.8+-blue.svg\" \u003e\u003c/img\u003e\n\t\u003c/a\u003e\n\t\u003cimg src=\"https://img.shields.io/badge/MySQL-5.6.4-red.svg\" \u003e\u003c/img\u003e\n\t\u003cimg src=\"https://img.shields.io/badge/Redis-3.0.503-orange.svg\" \u003e\u003c/img\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\t\u003cstrong\u003e开源地址：\u003c/strong\u003e \u003ca target=\"_blank\" href='https://gitee.com/yadong.zhang/DBlog'\u003eGitee\u003c/a\u003e | \u003ca target=\"_blank\" href='https://github.com/zhangyd-c/OneBlog'\u003eGithub\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cstrong\u003eQQ群：\u003c/strong\u003e230017570\n\u003c/p\u003e\n\n----\n\n# 重要声明\n\n**看文档！看文档！看文档！**，初次使用， 请先**看文档！**\n\n1. 本项目配有相关[帮助文档](https://docs.zhyd.me) 。文档中包括**基本的项目说明**、**shiro标签使用**、**七牛云配置**和一些常见的**异常问题解决方案**。使用时碰到问题请**优先**查阅【[帮助文档](https://docs.zhyd.me)】。因为现在好多朋友问的问题大部分都写在【[帮助文档](https://docs.zhyd.me)】中了，希望各位朋友能自己翻阅下相关资料，高效提问，避免重复问题！\n2. **提问题**前请优先阅读【[如何向开源社区提问题](https://github.com/seajs/seajs/issues/545)】\u0026【[提问的智慧](http://www.dianbo.org/9238/stone/tiwendezhihui.htm)】\n3. **提问题**时请优先选择[Gitee Issues](https://gitee.com/yadong.zhang/DBlog/issues)（方便问题追踪和一对一解决），其次[我的博客-留言板](https://docs.zhyd.me/guestbook)，再次QQ群（QQ群消息较多，提问请注意节奏、时机），最次加我QQ好友直接提问（不推荐）\n4. 本项目唯一官网：[https://docs.zhyd.me](https://docs.zhyd.me)  \n5. 本项目开源地址：[Gitee](https://gitee.com/yadong.zhang/DBlog)    | [Github](https://github.com/zhangyd-c/OneBlog)\n6. 本项目修改记录，详情请移步[这里](https://gitee.com/yadong.zhang/DBlog/blob/master/update.md)\n7. 如果你想贡献代码，请先阅读[这篇文章](https://gitee.com/yadong.zhang/DBlog/blob/master/contribution.md)\n\n----\n\n# 写在前面的话\nps: 虽然我知道，大部分人都是来了**直接下载源代码**后就潇洒的离开，并且只有等到下次**突然想到**“我天~~我得去看看OneBlog这烂项目更新新功能了吗”的时候才会重新来到这儿，即使你重新来过，我估计你也只有两个选择：    \n\n发现更新代码了 --\u003e 下载源码后重复上面的步骤    \n发现没更新代码 --\u003e 直接关闭浏览器\n\n虽然我知道现实就是如此的残酷，但我还是要以我萤虫之力对各位到来的同仁发出一声诚挚的嘶吼：\n\n**如果喜欢，请多多分享！！多多Star！！**\n\n----\n\n\n# 功能简介\n\n- **Docker一键部署**：支持 Docker 的方式一键启动服务\n- **广告位管理**：支持五种广告位：首页开屏广告、侧边栏顶部、侧边栏底部、文章详情底部、评论框顶部，站长可以随时随意更换自己的广告链接，赚外快不成问题！\n- **多种编辑器**：支持 wangEditor、Markdown 和 TinyMCE 等多种文章编辑器，可以自行选择\n- **自动申请友情链接**：在线申请友情链接，无需站长手动配置，只需申请方添加完站长的连接后自行申请即可\n- **百度推送**：支持百度推送功能，加速百度搜索引擎收录博文\n- **评论系统**：自研的评论系统，支持显示用户地址、浏览器和 os 信息，后台可审核评论、开启匿名评论、回复和邮件通知评论\n- **权限管理**：后台配备完善的 RBAC 权限管理，前台文章支持密码访问、登录访问等多种权限验证策略\n- **完善的 SEO 方案**：自带robots、sitemap 等 seo 模板，实现自动生成 robots 和 sitemap\n- **实时通讯**：管理员可向在线的用户实时发送消息\n- **系统配置支持快速配置**：可通过后台手动修改诸如域名信息、SEO 优化、赞赏码、七牛云以及更新维护通知等\n- **多种文件存储**：集成七牛云、阿里云OSS，实现文件云存储，同时支持本地文件存储\n- **文章搬运工**：集成[blog-hunter](https://gitee.com/yadong.zhang/blog-hunter) 实现“文章搬运工”功能，支持一键同步imooc、csdn、iteye或者cnblogs上的文章，可抓取列表和单个文章\n- **第三方授权登录**：集成 [JustAuthPlus（JAP）](https://gitee.com/fujieid/jap) 实现第三方授权登录\n- **自定义网站内容**：管理员可自定义“关于本站”、“留言板”、“友情链接”、“免责声明”、“Footer”、“鼠标点击时的气泡文字”、“热门搜索的待选项”等内容\n- **自定义页面**：管理员可添加自定义的页面\n- **流控**：针对异常IP的连续大量访问，系统会自动封禁该IP。\n\n----\n\n# 模块划分\n\n| 模块  | 释义 | 备注 |\n| :------------: | :------------: | :------------: |\n| blog-core | 核心业务类模块，提供基本的数据操作、工具处理等 | 该模块只是作为核心依赖包存在 |\n| blog-codegen | 代码生成器 |\n| blog-admin | 后台管理模块 | 该模块作为单独项目打包部署 |\n| blog-web | 前台模块 | 该模块作为单独项目打包部署 |\n| blog-file | 文件存储功能模块 | 支持local、七牛云和阿里云OSS |\n\n\n# 技术栈\n\n- docker\n- docker-compose\n- Springboot 2.3.5.RELEASE\n- Apache Shiro 1.7.1\n- Logback\n- Redis\n- Lombok\n- Websocket\n- MySQL、Mybatis、Mapper、Pagehelper\n- Freemarker\n- Bootstrap 3.3.0\n- wangEditor\n- Markdown\n- jQuery 1.11.1、jQuery Lazyload 1.9.7、fancybox、iCheck\n- 阿里云OSS\n- 七牛云\n- Nginx\n- kaptcha\n- webMagic\n- ...\n\n\n# 快速开始\n\n## Docker Compose（推荐）\n\nCompose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose，您可以使用 YML 文件来配置应用程序需要的所有服务。然后，使用一个命令，就可以从 YML 文件配置中创建并启动所有服务。\n使用之前需要先安装docker环境，建议版本为17.06.0-ce以上版本\n1. 下载源码，安装maven环境，\n打包项目 `mvn clean package -Dmaven.test.skip=true -Pdev`，放到服务器\n2. 进入 `docs/docker` 目录\n3. 按照注释修改 `.env` 文件\n4. 执行 `docker-compose -p oneblog up -d`\n\n## 源码方式\n\n\u003e `blog-web` 和 `blog-admin` 的运行方式一样\n\n1. 使用IDE导入本项目\n2. 新建数据库`CREATE DATABASE dblog;`\n3. 导入数据库`docs/docker/mysql/dblog.sql`\n4. 初始化数据库`docs/docker/mysql/init_data.sql`\n5. 修改配置文件，mysql、redis、mail配置在`[blog-core]/resources/config/application-center.yml`配置文件中\n6. 运行项目：直接运行 `blog-web/src/main/java/com/zyd/blog/BlogWebApplication.java` 或者 `blog-admin/src/main/java/com/zyd/blog/BlogAdminApplication.java`\n7. 浏览器访问`http://127.0.0.1:{port}`\n\n\u003e 后台默认账号密码：root/123456\n\n# Who is using?\n\n烦请各位使用 OneBlog 的朋友，能留下你的网址 - [点这儿](https://gitee.com/yadong.zhang/DBlog/issues/ILIAQ)\n\n----\n\n# 预览\n\n![web端首页-pc](docs/_media/1601f937.png)\n![web端文章详情页](docs/_media/e922c529.png)\n![web端文章详情页 - 私密文章](docs/_media/ff9a84a3.png)\n![web端文章详情页 - 私密文章](docs/_media/cd37ba37.png)\n![web端首页-mobile](https://images.gitee.com/uploads/images/2019/0129/191428_c76317e8_784199.png \"web端首页-mobile\")\n\n![admin端首页](https://images.gitee.com/uploads/images/2019/0129/191117_221c6064_784199.png \"admin端首页\")\n![admin端文章列表也](https://images.gitee.com/uploads/images/2019/0129/191135_21e4f61c_784199.png \"admin端文章列表也\")\n![admin端发布文章页](https://images.gitee.com/uploads/images/2019/0129/191150_0d28d51a_784199.png \"admin端发布文章页\")\n![admin端系统配置页](https://images.gitee.com/uploads/images/2019/0129/191203_cc6941e4_784199.png \"admin端系统配置页\")\n![admin端文章搬运工](https://images.gitee.com/uploads/images/2019/0129/191214_5e8f3c34_784199.png \"admin端文章搬运工\")\n![admin端文章搬运工](https://images.gitee.com/uploads/images/2019/0129/191237_d015fcda_784199.png \"admin端文章搬运工\")\n\n----\n\n# 交流\n\n|  微信(备注:加群)  |  公众号  |\n| :------------: | :------------: |\n| \u003cimg src=\"https://gitee.com/yadong.zhang/static/raw/master/wx/wx.png\" width=\"170\"/\u003e | \u003cimg src=\"https://gitee.com/yadong.zhang/static/raw/master/wx/wechat_account.jpg\" width=\"200\" /\u003e |\n\n **QQ群** \n\n1. 1群[![](https://images.gitee.com/uploads/images/2019/0129/191256_a40bceba_784199.png)](https://shang.qq.com/wpa/qunwpa?idkey=3571c554a143eff1e15807de033a240196c6b493b25b903d1d37571cfb6040aa)\n2. 2群[![](https://images.gitee.com/uploads/images/2019/0129/191256_a40bceba_784199.png)](https://shang.qq.com/wpa/qunwpa?idkey=38594b12fb0ec66459f0dba0316648a5c4bb71ea613289e5b57b8f44ad83ebc9)\n\n# 赞助\n\n\u003e 为了让OneBlog更好用，作者码代码码的头发都没了！请作者买块生姜擦擦头皮，据说这样有助于生发~~\n\n| 支付宝  | 微信  | 支付宝红包  |\n| :------------: | :------------: | :------------: |\n| \u003cimg src=\"https://gitee.com/yadong.zhang/static/raw/master/qrcode/zfb_code.png\" width=\"200\"/\u003e | \u003cimg src=\"https://gitee.com/yadong.zhang/static/raw/master/qrcode/wx_code.png\" width=\"200\" /\u003e | \u003cimg src=\"https://gitee.com/yadong.zhang/static/raw/master/qrcode/zfb-code.png\" width=\"200\" /\u003e |\n\n\n# 生命不息，折腾不止！ 更多信息，请关注：\n 1. [我的博客](https://docs.zhyd.me)\n 2. [我的微博](http://weibo.com/211230415)\n 3. [我的头条号](http://www.toutiao.com/c/user/3286958681/)\n 4. [我的imooc](http://www.imooc.com/u/1175248/articles)\n \n# 特别感谢\n\n- 广大的开源爱好者\n- 无私的网友\n- [gentelella](https://github.com/puikinsh/gentelella): 一款开源的Bootstrap3后台管理模板\n- [七牛云](https://portal.qiniu.com/signup?code=3l8yx2v0f21ci): 强大的对象存储、CDN等服务提供商\n- [emoji表情列表](https://github.com/caiyongji/emoji-list#nature): emoji表情列表\n- [blog-hunter](https://github.com/zhangyd-c/blog-hunter): 博客猎手，基于webMagic的博客爬取工具，支持慕课、csdn、iteye、cnblogs、掘金和V2EX等各大主流博客平台。\n- [JustAuth](https://gitee.com/yadong.zhang/JustAuth): 史上最全的整合第三方登录的工具,目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软和今日头条等第三方平台的授权登录。 Login, so easy!\n- [JAP](https://gitee.com/fujieid/jap): 一款开源的登录认证中间件，基于模块化设计，并且与业务高度解耦，使用起来非常灵活，开发者可以毫不费力地将 JAP 集成到任何 web 应用程序中，就像集成 JustAuth 一样，简单方便。\n- 待续...\n\n# 开源协议\n\n[![license](https://img.shields.io/badge/license-GPL%20v3-yellow.svg)](https://gitee.com/yadong.zhang/DBlog/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhangyd-c%2FOneBlog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhangyd-c%2FOneBlog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhangyd-c%2FOneBlog/lists"}