基于Halo搭建个人网站

简介: 基于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],进一步了解。

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

相关文章
|
智能硬件
硬件产品成本构成
硬件产品成本
1233 1
|
存储 编解码 iOS开发
视频文件格式:MOV与MP4格式的区别是什么?
视频文件有多种格式,很多人在下载时不知道该选择哪种文件格式。不同格式有不同特点,各自有优缺点。本文将详细介绍常见的MOV和MP4的特点与区别,以供读者了解及选择。
11846 3
视频文件格式:MOV与MP4格式的区别是什么?
|
7月前
|
Web App开发 Java 数据安全/隐私保护
新一代HIS源码医院信息系统一体化程序解决方案——大型
BS架构的医疗信息系统HIS源码,兼容全浏览器与移动终端;覆盖门诊、住院、EMR、药房等全业务场景;支持医保及LIS/PACS等系统对接;采用Spring Cloud+Vue微服务架构,保障高并发与金融级数据安全。
|
4月前
|
人工智能 运维 安全
Java领域AI Agent开发首选框架:Harness Agent特性、实战用法全面解读
在智能化技术全面渗透软件开发领域的当下,AI Agent智能体已经成为应用开发、业务流程自动化、系统运维、智能交互场景中的核心技术形态。Java作为企业级开发领域应用最广泛、生态最成熟的编程语言,长期占据后端服务、大型分布式系统、政企项目、金融业务系统等核心赛道。但在AI Agent技术落地过程中,传统Java开发模式却暴露出明显短板,原生语言体系缺少针对智能体调度、工具调用、多轮会话、任务编排的标准化组件,开发者想要从零搭建AI Agent应用,需要整合大量第三方组件、自主设计通信逻辑、封装模型调用接口,开发周期长、代码冗余度高、后期维护难度大。
620 0
|
运维 监控 Cloud Native
阿里云 Serverless 重塑创蓝云智通信底座,引领行业变革
创蓝云智通过采用阿里云云原生产品矩阵,成功实现从传统架构向云原生弹性架构转型。利用Serverless应用引擎(SAE)、云原生API网关、微服务引擎(MSE)等产品,解决了资源利用率低、运维压力大等问题,显著提升系统稳定性与业务连续性,助力企业降本增效,成为云原生领域的标杆案例。
472 0
|
人工智能 Java API
教你自创工作流,赋予AI助理个性化推荐超能力
本文详细介绍了使用Spring AI Alibaba构建AI助理的全过程,涵盖从基本流程设计到实际操作实现的各个方面。文章首先回顾了前期工作,包括旅游攻略、天气查询和个人待办事项等功能模块的设计与实现。接着,深入探讨了工作流的实现细节,如事件封装优化、工作流节点创建及复杂工作流的高效管理。最后,通过实际项目启动与运行测试,展示了AI助理的实际效果,验证了系统的稳定性和可扩展性。本文不仅适合Java开发者学习AI技术,也为后续的优化和功能拓展提供了宝贵的经验。
2451 9
教你自创工作流,赋予AI助理个性化推荐超能力
|
存储 弹性计算 缓存
阿里云服务器99元和199元与轻量应用服务器38元各自性能、适用场景与选择参考
2025年,阿里云推出了多款低价特惠云服务器,其中轻量应用云服务器2核2G 200M带宽 40G ESSD云盘38元1年,云服务器ECS 2核2G 3M带宽 40G ESSD Entry盘活动价99元1年,而2核4G 5M带宽 80G ESSD Entry盘则仅售199元1年。对于还未使用过阿里云轻量应用服务器和云服务器的用户来说,并不是很清楚他们各自有性能怎么样,主要使用场景有哪些,本文来做个简单介绍与对比,以供参考和选择。
|
人工智能 语音技术 iOS开发
MiniCPM-o 2.6:面壁智能开源多模态大模型,仅8B参数量就能媲美GPT-4o,支持实时交互,在ipad等终端设备上运行
MiniCPM-o 2.6 是面壁智能开源的多模态大模型,支持视觉、语音和多模态直播,性能媲美GPT-4o,能够在端侧设备上高效运行。
1526 10
MiniCPM-o 2.6:面壁智能开源多模态大模型,仅8B参数量就能媲美GPT-4o,支持实时交互,在ipad等终端设备上运行
|
关系型数据库 MySQL Nacos
生产环境下的终极指南:在生产环境部署 Nacos 集群和高可用 MySQL 使用 Docker
生产环境下的终极指南:在生产环境部署 Nacos 集群和高可用 MySQL 使用 Docker
1684 0
|
缓存 网络协议 NoSQL
基于UDP的可靠性传输协议-KCP简介
基于UDP的可靠性传输协议-KCP简介
1063 0

热门文章

最新文章