Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iszhouhua/blog
基于SpringBoot搭建的开源个人博客系统,模板引擎使用thymeleaf。项目后台部分采用前后端分离模式开发。前台使用 vue 和 element完成。
https://github.com/iszhouhua/blog
blog java spring-boot vue
Last synced: about 24 hours ago
JSON representation
基于SpringBoot搭建的开源个人博客系统,模板引擎使用thymeleaf。项目后台部分采用前后端分离模式开发。前台使用 vue 和 element完成。
- Host: GitHub
- URL: https://github.com/iszhouhua/blog
- Owner: iszhouhua
- License: apache-2.0
- Created: 2018-12-24T15:30:54.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-06-30T06:33:43.000Z (6 months ago)
- Last Synced: 2024-12-15T00:03:44.393Z (8 days ago)
- Topics: blog, java, spring-boot, vue
- Language: Java
- Homepage: https://www.iszhouhua.com
- Size: 24.7 MB
- Stars: 404
- Watchers: 10
- Forks: 102
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
简介
----基于[SpringBoot](https://github.com/spring-projects/spring-boot)
搭建的开源个人博客系统,前台界面基于Hexo主题[hexo-theme-gal](https://github.com/ZEROKISEKI/hexo-theme-gal)
进行修改,管理后台界面基于[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)进行修改。技术栈:SpringBoot、Thymeleaf、MySQL、MyBatis-Plus、Lombok、Gson、caffeine、validation、Bootstrap、jQuery、FontAwesome、Jsoup……
博客运行效果示例:[https://www.iszhouhua.com](https://www.iszhouhua.com)
## Docker
对于不想自己配置代码运行环境(Java和Node)的同学,可以使用此方式一键运行,部署属于自己的博客。
请先参照 [⚙️配置文件](src/main/resources/application.yml) 相关说明,配置好你自己的 `application.yml` 文件,然后使用以下命令启动 docker:
```shell
# 拉取镜像
docker pull iszhouhua/blog:latest
# 运行镜像
docker run -d --name blog -p 8080:8080 -v $(pwd)/logs:/app/logs -v $(pwd)/upload:/app/upload -v $(pwd)/application.yml:/config/application.yml iszhouhua/blog:latest
```如果镜像拉取不下来,可以从阿里云镜像仓库中进行拉取,将`iszhouhua/blog`改为`registry.cn-shenzhen.aliyuncs.com/iszhouhua/blog`即可
注意:在 Windows 终端下需要将配置文件路径 `$(pwd)` 替换为绝对路径。
挂载目录的解释见[docker部署](#docker部署)
## 快速开始
1. 下载本项目,并使用IDE打开
2. 在mysql中新建数据库`blog`
> 现在运行项目会自动运行SQL脚本建表和插入初始数据
3. 修改`application-dev.yml`中的数据库配置信息
4. 运行`BlogApplication.java`,启动项目
5. 浏览器访问`http://127.0.0.1:8080/`
> 使用 Idea,Eclipse 等IDE运行需要安装Lombok插件,JDK版本要求1.8+### 管理管理
管理后台采用前后端分离的方式实现,源码位于[vue](vue)文件夹下,如何运行方式见[vue/README.md](vue/README.md)
部署
----### jar部署
配置好`application-prod.yml`中的配置信息,然后打包:
```bash
mvn clean package -Dmaven.test.skip=true
```将打包好的`blog.jar`和`blog.sh`放到同一文件夹下,执行命令:
```bash
# 使脚本具有执行权限
chmod +x ./blog.sh
# 启动项目
./blog.sh start
# 或者直接使用sh命令运行脚本
sh blog.sh start
```### tomcat部署
修改`application.yml`中`spring.profiles.active`为`prod`,并配置好`application-prod.yml`中的配置信息。
直接修改`pom.xml`中的打包方式为war后进行打包,或直接运行命令:
```bash
clean package war:war -Dmaven.test.skip=true
```然后将打包好的`blog.war`丢进tomcat中运行即可!
### docker部署
配置好`application-prod.yml`中的配置信息,然后执行`build-docker.sh`:
```bash
# docker打包
sh build-docker.sh
# 新建挂载目录
mkdir logs upload
# 运行项目
docker run -d --name blog -p 8080:8080 -v $(pwd)/logs:/app/logs -v $(pwd)/upload:/app/upload -v $(pwd)/application.yml:/config/application.yml blog
```- -v $(pwd)/application.yml:/config/application.yml: 挂载配置文件,`$(pwd)/application.yml`为你的配置文件所在目录
- -v $(pwd)/logs:/app/logs: 挂载日志文件,不关心日志可不进行挂载
- -v $(pwd)/upload:/app/upload 上传图片挂载,非本地存储无需挂载> 注:build-docker.sh脚本会自动将vue代码也编译进docker镜像中,无需单独处理vue的内容
------## 交流群
### QQ群
![QQ群二维码](images/qq_group_chat.jpg)
------
## 界面展示
![1557279251039](images/20190508093436.png)
![20190508095012](images/20190508095012.png)
![20190508095714](images/20190508095714.png)
![20190508101138](images/20190508101138.png)
![20190508101254](images/20190508101254.png)
![20190508101400](images/20190508101400.png)
![20190508101440](images/20190508101440.png)
![20190508101544](images/20190508101544.png)
![20190508101622](images/20190508101622.png)
## 2019.5.1
添加规则管理,转载文章时可直接根据规则自动装配内容。
## 2019.5.8
添加云存储支持,包括七牛云、阿里云、腾讯云。
## 2019.11.5
加入记住密码功能
## 2020.3.5
修改数据库脚本,改为运行时自动运行脚本,方便后续修改数据库结构
## 2020.3.18
修改日志记录,修复无法评论的bug
## 2020.5.27
缓存改用caffeine
## 2020.9.4
很久没看,发现网站被脚本搞挂了。这次改了很多东西,把评论、用户模块重做了一遍。
## 2020.9.10
增加当前登录用户参数注入,修复一些上次改动引起的bug
## 2020.11.28
修复文件流未关闭引起的Too many open files问题
## 2021.4.15
使用flyway进行数据库版本管理,抛弃掉之前的初始化方法
## 2021.6.13
加入获取邮箱验证码功能,支持Gitee和GitHub登录
## 2022.6.26
- 升级ip2region
- 修改日志记录
- 修复首次运行出错问题
- docker部署方式修改## 2024.6.30
简化本地上传,完善docker部署