剪藏#剪藏#有云转晴1

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

2025 年 10 月 5 日1 分钟
分享Twitter / XTelegram微博

字数 1470,阅读大约需 8 分钟

Notion image

前言

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

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

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

视频教程

项目简介

强大易用的开源 建站工具

项目图片

Notion image

demo

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

示例1精选网站

https://www.oceandatum.com/###

Notion image

示例2企业官网

https://freeskateshome.com/

Notion image

示例3商务网站

https://www.lxware.cn/

Notion image

示例4知识库

https://weiyouquan.life/

Notion image

示例5企业博客

https://blog.fit2cloud.com/

Notion image

示例6个人网站

https://www.lylyl.cn/

Notion image

示例7导航网站

https://52xe.top/

Notion image

更多

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

主要功能

🌟 Halo2 建站工具的核心特点

1️⃣ 可插拔架构

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

  • • 支持在运行时安装或卸载插件,无需重启服务

  • • 轻松集成第三方平台,提升网站能力

  • • 提供统一的配置表单和插件开发接口,方便扩展和维护

  • • 支持自定义模型,并能自动生成 RESTful API,满足多样化业务需求

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

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

  • • 动态切换主题模板,随时调整站点风格

  • • 支持实时编辑与效果预览,所见即所得

  • • 内置多语言支持,适合国际化网站

  • • 主题可与插件结合,实现更多定制功能

3️⃣ 强大的编辑器

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

  • • 完整支持标题、段落、引用、列表、代码块等排版元素

  • • 支持拖拽或粘贴图片上传,也可轻松插入视频和多媒体内容

  • • 编辑器可通过插件扩展,为文章创作提供更强大的工具

部署方法

使用Docker安装

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

Notion image

准备条件

1)一台服务器

配置最好不低于2G内存2核CPU 2个容器占用内存情况如下将近1G的占用,使用过程中可能会增加

Notion image

我们使用莱卡云VPS来演示 需要vps的可以看以下信息 莱卡云官网[1]

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

https://github.com/halo-dev/halo

Notion image

目前有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安装脚本

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

docker-compose安装脚本

JAVASCRIPT
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文件

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

然后再新建docker-compose.yml

JAVASCRIPT
vim docker-compose.yml
JAVASCRIPT
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:

三、执行容器运行命令

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

==正常启动如下所示==

JAVASCRIPT
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端访问了

JAVASCRIPT
http://ip:8990

根据提示初始化管理员信息

Notion image

登录成功

Notion image

安装插件

Notion image

可以安装StackEdit插件实现实时预览markdown语法

Notion image

安装主题

Notion image

其他功能自行研究

五、网站备份

方法1

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

Notion image

方法2

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

备份

可以使用以下命令

JAVASCRIPT
tar -zcf halo2-bak20250912.tar.gz halo2

恢复

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

JAVASCRIPT
tar -xvf halo2-bak20250912.tar.gz

绑定域名

如需绑定域名的自行绑定

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

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

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

引用链接

[1] 莱卡云官网: https://www.lcayun.com/aff/PQCSKOCK

原文地址: https://mp.weixin.qq.com/s?__biz=MzkwMDY3NTc0OA==&mid=2247487692&idx=1&sn=8a855cdd5f883901963d3da136c60b80&chksm=c1d0f0dec89adbdcfa5ec0fe4a62551e5432da7a063a7f8ee2bb0fd3002966cec3478585de44&mpshare=1&scene=1&srcid=1005UePoToQrEza2GBUf15o7&sharer_shareinfo=112c02091e4ea179286fe9cc95f8ba97&sharer_shareinfo_first=112c02091e4ea179286fe9cc95f8ba97#rd

相关文章