Halo博客搭建

Mr.ZhaoAbout 3 min

1. 购买服务器

需要购买服务器,内存至少 1G,这里以腾讯云为例,进入官网腾讯云open in new window选购自己的服务器即可,推荐轻量应用服务器。购买以后装入 centos 系统

Halo博客搭建01.png
Halo博客搭建01.png

防火墙开放 8090 端口

Halo博客搭建02.png
Halo博客搭建02.png

2. 安装Docker

以下为 centos 系统安装教程,其他系统请参照官网教程官网open in new window

2.1 登录自己的服务器

Halo博客搭建03.png
Halo博客搭建03.png

2.2 卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.3 更新、安装必备软件

apt-get update && apt-get install -y wget vim

2.4 获取安装包

sudo yum install -y yum-utils

2.5 设置镜像仓库

官方镜像:(比较慢,不推荐)

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

阿里镜像仓库 :(推荐)

sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.6 安装docker

安装前先更新 yum 软件包索引

yum makecache fast

安装 docker-ce(社区版-免费的)

sudo yum install docker-ce docker-ce-cli containerd.io

2.7 启动docker

sudo systemctl start docker

2.8 判断是否成功安装docker

docker version

2.9 设置docker开机自启动

systemctl enable docker

3. 使用Docker部署 Halo

建议查看官方教程

使用 Docker 部署 Haloopen in new window

4. 进入后台安装

通过访问 IP:端口号即可访问安装引导界面

安装完即可

5. 购买域名 (可选)

进入腾讯云官网腾讯云open in new window选购

注意:服务器与域名最好选用同一厂商,不然可能会莫名报错,配置失败

添加域名解析,如图

Halo博客搭建04.png
Halo博客搭建04.png

6. 反向代理 (可选)

6.1 安装Docker Compose

6.1.1 下载安装

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

推荐使用下面这个,国内访问较快

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

6.1.2 给执行权限

sudo chmod +x /usr/local/bin/docker-compose

6.1.3 查看docker-compose版本

docker-compose --version

6.2 部署Nginx Proxy Manager服务

6.2.1 创建一个与此类似的 docker-compose.yml文件

mkdir ~/npm #创建一个目录用来安装此服务

cd ~/npm #进入目录
vim docker-compose.yml  #将以下代码粘贴到里面然后保存退出
version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

6.2.2 在当前目录运行以下命令安装此服务

sudo docker-compose up -d   #部署服务

6.2.3 安装完以后进入81端口登录

默认登陆名和密码:

Email: admin@example. com

Password: changeme

按如下图设置即可

Halo博客搭建05.gif
Halo博客搭建05.gif

最后就可以通过域名进行访问了

7. 开始写博客

配置好图床使用 GitHub 图床或阿里云对象存储搭建图床,使用 MarkDown 语法就可以愉快的发布文章啦!