电脑端

Halo 博客简介

Halo 是一款现代化的开源博客和内容管理系统(CMS),功能丰富,支持 Markdown 文档,能够满足日常写作和文章分享的需求。对于喜欢写作、分享和构建个人博客的用户来说,Halo 是一个非常理想的选择。本篇教程将介绍如何使用 Docker Compose 来部署 Halo 博客。

77572cb9825441eea911dd5409950562-bvrA.webp

使用 Docker Compose 搭建 Halo 博客

步骤一:进入Docker项目界面

在UGOS Pro系统中,打开Docker应用,点击【项目】>【创建】,启动项目创建向导。

af1940741d4b4d06ab8cd7781b2c5d04-cizH.webp

步骤二:配置Docker Compose文件

在创建项目时,您需要提供Docker Compose配置文件。粘贴以下 Docker Compose 配置文件:

services:
  halo:
    image: halohub/halo:sha-9ffb1bb
    container_name: halo
    restart: always
    ports:
      - "8090:8090"  # 将容器的8090端口映射到宿主机的8090端口
    volumes:
      - ./halo:/root/.halo  # 挂载容器数据目录到本地文件夹,确保数据持久化
    environment:
      - TZ=Asia/Shanghai  # 设置时区为上海,可根据需要调整
      - HALO_EXTERNAL_URL=http://yourdomain.com  # 替换为你博客的域名或IP地址

参数说明:

image: 指定用于运行 Halo 的 Docker 镜像。

container_name: 容器名称,方便识别和管理。

restart: 配置为 always,确保容器在异常退出后自动重启。

ports: 将容器内的 8090 端口映射到NAS的 8090 端口,使外部可以通过该端口访问博客。

volumes: 挂载nas的 ./halo 文件夹到容器内的 /root/.halo 目录,以持久保存博客数据。

environment: 设置环境变量:

TZ: 设置容器的时区,确保日志时间与本地时间同步。

HALO_EXTERNAL_URL: 设置博客的外部访问地址,建议填写你博客的域名或 NAS 的 IP 地址。

步骤三:验证并创建容器

完成配置后,点击“立即部署”以检查配置文件的正确性。验证通过后,系统将根据 Docker Compose 文件启动 Halo 容器。点击“完成”后,你可以在“容器列表”中看到 Halo 容器已经正确启动。

7201d788ae764673b24993f5a1e6a1dd-Ogvo.webp
71ee0ce382424c668bb0460ad32e73f4-zcgp.webp

步骤四:访问并使用 Halo 博客

1. 在浏览器中输入 http://<NAS-IP>:8090,将 <NAS-IP> 替换为您的 NAS 的实际 IP 地址(如 http://192.168.1.100:8090)。首次访问时,会进入 Halo 的初始化页面,按照向导进行配置。

2. 自定义站点名称、邮箱、 用户名、密码, 点击“初始化”。

e88cd34122e74ef188f1becedae72335-SurL.webp

3. 输入用户名和密码,登录halo,进入仪表盘界面。

b21492630cf4433eb9d84fc21bca49f1-BYZV.webp
bb3cfe06b21e45e78e7d3a79fdeb151c-WCCv.webp

4. 在 Halo 后台管理页面的 文章 模块中,点击 “新建”,编辑文章后,点击“发布”,文章发布后即可在文章列表中查看。

37e37c1b1b2040248736af751c7e5fca-ZGIS.webp

5. 本地浏览器访问 http://<NAS-IP>:8090(例如http://192.168.22.153:8090 ,查看 Halo 前台首页,您将看到发布的文章。了解更多使用教程请参考halo官方教程 用户指南 | Halo 文档

705352391f3548b5a4af65f51210a28a-MhcP.webp

常见问题

1. 容器端口冲突问题

如果 8090 端口已经被占用,可以在 docker-compose.yml 文件中将 8090:8090 修改为其他可用的端口,例如 8080:8090,然后通过 http://<NAS-IP>:8080 进行访问。

2. 数据持久化

务必保证将 Halo 的数据目录(/root/.halo)映射到 NAS 的某个文件夹(如 /volume1/halo)。这样即使容器重启或删除,博客的内容和设置不会丢失。

3. 环境变量配置

根据你的需求调整 HALO_EXTERNAL_URLTZ,确保访问地址和时区设置正确。时区不一致可能会导致博客时间显示错误,影响用户体验。

4. 容器崩溃或无法启动

如果容器无法正常启动,可以通过 Docker 查看日志。常见的错误包括端口冲突、镜像拉取失败等问题。