今天教大家从0开始搭建Halo博客系统!

Halo 是一款基于 Java 和 Spring Boot 开发的开源博客系统,具有简洁、轻快、功能强大等特点。以下是基于 Docker 的 Halo 搭建教程。
Screenshot_2025-03-15-17-41-02-41_40deb401b9ffe8e1df2f1cc5ba480b12.jpg

一、环境准备

  1. 服务器:一台运行 Linux 操作系统的服务器,推荐使用 Ubuntu 或 CentOS。

  2. 域名:一个已备案并解析到服务器的域名(可选)。

  3. 端口:确保服务器的安全组中已开放 Halo 默认端口 8090。

二、安装 Docker

  1. 更新系统包:
   sudo yum update -y
  1. 安装 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
   sudo yum install -y docker-ce docker-ce-cli containerd.io
  1. 启动 Docker 并设置开机自启:
   sudo systemctl enable docker --now
  1. 配置 Docker 镜像加速:
   sudo mkdir -p /etc/docker
   sudo tee /etc/docker/daemon.json <<-'EOF'
   {
     "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
   }
   EOF
   sudo systemctl daemon-reload
   sudo systemctl restart docker

三、下载 Halo 配置文件

  1. 创建 Halo 配置文件目录:
   mkdir ~/.halo && cd ~/.halo
  1. 下载配置文件:
   wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
  1. 编辑配置文件(可选,根据需要修改端口或数据库配置):
   vim ~/.halo/application.yaml

四、拉取 Halo 镜像并启动容器

  1. 拉取 Halo 镜像:
   docker pull halohub/halo:latest
  1. 创建并启动 Halo 容器:
   docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:latest

五、访问 Halo

完成上述步骤后,访问http://<服务器IP>:8090,即可进入 Halo 的安装引导页面。

六、可选配置

1.设置开机自启

如果使用非 Docker 方式部署,可以参考以下步骤:

  1. 创建服务文件:
   sudo vim /etc/systemd/system/halo.service
  1. 编辑服务文件:
   [Unit]
   Description=Halo Service
   Documentation=https://halo.run
   After=network-online.target
   Wants=network-online.target

   [Service]
   Type=simple
   ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar /path/to/halo.jar --spring.config.additional-location=optional:file:/home/user/.halo/
   ExecStop=/bin/kill -s QUIT $MAINPID
   Restart=always
   StandardOutput=syslog
   StandardError=inherit

   [Install]
   WantedBy=multi-user.target
  1. 启动服务:
   sudo systemctl enable halo
   sudo systemctl start halo

2.配置反向代理

如果需要使用域名访问 Halo,可以配置 Nginx 或 Caddy 反向代理。

使用 Nginx 配置反向代理

  1. 安装 Nginx:
   sudo yum install -y nginx
  1. 编辑 Nginx 配置文件:
   sudo vim /etc/nginx/conf.d/halo.conf

添加以下内容:

   server {
       listen 80;
       server_name your-domain.com;

       location / {
           proxy_pass http://127.0.0.1:8090;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
       }
   }
  1. 重启 Nginx:
   sudo systemctl restart nginx

七、总结

通过以上步骤,你已经成功搭建了一个基于 Halo 的个人博客系统。如果在搭建过程中遇到问题,可以参考 Halo 官方文档或社区支持。