从零搭建属于自己的博客——Step2 Halo

从零搭建属于自己的博客——Step2 Halo

Youkun 189 2023-01-29 2023-02-15

现代化的个人博客搭建——Halo

前言:目前个人博客建站系统有很多选择,主流的有 WordPress、Typehco、hexo 等等。在偶然一次逛别人的网站,觉得耳目一新,后来才渐渐了解 Halo( 官方网址:https://halo.run/ )。下文就是利用 Halo 2.1来搭建属于自己的博客网站,如有描述问题,欢迎指正!

建站前提:腾讯云的轻量应用服务器(也可以选择其他云服务器或者支持 docker 的 NAS);购买域名;做好域名解析;备案(看个人选择,建议备案,审核过程需要 7-20 天);

个人环境:云服务器(基于腾讯云的宝塔面板镜像 CentOS 7.9)

一、安装 docker

1.软件商店 → 应用搜索 docker→ 选择并下载:

image.png2.现在腾讯云 DNS 解析插件更新了,不是 3.0 的小伙伴在 docker 安装时候,可以顺便更新一下:

image.png

二、安装 Halo

大部分参照官网来进行安装(文档地址:https://docs.halo.run/)

喜欢便捷的选择官方的 docker 部署,这里我是使用 Docker Compose 部署的,后期方便升级:

1.进入终端,创建 halo 文件夹
 mkdir ~/halo && cd ~/halo
image.png2.文件 → 创建docker-compose.yaml文件

image.png这里我选择官方创建 Halo + PostgreSQL 的实例,当然你也可以选择别的:

注意--halo.external-url=http://localhost:8090/ 这个 localhost 替换成自己的域名

目前 2023-02-01 已经升级到 2.2,这里演示的是 2.1。

version: "3"
​
services:
  halo:
    image: halohub/halo:2.1.0
    container_name: halo
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./:/root/.halo2
    ports:
      - "8090:8090"
    command:
      - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
      - --spring.r2dbc.username=halo
      # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=openpostgresql
      - --spring.sql.init.platform=postgresql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8090/
      # 初始化的超级管理员用户名
      - --halo.security.initializer.superadminusername=admin
      # 初始化的超级管理员密码
      - --halo.security.initializer.superadminpassword=P@88w0rd
  halodb:
    image: postgres:latest
    container_name: halodb
    restart: on-failure:3
    networks:
      halo_network:
    volumes:
      - ./db:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    healthcheck:
      test: [ "CMD", "pg_isready" ]
      interval: 10s
      timeout: 5s
      retries: 5
    environment:
      - POSTGRES_PASSWORD=openpostgresql
      - POSTGRES_USER=halo
      - POSTGRES_DB=halo
      - PGUSER=halo
​
networks:
  halo_network:
3.终端 → 再回到 halo 文件夹
image.png4.启动 Halo 服务
docker-compose up -d

此时容器创建成功

image.png5.进入轻量服务器控制台,服务器防火墙开放 8090,5432 端口:

image.png

image.png6.初步设置 halo

浏览器输入 :你的域名+端口号 8090:

image.png点击登录,我们需要进入后台:

image.png用户名,密码是之前 yaml 文件中的 admin,P@88w0rd;

# 初始化的超级管理员用户名- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码- --halo.security.initializer.superadminpassword=P@88w0rd

image.png输入你喜欢的名称:

image.png此时访问后台成功:

image.png这里的后台管理操作就不展示了,官方的用户指南写得很仔细;

链接地址:https://docs.halo.run/category/%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97

你可以根据自己的喜欢爱好来进行设定 👉;

注意:主题安装需要看主题支不支持 Halo2.0,有问题多看文档,或者论坛。

主题仓库地址:https://halo.run/themes ;论坛讨论地址:https://bbs.halo.run/

三、升级 Halo

目前 Halo 已经更新到 2.2,这里按照官方文档演示一下容器2.1 升级 2.2

1.停止容器:
cd ~/halo && docker-compose down

image.png

2.备份数据

其中halo.archive 备份文件名是自己命名的,也可以叫 Halo123:

cp -r ~/halo ~/halo.archive
3.修改 docker-compose.yaml 中配置的镜像版本:

我这里是在宝塔面板文件管理器中修改的

image.png你也可以命令行操作:

vim docker-compose.yaml

image.png按“i”,修改版本为 2.2.0;再“Esc”,输入“:wq” 退出保存:

image.png

4.拉取新的镜像:
docker-compose pull

image.png

5.启动服务:
docker-compose up -d

image.png

这样就完成了更新,祝你使用愉快 😊!