holo 服务部署

1. 准备工作

首先,通过 SSH 连接到你的服务器,创建一个专门存放 Halo 数据的目录:

mkdir -p ~/halo && cd ~/halo

2. 创建 Docker Compose 配置文件

在该目录下新建一个 docker-compose.yaml 文件:

nano docker-compose.yaml

然后将以下配置粘贴进去,(PostgreSQL 数据库):

version: "3"

services:
  halo:
    image: halohub/halo:2.20  # 2.20为版本号
    container_name: halo
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo-network:
    volumes:
      - ./halo2:/root/.halo2
    ports:
      - "8090:8090"
    command:
      # 这里的配置将 Halo 连接到下方的 PostgreSQL 数据库
      - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb:5432/halo
      - --spring.r2dbc.username=halo
      - --spring.r2dbc.password=halo_password_123  # 建议修改为更复杂的密码
      - --spring.sql.init.platform=postgresql
      - --halo.external-url=http://你的服务器IP:8090/

  halodb:
    image: postgres:15-alpine
    container_name: halodb
    restart: always
    networks:
      halo-network:
    volumes:
      - ./db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U halo"]
      interval: 10s
      timeout: 5s
      retries: 5
    environment:
      - POSTGRES_PASSWORD=halo_password_123   # 和上面的密码必须一致
      - POSTGRES_USER=halo                    # 和上面的用户名必须一致
      - POSTGRES_DB=halo

networks:
  halo-network:

3. 启动部署

在目录下执行启动命令:

docker compose up -d

4. 检查运行状态

在终端输入命令查看容器是否稳定运行:

docker ps

看到 halo 和 halodb 两个容器的 STATUS 都是 Up,就说明部署成功。

5. 访问与初始化

开放端口:确保你在服务器防火墙(或者云商的后台安全组)中开启了 8090 端口。

开始安装:在浏览器访问 http://你的服务器IP:8090/console。