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

哈哈哈 2025-12-22 187 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

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

共有 22 条评论

回复给 咒语之森 点击这里取消回复。

  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啥的呗

  18. 无意识之渊

    compose部署确实省心,一键搞定所有依赖

  19. 金光护体

    外部地址那里建议用实际IP,不然反向代理会有问题