本文最后更新于 2024-05-17,

若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。

本站只有Telegram群组为唯一交流群组, 点击加入

文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请

前言

用过不少写博客的项目,比如WordPress、notion、Aurora,现在把网站的内容全都通过md格式导入到halo这个项目里面来了,确实是简单方便,回到了写博客的本质上,相对来说功能没有WP那么多,但是足够美观和便利。例如本站的文章。

官方网址:https://www.halo.run/

项目手册:https://docs.halo.run/

项目地址:https://github.com/halo-dev/halo

安装Docker🐳

免费泛域名证书申请

ohttps

利用Docker-compose搭建,易于更新

先建立一个文件夹和文件

mkdir -p ~/halo &&cd $_

vim docker-compose.yaml

docker-compose填入以下内容:

version: "3"

services:
  halo:
    image: halohub/halo:2.15.0
    container_name: halo
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./halo2:/root/.halo2
    ports:
      - "8090:8090"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s  
    command:
      - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
      - --spring.r2dbc.username=halo
      # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=halo_password
      - --spring.sql.init.platform=postgresql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8090/
  halodb:
    image: postgres:15.4
    container_name: halodb
    restart: on-failure:3
    networks:
      halo_network:
    volumes:
      - ./db:/var/lib/postgresql/data
    ports:
      - "5434:5432"
    healthcheck:
      test: [ "CMD", "pg_isready" ]
      interval: 10s
      timeout: 5s
      retries: 5
    environment:
      - POSTGRES_PASSWORD=halo_password #密码需要修改
      - POSTGRES_USER=halo
      - POSTGRES_DB=halo
      - PGUSER=halo
 # 这部分为新增内容,创建一个 meilisearch 容器
  meilisearch:
    image: getmeili/meilisearch:v1.5
    container_name: meilisearch
    restart: on-failure:3
    networks:
      - halo_network
    ports:
        - 7700:7700
    volumes:
      - ./meili_data:/meili_data
    environment:
      - MEILI_ENV=production
      # 可以改成自己的密码,对长度有限制,不建议修改
      - MEILI_MASTER_KEY=95d031f029c0f93289791d39f01a7f42a2211973
      - MEILI_NO_ANALYTICS=true

networks:
  halo_network:

运行

docker-compose up -d

我们现在可以输入 http://ip:8090/访问了。

查看最新版本镜像:https://hub.docker.com/r/halohub/halo ,我们推荐使用具体版本号的镜像,

目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 halohub/halo:2.15 或者 halohub/halo:2.15.0

  • halohub/halo:2.15:表示最新的 2.15.x 版本,即每次发布 patch 版本都会同时更新 halohub/halo:2.15 镜像。
  • halohub/halo:2.15.0:表示一个具体的版本。

后续文档以 halohub/halo:2.15 为例。

更新

cd ~/halo  # 进入docker-compose所在的文件夹

vim docker-compose.yaml

docker-compose pull    # 拉取最新的镜像(需要修改版本号)

docker-compose up -d   # 重新更新当前镜像

卸载

cd ~/halo  # 进入docker-compose所在的文件夹

docker-compose down    # 停止容器,此时不会删除映射到本地的数据

rm -rf ~/halo # 完全删除映射到本地的数据

使用教程

应用市场

Halo自带丰富的插件,以及主题。可以在应用市场内安装,在插件处配置后使用。

image-kdaw.png

文章搜索

docker-compose默认集成了meilisearch

首先到应用市场安装“搜索组件”、“meilisearch“组件,以及支持搜索组件的主题。

回到插件内找到“meilisearch”,修改基本设置

image-qbzp.png

保存后回到仪表盘刷新搜索引擎即可

image-nhtf.png

备份

目前仅支持手动备份,及时备份好习惯!

image-flwk.png

附件

目前博客附件只支持本地存储,无法直接挂载外部存储。如果需要CDN、OSS等,可以直接挂载外链到文章内。

反向代理

参考教程:安装及使用

⚠️Nginx Proxy Manager(以下简称NPM)会用到80、443端口,所以本机不能占用(比如原来就有Nginx)

互联网使用请确保完成了域名解析