侧边栏壁纸
博主头像
Setyg的博客

当秋风染红落叶的时候,就是新生~

  • 累计撰写 86 篇文章
  • 累计创建 66 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

自建博客教程,Halo启程

Setyg
2026-08-17 / 0 评论 / 1 点赞 / 19 阅读 / 0 字

使用 Docker Compose 部署Halo

使用社区版镜像:# 社区版 halohub/halo:<version>

  1. 在系统任意位置创建一个文件夹,此文档以 ~/halo 为例。

    mkdir ~/halo && cd ~/halo

    信息

    注意:后续操作中,Halo 产生的所有数据都会保存在这个目录,请妥善保存。

  2. 创建 docker-compose.yaml

    此文档提供几种场景的 Docker Compose 配置文件,请根据你的需要选择一种。

services:
  halo:
    image: registry.fit2cloud.com/halo/halo-pro:2.26
    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:
  1. 信息

    此示例的 PostgreSQL 数据库容器默认没有设置端口映射,如果需要在容器外部访问数据库,可以自行在 halodb 服务中添加端口映射,PostgreSQL 的端口为 5432。

    运行参数详解:

    参数名

    描述

    spring.r2dbc.url

    数据库连接地址,详细可查阅下方的 数据库配置

    spring.r2dbc.username

    数据库用户名

    spring.r2dbc.password

    数据库密码

    spring.sql.init.platform

    数据库平台名称,支持 postgresql、mysql、mariadb、h2

    halo.external-url

    外部访问链接,如果需要在公网访问,需要配置为实际访问地址

    数据库配置:

    链接方式

    链接地址格式

    spring.sql.init.platform

    PostgreSQL(推荐)

    r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE}

    postgresql

    MySQL

    r2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE}

    mysql

    MariaDB

    r2dbc:pool:mariadb://{HOST}:{PORT}/{DATABASE}

    mariadb

    H2 Database

    r2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE

    h2

    信息

    为了保持部署流程的简洁,此文档仅提供了必要的配置示例,完整的配置选项列表可查阅:配置说明

  2. 启动 Halo 服务

    docker compose up -d

    实时查看日志:

    docker-compose logs -f
  3. 用浏览器访问 /console 即可进入 Halo 管理页面,首次启动会进入初始化页面。

    提示

    如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 http://ip:端口号 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。

  4. 激活许可证,可以参考 许可证激活 进行激活,社区版无需此步骤。

1
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区