1. Introduction

Halo is a powerful, modern open-source blog/CMS system developed with Java, Vue, and Spring Boot.
Github: https://github.com/halo-dev/halo
Official Website: https://halo.run/

2. Features

Open Source

  • Completely free, open-source, and actively maintained on GitHub
  • Highly stable and reliable with 107 versions released so far

Easy to deploy

  • One-command deployment
  • Docker deployment
  • Separated program and user configurations
  • Lower migration and backup costs


  • Content API and Admin API provided for single-page templates, WeChat applets, and plug-ins

Template System

  • Flexible template system with customizable configurations, online installation, and updates
  • Convenient custom theme development for visually appealing designs

Accessory System

  • Supports local and cloud storage options, including Alibaba Cloud OSS, UPYUN OSS, Qiniu Cloud OSS/SM.MS

Comment System

  • Vue-based commenting plugin with simple integration
  • Built JS file included for quick and easy implementation on webpages
  • Customizable commenting components

3. Configuration

My VPS Configuration
CPU2 cores
Memory2.5 GB
Disk60 GB
OSUbuntu 22.04

4. Installation

BT Panel: a secure and efficient server operation and maintenance panel

Connect to your Linux server using an SSH tool, such as PuTTY SSH terminal, mount the disk and execute the corresponding commands according to your system to start the installation (panel installation takes about 2 minutes to complete).

Centos Installation Script:

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

Ubuntu/Deepin Installation Script:

wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

Debian Installation Script:

wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec

After successfully installing the BT panel, retrieve its default information by executing the following command:

bt default

To access the BT Panel, use the external panel address, username, and password provided in the default information. If you cannot access the panel, release the following panel port [37370] in the security group.

To install Nginx and Docker, you have the option:

  • Navigate to software store

  • Use the following command:

  # install nginx
  sudo apt install nginx
  # install docker
  sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  # Verify the installed docker version and its components
  docker version
  # Enable the docker service to start automatically on system boot
  systemctl enable docker.service

Congratulations! You are now ready to begin the installation of Halo!

# pull docker image of Halo 2.2.0
docker pull halohub/halo:2.2.0

# create a new docker container
# IMPORTANT! Modify external-url, superadminuser, and superadminpassword
docker run \
  -it -d \
  --name halo \
  -p 8090:8090 \
  -v ~/.halo2:/root/.halo2 \
  halohub/halo:2.2.0 \
  --halo.external-url=http://localhost:8090/ \
  --halo.security.initializer.superadminuser=admin \