阿里云服务器搭建Halo博客系统

2023-11-17

欢迎访问我的博客:飞鱼舍

前言:


Halo是一款现代化的个人独立博客系统。Halo [ˈheɪloʊ],意为光环。当然,你也可以当成拼音读(哈喽)。轻快,简洁,功能强大,使用 Java 开发的博客系统。

具有以下几个特点:

  1. 快速部署

    一条命令即可启动,完全没有上手难度。

  2. 多主题

    完备的主题系统,支持在线下载和在线更新,并提供 9 款主题可供选择(主题开发文档正在开发中)。

  3. 拓展性

    提供 Content Api 和 Admin Api。你可以用于开发单页面应用,微信小程序,桌面端管理软件,管理 APP(已有)等。

  4. 附件管理

    支持本地上传,又拍云/七牛云/阿里云/SM.MS 等存储服务。

  5. 评论管理

    拥有独立的评论插件,使用 Vue 开发,只需在页面引入构建好的 JS 文件即可,完美地和主题相结合。

  6. APP

    拥有使用 Flutter 开发的管理端 APP,支持 Android 和 iOS,随时随地发表你的想法。

之前我使用的是Typecho博客系统,现在来尝试一下Halo博客系统。

使用Docker部署Halo


环境要求

  • CentOS 7.x
  • 1G 以上内存

服务器配置

更新软件包

请确保服务器的软件包已经是最新的。

sudo yum update -y

配置 Docker 运行环境

安装必要依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存

sudo yum makecache fast

安装Docker

sudo yum install docker-ce docker-ce-cli containerd.io

启动Docker后台服务

sudo systemctl start docker

允许当前用户直接运行 docker 命令

sudo usermod -aG docker your_name#修改your_name

镜像加速

# 新建 daemon.json 文件
sudo vim /etc/docker/daemon.json

将下面的配置复制进去即可:

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

安装 Halo

自定义配置文件

考虑到部分用户的需要,可能需要自定义比如端口等设置项,我们提供了公共的配置文件,并且该配置文件是完全独立于安装包的。当然,你也可以使用安装包内的默认配置文件,但是安装包内的配置文件是不可修改的。请注意:配置文件的路径为 ~/.halo/application.yaml

# 下载配置文件到 ~/.halo 目录
curl -o ~/.halo/application.yaml --create-dirs http://halo.ryanc.cc/config/application-template.yaml

修改配置文件

完成上一步操作,我们就可以自己配置 Halo 的运行端口,以及数据库相关的配置了。

# 使用 Vim 工具修改配置文件
vim ~/.halo/application.yaml

打开之后我们可以看到:

H2 配置如下:

server:
  port: 8090
spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource

    # H2 Database 配置
    driver-class-name: org.h2.Driver
    url: jdbc:h2:file:~/.halo/db/halo
    username: admin
    password: openadmin
  h2:
    console:
      settings:
        web-allow-others: false
      path: /h2-console
      enabled: false
  1. 如果需要自定义端口,修改 server 节点下的 port 即可。
  2. 默认使用的是 H2 Database 数据库,这是一种嵌入式的数据库,使用起来非常方便。需要注意的是,默认的用户名和密码为 admin123456,这个是自定义的,最好将其修改,并妥善保存。
  3. h2 节点为 H2 Database 的控制台配置,默认是关闭的,如需使用请将 h2.console.settings.web-allow-othersh2.console.enabled 设置为 true。控制台地址即为 域名/h2-console。注意:非紧急情况,不建议开启该配置。

拉取最新 Halo 镜像

sudo docker pull ruibaby/halo

创建容器并运行

docker run --rm -it -d --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo
  1. –rm:停止之后自动删除容器。
  2. –name:容器名。
  3. -p:占用端口,前者为宿主机端口,后者为 Halo 的运行端口,可在 application.yaml 配置。
  4. -v:目录映射,一般不要修改。

更新 Halo 版本

# 停止容器
sudo docker stop halo

# 拉取最新的 Halo 镜像
sudo docker pull ruibaby/halo

# 创建容器
docker run --rm -it -d --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo

完成以上操作即可通过 ip:端口 访问了。不过在此之前,最好先完成后续操作,我们还需要让域名也可以访问到 Halo,请继续看配置域名访问。

