Halo CMS 搭建

又一个 CMS 系统,(使用 docker)搭建起来很快,官方文档没有坑

使用 Halo 2.x

环境

  • Debian 11
    • Docker compose

参考

步骤

启动 Halo 容器

创建 Halo 目录并新建 Docker compose 配置文件

mkdir halo
cd halo
vim docker-compose.yml

在 docker-compose.yml 中写入以下内容(这里使用 postgresql 数据库)

version: "3"

services:
  halo:
    image: halohub/halo:2.1.0
    container_name: halo
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./:/root/.halo2
    ports:
      - "127.0.0.1:8090:8090" # 不监听外部端口
    command:
      - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
      - --spring.r2dbc.username=halo
      # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=[password]
      - --spring.sql.init.platform=postgresql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://[IP:8090 or Domain]/
      # 初始化的超级管理员用户名
      - --halo.security.initializer.superadminusername=[Halo admin username]
      # 初始化的超级管理员密码
      - --halo.security.initializer.superadminpassword=[Halo admin password]
  halodb:
    image: postgres:latest
    container_name: halodb
    restart: on-failure:3
    networks:
      halo_network:
    volumes:
      - ./db:/var/lib/postgresql/data
    ports:
      - "127.0.0.1:5432:5432"
    healthcheck:
      test: [ "CMD", "pg_isready" ]
      interval: 10s
      timeout: 5s
      retries: 5
    environment:
      - POSTGRES_PASSWORD=[password]
      - POSTGRES_USER=halo
      - POSTGRES_DB=halo
      - PGUSER=halo

networks:
  halo_network:

启动容器

docker-compose up -d

配置 Nginx

在 /etc/nginx/sites-available 下新建配置文件 halo.conf,写入以下内容

upstream halo {
  server 127.0.0.1:8090;
}
server {
  listen 80;
  # listen [::]:80; #ipv6
  server_name [IP or Domain];
  client_max_body_size 1024m;
  location / {
    proxy_pass http://halo;
    proxy_set_header HOST $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

新建软连接

ln -s /etc/nginx/sites-available/halo.conf /etc/nginx/sites-enabled/

测试并重载 Nginx

nginx -t
nginx -s reload

效果

初始化前

使用管理员账户登录后台并初始化(设置网站名)

初始化后

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据