基于Halo搭建个人网站

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 基于Halo搭建个人网站

前言


为了更好的阅读体验,你可以直接滑到最下方,点击阅读原文进行查看。


最近花了点时间基于Halo把自己的网站改造了下,实现了站内的文章阅读、点赞、评论、留言板等功能,本文就跟大家介绍并分享下我改造后的网站[1],欢迎各位感兴趣的开发者阅读本文。


环境搭建


Halo[2]是一款现代化的开源博客/CMS系统,官网[3]列举了详细的环境搭建教程[4],按着官网给出的教程一步步往下走,即可完成安装,过程很顺利,此处不做过多赘述。


对我改造好的网站比较感兴趣的开发者,请移步:在线地址[5]


自定义数据库


如果你有一定的Java/SpringBoot/Gradle基础,希望对搭建好的环境进行更深层次的定制,你可以继续阅读本章节,否则跳过即可。


Halo默认采用H2作为数据库,因为我本地装有MySQL,为了方便管理,我决定把它改掉,在文档的数据库章节[6]提供了配置方案,我们需要将Halo的源码[7]clone到本地,打开application.yaml文件,删除H2相关的配置,加入如下所示的配置:


spring:
  datasource:
   # MySQL database configuration.
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 修改成你的数据库地址
    url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    # 数据库的用户名与密码
    username: root
    password: 123456


注意:halo目前只支持mysql且版本必须大于等于5.7。


自定义缓存


本章节也需要你有一定的Java/SpringBoot/Gradle基础,否则跳过即可。


Halo的默认缓存策略是到内存中的,它支持redis缓存方式,我本地装有redis,因此也一并修改了,在文档的缓存章节[8]提供了配置方案,打开application.yaml文件,修改cache字段值为redis,并加入redis的连接配置,如下所示:


spring:
  redis:
    # redis端口号
    port: 6379
    database: 0
    # redis地址
    host: 127.0.0.1
    # redis密码
    password: 123456
halo:
 cache: redis


编译项目


做完上述修改后,我们需要对项目进行编译(注意你的jdk版本必须大于等于11),打开idea中的Gradle面板,执行build命令的jar即可。


640.png

                    image-20220506000934441


编译过程中可能会看到一些test的报错,它不影响最终打包结果,可以忽略不计,打包成功后,在项目的build/libs目录下即可看到打包出来的文件。


640.png

                              image-20220506001324907


最后,拿着打包出来的去运行即可(同样的,运行环境的jdk>=11)。


选择主题


环境搭建完毕后,在浏览器输入http://127.0.0.1:8090即可看到初始化界面了,

根据页面提示一步步的往下进行即可。


由于默认界面是比较丑的,halo提供了主题仓库[9],里面有许多第三方主题,可以挑选一个好看的进行改造,我挑选的是Joe 2.0主题[10],基于它进行了改造,在线地址[11],最终效果如下所示:


640.png



注意:如果的halo是自己编译的,在管理后台安装第三方主题时,可能会出现报错:当前主题仅支持 Halo ^1.x.xx 及以上的版本,求助这个主题的作者后,他说这个校验逻辑在后端,只能通过手动下载Release[12] 页面的主题包,手动解压上传到halo安装目录的/templates/themes/目录下,并将文件夹命名为joe2.0。

640.png

                                  image-20220506003306253

最后,在后台管理界面启用主题即可。

640.png

                                image-20220506003442183


GPU占用严重问题


如果你使用的是Joe 2.0主题,在浏览器打开你的网站超过5分钟,你的电脑风扇会狂响,cpu温度持续升高。

640.png

                                image-20220506003957266


640.png

                            image-20220506004108767


经过一番排查后,终于定位到了问题:人生倒计时插件的锅,可能这里的代码写的不好,造成了大量运算,在网站管理后台的主题 -> 主题设置 -> 侧边栏 展示人生倒计时,将其关掉即可。

640.png

                                     image-20220506004444333


改造后的网站


接下来,跟大家介绍下我的个人网站[13]中都有哪些内容。


首页


首页有4个模块,如下所示:


640.png


  • 轮播图区域:此处会按时间循环展示我最新发表的5篇文章
  • 侧边栏区域:展示我的头像、昵称、专栏数、文章数、社交平台等信息
  • 推荐专栏区域:会按照专栏的点击量来展示6个热度最高的专栏
  • 文章列表区域:包含最新文章、热门文章、最近更新、最多点赞四个分类,默认展示最新文章


动态


此处将分享一些我的日常生活状态、一些简短的想法等内容🤗


640.png

                                   image-20220506005503508

文章


此处将以时间轴的形式展示我所发布过的文章。