使用 Caddy 进行反向代理

Caddy 是一款使用 Go 语言开发的 Web 服务器。其配置更为简洁,并可以自动申请及配置 SSL 证书(推荐)。

安装 Caddy

# 安装 Caddy 软件包
yum install caddy -y

配置 Caddy

# 下载 Halo 官方的 Caddy 配置模板
curl -o /etc/caddy/conf.d/Caddyfile.conf --create-dirs http://halo.ryanc.cc/config/Caddyfile

下载完成之后,我们还需要对其进行修改。

# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf

打开之后我们可以看到

https://www.simple.com {
 gzip
 tls xxxx@xxx.xx
 proxy / localhost:port {
  transparent
 }
}
  1. 请把 https://www.simple.com 改为自己的域名。
  2. tls 后面的 xxxx@xxx.xx 改为自己的邮箱地址,这是用于自动申请 SSL 证书用的。需要注意的是,不需要你自己配置 SSL 证书,而且会自动帮你续签。
  3. localhost:port 请将 port 修改为 Halo 的运行端口,默认为 8090。

修改完成之后启动 Caddy 服务即可。

# 开启自启 Caddy 服务
systemctl enable caddy

# 启动 Caddy
service caddy start

# 停止运行 Caddy
service caddy stop

# 重启 Caddy
service caddy restart

# 查看 Caddy 运行状态
service caddy status

注意

如果 Caddy 启动出现诸如 [/usr/lib/systemd/system/caddy.service:23] Unknown lvalue 'AmbientCapabilities' in section 'Service' 这样的问题,请使用 yum update -y 更新系统。然后再使用 service caddy restart 重启,已知 CentOS 7.3 会出现该问题。

进阶设置

多网址重定向到主网址,比如访问 simple.com 跳转到 www.simple.com 应该怎么做呢?

# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf

打开之后我们在原有的基础上添加以下配置

https://simple.com {
  redir https://www.simple.com{url}
}

https://simple.comhttps://www.simple.com{url} 修改为自己需要的网址就行了,比如我要求访问 ryanc.cc 跳转到 www.ryanc.cc,完整的配置如下:

https://ryanc.cc {
  redir https://www.ryanc.cc{url}
}

https://www.ryanc.cc {
  gzip
  tls i@ryanc.cc
  proxy / localhost:8090 {
    transparent
  }
}

最后我们重启 Caddy 即可。

到这里,关于 Caddy 反向代理的配置也就完成了,现在你可以访问一下自己的域名,并进行 Halo 的初始化了。

注意

在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功。


以上内容来自于Halo博客用户文档,更多使用详情,请点击链接了解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿里云服务器搭建Halo博客系统 的相关文章

