标签搜索

目 录CONTENT

文章目录

Halo2建站全攻略:Docker 部署 + 网站备份教程

yyzq
2025-09-12 / 0 评论 / 1 点赞 / 44 阅读 / 1,782 字

前言

在数字化时代,拥有一个独立、灵活又安全的个人网站,不仅能展示内容,还能让你的创作更好地被世界看见。Halo2 作为一款强大易用的开源建站工具,凭借简洁优雅的界面、优秀的插件生态和活跃的社区支持,成为众多开发者和博主的首选。

本教程将带你从零开始,手把手完成 Halo2 的 Docker 部署,同时详细讲解如何为网站做好 备份与恢复,让你在享受极简建站体验的同时,轻松保障数据安全。无论你是想打造个人博客、技术文档平台,还是为项目搭建展示站点,这篇“全攻略”都能帮你快速上手并稳定运行属于你自己的网站。

接下来,让我们一步步探索如何用最简洁的方式,搭建一个高效又可靠的 Halo2 网站吧!

项目简介

强大易用的开源
建站工具

项目图片

image-1757642607904

demo

环境地址:https://demo.halo.run
后台地址:https://demo.halo.run/console
用户名:demo
密码:P@ssw0rd123…

示例1精选网站

https://www.oceandatum.com/###
image-1757643013545

示例2企业官网

https://freeskateshome.com/
image-1757643346600

示例3商务网站

https://www.lxware.cn/
image-1757643407668

示例4知识库

https://weiyouquan.life/
image-1757643455143

示例5企业博客

https://blog.fit2cloud.com/
image-1757643491709

示例6个人网站

https://www.lylyl.cn/
image-1757643549723

示例7导航网站

https://52xe.top/
image-1757643625153

更多

https://www.halo.run/showcase/websites?tag=personal-website

主要功能

🌟 Halo2 建站工具的核心特点

1️⃣ 可插拔架构

Halo2 采用灵活的 可插拔架构,各功能模块之间耦合度低,方便按需组合:

  • 支持在运行时安装或卸载插件,无需重启服务
  • 轻松集成第三方平台,提升网站能力
  • 提供统一的配置表单和插件开发接口,方便扩展和维护
  • 支持自定义模型,并能自动生成 RESTful API,满足多样化业务需求

2️⃣ 功能丰富的主题机制

Halo2 为前台界面提供完善的 主题模板系统,让网站外观更自由:

  • 动态切换主题模板,随时调整站点风格
  • 支持实时编辑与效果预览,所见即所得
  • 内置多语言支持,适合国际化网站
  • 主题可与插件结合,实现更多定制功能

3️⃣ 强大的编辑器

Halo2 自带一款功能全面的 富文本编辑器,让创作体验更轻松:

  • 完整支持标题、段落、引用、列表、代码块等排版元素
  • 支持拖拽或粘贴图片上传,也可轻松插入视频和多媒体内容
  • 编辑器可通过插件扩展,为文章创作提供更强大的工具

部署方法

使用Docker安装

本教程使用docker的方式安装部署,简单便捷
164b6ac419e23bc5390dc46601a202bf

准备条件

1)一台服务器

配置最好不低于2G内存2核CPU
2个容器占用内存情况如下将近1G的占用,使用过程中可能会增加
image-1757647087196
我们使用莱卡云VPS来演示
需要vps的可以看以下信息
莱卡云官网

2)本项目使用到的开源项目

https://github.com/halo-dev/halo
image-1757643826863
目前有36.9k stars
更多功能或者二次修改可以访问开源项目地址

3)域名(可选)

域名可以根据自己的需求绑定

①《vps上搭建》

一、Docker环境部署

在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04

推荐直接用一键脚本

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

二、创建docker-compose.yml文件

mkdir halo2;cd halo2 #创建一个目录,并进入此目录

然后再新建docker-compose.yml

vim docker-compose.yml
services:
  halo:
    image: registry.fit2cloud.com/halo/halo:2
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./halo2:/root/.halo2
    ports:
      - "8990:8090"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s
    environment:
      - JVM_OPTS=-Dreactor.bufferSize.small=1024        # JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
    command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
      - --spring.r2dbc.username=root
      - --spring.r2dbc.password=o#DwN&JSa56112233         # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.sql.init.platform=mysql
      - --halo.external-url=https://www.ywsj.tk          # 外部访问地址,请根据实际需要修改

  halodb:
    image: mysql:8.1.0
    restart: on-failure:3
    networks:
      halo_network:
    command:
      - --default-authentication-plugin=caching_sha2_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --explicit_defaults_for_timestamp=true
    volumes:
      - ./mysql:/var/lib/mysql
      - ./mysqlBackup:/data/mysqlBackup
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
      interval: 3s
      retries: 5
      start_period: 30s
    environment:
      - MYSQL_ROOT_PASSWORD=o#DwN&JSa56112233            # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
      - MYSQL_DATABASE=halo

networks:
  halo_network:

三、执行容器运行命令

docker-compose up -d #运行容器
docker-compose ps  #查看是否开启成功

正常启动如下所示

docker-compose ps
NAME             IMAGE                                COMMAND                  SERVICE   CREATED          STATUS                             PORTS
halo2-halo-1     registry.fit2cloud.com/halo/halo:2   "sh -c 'java -Dreact…"   halo      43 seconds ago   Up 20 seconds (health: starting)   0.0.0.0:8990->8090/tcp, [::]:8990->8090/tcp
halo2-halodb-1   mysql:8.1.0                          "docker-entrypoint.s…"   halodb    44 seconds ago   Up 42 seconds (healthy)            3306/tcp, 33060/tcp

四、打开web页面使用

成功以后需要打开自己相应的端口8990)防火墙就可以web端访问了

http://ip:8990

根据提示初始化管理员信息
image-1757645464242
登录成功
image-1757645534609
安装插件
image-1757645592684
可以安装StackEdit插件实现实时预览markdown语法
image-1757645950432
安装主题
image-1757646185961

其他功能自行研究

五、网站备份

方法1

直接使用官方的备份方法-备份和恢复
image-1757646365932

方法2

直接在服务器使用tar命令打包halo2整个目录

备份

可以使用以下命令

tar -zcf halo2-bak20250912.tar.gz halo2

恢复

在另一台服务器上解压恢复即可

tar -xvf halo2-bak20250912.tar.gz

绑定域名

如需绑定域名的自行绑定

视频教程

B站

YouTube

绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

欢迎关注我们的微信公众号!
微信公众号

1

评论区