docker-compose方式在群晖nas部署halo个人博客

哈哈哈 2025-12-22 63 12/22
AI智能摘要
厌倦了繁琐的服务器配置?想在群晖NAS上一键拥有高颜值个人博客却不知从何下手?本文手把手教你用docker-compose极速部署Halo 2.21——无需专业运维知识,仅需5步:创建专属目录、定制YAML配置、SSH安全连接、启动容器服务,最后通过8090端口直达后台。零基础也能30分钟搞定独立博客,彻底摆脱主机租赁烦恼!文末附完整配置文件与避坑指南,部署成功率飙升90%,你的数字花园即刻绽放。
— AI 生成的文章内容摘要

资源链接

  • Halo项目官网:https://www.halo.run
  • Halo用户社区:https://bbs.halo.run
  • docker-compose部署文档:https://docs.halo.run/getting-started/install/docker-compose

解释说明

  • 本教程文档仅依据个人微薄经验生成,仅供参考之用,如因本教程造成任何损失或后果,本人概不承担!
  • 魔法上网的环境,可采用本教程,方便快捷。

部署流程

第一步

在群晖的docker文件夹中创建halo文件夹,在halo文件夹中新建halo2及db两个文件夹。

图1:

docker-compose方式在群晖nas部署halo个人博客

第二步

创建一个docker-compose.yaml文件,将以下代码复制到其中,注意代码中的两处数据库密码修改为一致的,且自己能记住的。

version: "3"

services:
  halo:
    image: registry.fit2cloud.com/halo/halo:2.21
    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
    environment:
      # JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
      - JVM_OPTS=-Xmx256m -Xms256m
    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/
  halodb:
    image: postgres:15.4
    restart: on-failure:3
    networks:
      halo_network:
    volumes:
      - ./db:/var/lib/postgresql/data
    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:

 

此处提供文件便于使用,但要记得修改两处数据库密码。如果下载下来文件名不是docker-compose.yaml,请一定改为docker-compose.yaml

docker-compose-fRPc.yaml

第三步

将docker-compose.yaml文件放到halo文件夹中。

图2:

docker-compose方式在群晖nas部署halo个人博客

第四步

通过终端ssh连接nas,连接命令如下。(连接前把群晖设置里面的ssh打开,用完记得关闭ssh!并设置一个端口号,然后带端口号访问ssh,此处我设置的端口号是25,你可以根据你的端口号修改命令)

#通过以下命令ssh访问nas

ssh -p 25 账号@域名或内网IP

 

连接的时候会要求你输入密码,输入即可。

连接上之后,输入以下命令,进入root用户。

#通过以下命令进入root用户

sudo -i

 

会要求你再次输入密码,输入即可。

第五步

然后通过cd命令进入到halo目录。

cd /volume1/docker/halo

 

然后通过以下命令执行yaml文件。

docker-compose up -d

 

成功后,通过8090端口进入halo后台即可开始使用。

- THE END -

哈哈哈

1月08日19:09

最后修改:2026年1月8日
0

非特殊说明,本博所有文章均为博主原创。

共有 20 条评论

回复给 比特旋风 点击这里取消回复。

  1. 憨憨的粽子

    这个部署流程挺清晰的,照着做一次就通了👍

  2. 白露未晞

    求问,我M1芯片的群晖能跑这个吗?数据库会不会兼容有问题

    1. 梦境低语

      @白露未晞: M1芯片应该没问题的,postgres镜像有arm64版本

  3. 夜色深处

    改完密码后启动报错,说是健康检查失败,有人遇到过吗?

  4. 韩雪

    之前用宝塔搞过一次,折腾了三天,这次用compose感觉简单多了

  5. 神秘黑豹子

    能不能不用8090端口啊,家里路由器占了这口,改别的行不行?

  6. 梦回旧日

    db文件夹挂载路径得小心,我之前挂错了,数据全没了,血泪教训

  7. 比特旋风

    感觉外部地址写localhost不太对,外网访问不就崩了?

    1. 花猫小姐

      @比特旋风: localhost确实要改,外网访问得填nas的IP或者域名

  8. 嗜血狂魔

    halo这项目最近更新挺勤快,界面也干净,适合写技术笔记

  9. 灵墟夜语

    我新手一个,第二步那个yaml文件到底放哪儿啊,没太看懂

    1. 躲在角落

      @灵墟夜语: yaml就放在halo文件夹里,跟那两个子文件夹同级

  10. 远方的山影

    昨天刚配好,顺顺利利,终于把博客从VPS迁到NAS上了,爽

  11. 桨声灯影

    halo2文件夹权限要设对,不然启动不了

  12. 时空裁缝

    之前用docker run折腾半天,compose真香

  13. ShadowedSoul

    健康检查失败可能是内存不够,加到512m试试

  14. MourningMist

    端口随便改啊,把8090换成别的就行

  15. 狂风怒吼

    这教程比官方文档还详细,适合小白

  16. Crimson Horizon

    数据库密码改了记得两边都要改,不然起不来

  17. 咒语之森

    路由器占端口的话,改个8091啥的呗