640.png

                               image-20220506005610659


专栏


此处将展示我创建的所有专栏(即:文章分类)。


640.png


标签


此处将展示文章发布时所创建的标签。


640.png

                           image-20220506010006880


留言板


如果有想对我说的话,欢迎在此留言🤓

640.png

                                   image-20220506010200337


关于我


此处将展示一些我的个人介绍。


640.png

                              image-20220506011426299


写在最后


至此,文章就分享完毕了。


我是神奇的程序员,一位前端开发工程师。


如果你对我感兴趣,请移步我的个人网站[14],进一步了解。

  • 文中如有错误,欢迎在评论区指正,如果这篇文章帮到了你,欢迎点赞和关注😊
  • 文中链接可从文末参考资料中获取

相关文章
|
JavaScript 搜索推荐 程序员
Vuepress + gitee五分钟免费搭建个人博客(保姆级教程)
前言 作为一个程序员,没有折腾过个人博客是不算完整的。技术文章的输出是我们程序员能力的一种体现,也是一种非常好的个人总结。 市面上有很多搭建个人博客的工具或框架,包括hexo、wordpress等等。不可否认,市面上有些博客系统做得很好,博客主题也很丰富,但是往往存在一个问题:比较重。 作为一个Vue程序员,我就比较推荐使用vuepress搭建个人博客,因为它毕竟是Vue出品的,大家熟知的vue官方就是利用vuepress搭建的。 本篇文章就从零开始教大家搭建一个免费的博客,零基础小白也可以学习哦!
3780 0
Vuepress + gitee五分钟免费搭建个人博客(保姆级教程)
|
5月前
|
人工智能 数据库
智能体(AI Agent)开发实战之【LangChain】(四)结合大模型基于RAG实现本地知识库问答和纠错
本文介绍如何基于RAG实现知识库问答系统的输入内容纠错功能。通过加载本地知识库、构建向量数据库,结合大语言模型对输入文本进行检索比对与纠错优化,提升问答准确性。
|
资源调度 JavaScript 前端开发
yarn源|yarn 国内镜像+linux删除大量文件
yarn源|yarn 国内镜像yarn源|yarn 国内镜像+linux删除大量文件
1477 0
|
消息中间件 物联网 Kafka
消息队列 MQ产品使用合集之QoS 1与QoS 2的主要区别有哪些
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
Java 测试技术 开发者
【亮剑】通过自定义注解实现Spring AOP,可以更灵活地控制方法拦截和增强
【4月更文挑战第30天】通过自定义注解实现Spring AOP,可以更灵活地控制方法拦截和增强。首先定义自定义注解,如`@MyCustomAnnotation`,然后创建切面类`MyCustomAspect`,使用`@Pointcut`和`@Before/@After`定义切点及通知。配置AOP代理,添加`@EnableAspectJAutoProxy`到配置类。最后,在需拦截的方法上应用自定义注解。遵循保持注解职责单一、选择合适保留策略等最佳实践,提高代码可重用性和可维护性。记得测试AOP逻辑。
479 1
|
存储 弹性计算 人工智能
2024阿里云99计划2核2G服务器99元/年,新购续费都是99元
2024阿里云99计划2核2G服务器99元/年,新购续费都是99元
|
弹性计算 Java 对象存储
使用云服务器ECS快速搭建Halo博客
本文来自云服务器ECS开发实践征文活动用户投稿,从阿里云服务器购买(试用)到搭建一个属于开发者自己的开源博客系统,带你从0到1了解认识阿里云ECS搭建博客网站。步骤详细,可操作性强,教您玩转ECS。全文大约3000字。已获得作者(昵称乌龟哥哥)授权发布。
637 0
使用云服务器ECS快速搭建Halo博客
|
弹性计算 应用服务中间件 Linux
如何使用阿里云搭建个人网站
域名申请 首次搭建 个人小站,建议购买域名和服务器到知名商家,我推荐大家到阿里云上。因为阿里云绑定了个人淘宝账号,登录,支付,还有其他各种产品。 输入你想要的域名,查询没有被其他人注册后,你可以加入购物车或直接使用淘宝账号登录购买。
5497 0
|
机器人
BOSHIDA AC-DC电源模块在工业控制器中的重要性
BOSHIDA AC-DC电源模块是现代工业控制系统中最重要的组成部分之一,它是将交流电转换为直流电并向系统的各个部分供电的关键器件。在工业控制器中,AC-DC电源模块的功能非常重要,它的可靠性、稳定性和效率直接影响到整个控制系统的性能。本文将探讨AC-DC电源模块在工业控制器中的应用。
BOSHIDA AC-DC电源模块在工业控制器中的重要性