随机推荐

  • hadoop查看fsimage

    一 使用hdfs命令获取FsImage数据文件 hdfs dfsadmin fetchImage tmp meta 注意 这是本地文件系统 二 执行命令解析fsimage文件 hdfs oiv i tmp meta fsimage 0000
  • python中OS模块;

    OS模块 OS模块简单的来说它是一个Python的系统编程的操作模块 可以处理文件和目录这些我们日常手动需要做的操作 在自动化测试中 经常需要查找操作文件 比如查找配置文件 从而读取配置文件的信息 查找测试报告等等 经常会对大量文件和路径进
  • libcurl 库处理url链接字符串包含中文导致执行失败问题

    1 问题 通常见到的url链接地址一般都是不包含中文的或者已经将中文转码过的 但有些情况下仍然有中文情况 这时候使用curl easy setopt curl CURLOPT URL sUrl c str 会执行失败 因此需要想办法进行字符
  • 关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等

    在学习unity的过程中 被各种贴图弄得晕头转向 为了弄清楚各种贴图 查询了很多资料 粗略的整理如下 只要耐心看完 对贴图的基本用法基本上就没问题了 1 Albedo 贴图 可以看做是Diffuse颜色贴图 Albedo 反照率 贴图 用于
  • 基于generator链接数据库实现实体类、controller、mapper、mapper.xml、service、impl的自动生成

    基于generator链接数据库实现实体类 controller mapper mapper xml service impl的自动生成 1 查了很多csdn的博客 发现只有生成实体类的generator配置 并没有自动生成service等
  • Mybatis动态SQL

    Mybatis 的映射文件中 有些时候业务逻辑复杂时 我们的SQL是动态变化的 而动态sql可以根据不同条件有不同的动态变化 例 查询学生表的信息 条件是姓名 性别 年龄 但是我第二次查询只要姓名 性别 不使用动态sql就需要编写两条sql
  • bmp文件

    文件格式 格式组成 典型的BMP 图像文件由四部分组成 1 位图头文件数据结构 它包含BMP图像文件的类型 显示内容等信息 2 位图信息数据结构 它包含有BMP图像的宽 高 压缩方法 以及定义颜色等信息 3 调色板 这个部分是可选的 有些位
  • java学习笔记之vector的排序

    Vector的基本类型排序 对vector的排序有两种 一种是从小到大排序 一种是从大到小排序 sort默认从小到大排序 代码来啦 public class Main static Scanner cin new Scanner Syste
  • myEclipse中使用debug调试程序

    原文地址 http blog csdn net fupeng1114 article details 7548190 1 首先在一个java文件中设断点 直接点两下 当程序走到断点处就会转到debug视图下 2 F5键与F6键均为单步调试
  • python shutil.rmtree()在windows删除.git目录提示权限问题

    今天在做一个业务需求 需要将git库上代码下载下来之后 然后删除 git目录 直接使用rmtree报权限错误 下文作者的解答帮助了我 谢谢 问题描述 在使用该函数的时候 程序出弹出 PermissionError WinError 5 拒绝
  • cmd 添加并显示stusys数据库

    打开我的电脑 配置环境变量 打开cmd管理员进入 输入mysql u root p 密码 create database stusys show databases use stusys show tables quit mysql u r
  • vue webpack4+babel7+配置 .jsx 的loader

    webpack版本 webpack 4 41 2 webpack cli 3 3 10 jsx文件 export default data return headTitle
  • 网卡mtu值引起的服务访问异常处理过程

    一 现象说明 我们在k8s集群上部署服务 发现在72段主机上的服务访问是都没有问题的 但是在161段主机有的服务可以访问 有的访问没有返回值 其中在161段主机访问没有返回值的服务 到服务所在的主机是可以访问的 二 解决过程 针对上述现象
  • 配置Tomcat错误页面重定向

    1 新建ROOT目录 在tomcat的webapps目录下新建ROOT目录 如果有则不需要新建 2 新建指定的错误页面 在 ROOT目录下面新建错误页面error html h1 页面不存在 h1 3 在ROOT下面新建WEB INF 且在
  • 【OpenCV笔记】光流法之金字塔Lucas-Kanade

    转自 https blog csdn net qq 33389308 article details 83049479 本文参考链接 https blog csdn net zy122121cs article details 449553
  • 2E丑数(DP)

    include
  • Couldn‘t find executable named rqt_lgsvl_simulator_configurator below /home/autoware/Autoware/ros/in

    直接点击Simulation分页下LGSVL Simulator会报错 Couldn t find executable named rqt lgsvl simulator configurator below home autoware
  • Spring Boot 实现读写分离

    目录 1 上流程图 2 配置多数据源 3 编写 RoutingDataSource 3 1使用限制 4 流程解析 1 上流程图 2 配置多数据源 首先 我们在 SpringBoot 中配置两个数据源 其中第二个数据源是ro datasour
  • 教你用Matlab进行系统仿真 - Matlab仿真详细教程

    前言 MATLAB是美国著名公司MathWorks推出的商业数学软件 该软件为用户提供算法开发 数据可视化 数据分析等交互操作环境 本文主要介绍如何利用MATLAB进行仿真 请参见下面的详细操作 一 打开Simulink 1 首先打开mat
  • 阿里云服务器搭建Halo博客系统

    欢迎访问我的博客 飞鱼舍 前言 Halo是一款现代化的个人独立博客系统 Halo he lo 意为光环 当然 你也可以当成拼音读 哈喽 轻快 简洁 功能强大 使用 Java 开发的博客系统 具有以下几个特点 快速部署 一条命令即可启动 完全