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.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.yaml文件放到halo文件夹中。
图2:

第四步
通过终端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 -
最后修改:2026年1月8日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://ahhf.vip/deploy-halo-blog-synology-docker-compose/
憨憨的粽子
这个部署流程挺清晰的,照着做一次就通了👍
白露未晞
求问,我M1芯片的群晖能跑这个吗?数据库会不会兼容有问题
梦境低语
@白露未晞: M1芯片应该没问题的,postgres镜像有arm64版本
夜色深处
改完密码后启动报错,说是健康检查失败,有人遇到过吗?
韩雪
之前用宝塔搞过一次,折腾了三天,这次用compose感觉简单多了
神秘黑豹子
能不能不用8090端口啊,家里路由器占了这口,改别的行不行?
梦回旧日
db文件夹挂载路径得小心,我之前挂错了,数据全没了,血泪教训
比特旋风
感觉外部地址写localhost不太对,外网访问不就崩了?
花猫小姐
@比特旋风: localhost确实要改,外网访问得填nas的IP或者域名
嗜血狂魔
halo这项目最近更新挺勤快,界面也干净,适合写技术笔记
灵墟夜语
我新手一个,第二步那个yaml文件到底放哪儿啊,没太看懂
躲在角落
@灵墟夜语: yaml就放在halo文件夹里,跟那两个子文件夹同级
远方的山影
昨天刚配好,顺顺利利,终于把博客从VPS迁到NAS上了,爽
桨声灯影
halo2文件夹权限要设对,不然启动不了
时空裁缝
之前用docker run折腾半天,compose真香
ShadowedSoul
健康检查失败可能是内存不够,加到512m试试
MourningMist
端口随便改啊,把8090换成别的就行
狂风怒吼
这教程比官方文档还详细,适合小白
Crimson Horizon
数据库密码改了记得两边都要改,不然起不来
咒语之森
路由器占端口的话,改个8091啥的呗