建站 3 0

    Halo建站--五分钟搭建自己的博客

    Halo博客搭建,快速搭建属于自己的博客.

    写在开头

      拥有了一台服务器,但是不知道要怎么玩?
    不如来搭建一个属于自己的博客吧!可以将自己有用的经验以及有趣的经历分享给大家。
    我选择的是Halo快速建站,只需5分钟快速拥有属于自己的博客。

      Halo[官网直达]是一个强大易用的开源建站工具,并且 代码开源 、易于部署 。而且到目前更新到2.10版本已经内置应用市场,可以方便的选择需要的插件以及好看的主题。

    dashboard-2023-12-03.webp

    Docker Compose部署Halo

      先检查vps上是否已经安装docker comopse

    docker-compose --version

      如果显示类似Docker Compose version v2.21.0表示安装成功。
      如果没有安装好,那么前往博客VPS安装Docker/Docker Compose快速部署。

    创建文件夹 & yml文件

    1. 新建halo文件夹路径为/root/docker-data/halo,本博客所有docker部署的文件同一放在/root/docker-data文件夹下,方便统一管理。
    mkdir -p /root/docker-data/halo
    1. 前往halo文件夹
    cd /root/docker-data/halo

      这里我选择创建 Halo + MySQL 的实例,官网还有创建 Halo + PostgreSQL 的实例和仅创建 Halo 实例(使用默认的 H2 数据库,不推荐用于生产环境,建议体验和测试的时候使用)两种方式,大家可以前往官方文档自行查看。

    [window type="green" title="注意⚠️"]

    1. halo默认使用8090端口,先检查端口是否被占用。检查方式:输入lsof -i:8090
      如果没有返回,则表示端口没有被占用。
      如果出现lsof: command not found则输入:apt install lsof #安装 lsof
    2. 下面代码之中 #外部访问地址,请根据实际需要修改 --halo.external-url=http://localhost:8090/ 部分大家可以把url改为自己的域名。
    3. MySQL 的密码可以修改,但是要与下方MYSQL_ROOT_PASSWORD保持一致。(这个现在不急着改但是之后一定要改,小心人家直接登陆你数据库直接删没了)
    4. 如果是在大厂买的服务器(腾讯云,阿里云,微软云,亚马逊云),要检查一下,在网页控制台上打开8090端口。
      [/window]
    1. 创建 docker-compose.yaml
    vim docker-compose.yaml

      看完上面三条注意事项后,英文输入法,按下i将下面代码粘贴到docker-compose.yaml文件之中,英文输入法下输入:wq回车即可。

    version: "3"
    
    services:
      halo:
        image: halohub/halo:2.10
        container_name: halo
        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
        command:
          - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
          - --spring.r2dbc.username=root
          # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
          - --spring.r2dbc.password=o#DwN&JSa56
          - --spring.sql.init.platform=mysql
          # 外部访问地址,请根据实际需要修改
          - --halo.external-url=http://localhost:8090/
    
      halodb:
        image: mysql:8.1.0
        container_name: halodb
        restart: on-failure:3
        networks:
          halo_network:
        command: 
          - --default-authentication-plugin=caching_sha2_password
          - --character-set-server=utf8mb4
          - --collation-server=utf8mb4_general_ci
          - --explicit_defaults_for_timestamp=true
        volumes:
          - ./mysql:/var/lib/mysql
          - ./mysqlBackup:/data/mysqlBackup
        ports:
          - "3306:3306"
        healthcheck:
          test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
          interval: 3s
          retries: 5
          start_period: 30s
        environment:
          # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
          - MYSQL_ROOT_PASSWORD=o#DwN&JSa56
          - MYSQL_DATABASE=halo
    
    networks:
      halo_network:

      启动 Halo 服务

    docker-compose up -d

    反向代理

      如果要进行反向代理可以查看使用docker compose部署Nginx Proxy Manager进行反向代理一文进行部署。

      部署完成之后,现在就可以通过IP:8090进入到博客后台,进行一些初始化设置了。

      这里是Halo应用市场官网,上面安装部署的Halo2.10内也已经安装好应用市场,大家可以根据自己喜好进行选择有趣的插件和主题。

    更新Halo

      前往~/halo

    cd /root/docker-data/halo

      修改 docker-compose.yaml 中配置的镜像版本。

    vim docker-compose.yaml
    services:
      halo:
        image: halohub/halo:2.10 #更新为想要的版本
        container_name: halo
    docker-compose up -d

    备份Halo

      在 Console 中,点击左侧菜单的 备份,进入备份页面。

      点击右上角的 创建备份 按钮,即可创建一个新的备份请求,需要注意的是,创建备份请求并不会立即开始备份,而是会在后台异步执行,因此需要等待一段时间才能看到备份的结果。

    删除Halo

      删除 ~ /.halo 文件夹

    rm -rf /root/docker-data/halo  # 完全删除映射到本地的数据