首页 > 其他分享 >Halo博客搭建小记

Halo博客搭建小记

时间:2024-05-04 15:45:44浏览次数:15  
标签:compose 8090 -- Halo docker 小记 halo 搭建

准备工作

  • 阿里云服务器,操作系统为CentOS 7.9.2009 x86_64(Py3.7.9)
  • 宝塔面板
  • Nginx 1.24.0(用于反向代理)
  • 已备案的域名
  • ssl证书(https访问)

参考官方文档,这里使用 Docker Compose 进行部署

官方文档:使用 Docker Compose 部署 | Halo 文档

一、安装Docker和Docker Compose

1、使用宝塔面板Docker

在宝塔面板点击安装

image-20240503154101170

image-20240503154134650

等待安装完成

image-20240503154203868

2、使用ssh远程命令安装Docker Compose

安装Docker-Compose之前,请先安装python-pip

yum install python-pip -y

再执行

pip install docker-compose

虽然报错了,但是显示还是安装成功了

image-20240503155620945

使用以下命令可以查看安装的版本

docker -v
docker-compose -v

二、创建容器组

1、新建文件夹

这里选择在home中新建halo文件夹

# 创建文件夹
mkdir /home/halo
# 进入到目录
cd /home/halo

# 也可以直接使用宝塔面板图形化操作

注意:后续操作中,Halo 产生的所有数据都会保存在这个目录,请妥善保存。

2、创建 docker-compose.yaml

在/home/halo中新建docker-compose.yaml文件,文件内容如下(这里选择的是创建 Halo + MySQL 的实例:

version: "3"

services:
  halo:
    image: halohub/halo:2.15
    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
    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
    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 实例(使用已有外部数据库,MySQL 为例))这种方法。

3、启动 Halo 服务

注意,以下两条命令要在halo目录下执行。

docker-compose up -d

image-20240503161841135

实时查看日志(可选):

docker-compose logs -f

4、进入 Halo 管理页面

先放行端口

注意:访问前需要再阿里云安全组中放行端口,需要放行的端口就是docker-compose.yaml中外网访问的那个端口,这里为8090.

最好是在阿里云和宝塔面板的安全组中都给放行,不然可能通过http://ip:8090时访问不了。

# docker-compose.yaml文件内容

# 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8090/

image-20240503162102489

image-20240503163412527

再访问Halo 管理页面

进入Halo 管理页面

# 浏览器网址栏输入ip+端口号
# 例如:
192.168.1.1:8090

# 注意:因为是用http访问的,如果无法访问时浏览器地址栏中是https,那就把s删掉,
# 例如:
https://192.168.1.1:8090/
删掉s,使用http访问
http://192.168.1.1:8090/

进入之后是这个页面:

接下来就可以按照提示进行初始化了

image-20240503164354646

现在就可以使用halo博客了,但是只能通过ip+端口的方式访问。如果有已备案的域名的话,可以添加反向代理,通过域名访问。

三、反向代理

使用宝塔面板,方便快捷。

依次点击,网站->PHP项目->添加站点,输入域名后点击确定创建站点。

image-20240503165915730

创建好站点后,点击右边的设置,找到反向代理,添加反向代理。

image-20240503170234135

本来反向代理设置好就可以用域名访问了,但是我这里不知道什么原因,需要部署ssl证书之后才能访问

image-20240503170216912

标签:compose,8090,--,Halo,docker,小记,halo,搭建
From: https://www.cnblogs.com/chuangblog/p/18172379

相关文章

  • 从零搭建Prometheus监控报警系统
    从零开始搭建Prometheus自动监控报警系统 从零搭建Prometheus监控报警系统什么是Prometheus?Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是GoogleBorgMon监控系统的开源版本。2016年由Google发起Linux基金会旗......
  • GeoServer开发环境搭建
    前言本文用于记录GeoServer开发环境的搭建过程通过GeoServer发布计划可以看到,在2.23.x版本开始,会移除对jdk1.8的支持。那么当前我们会选择2.22.x版本进行研究环境JAVA:1.8或11MavenGitAction获取源码gitclonegit://github.com/geoserver/geoserver.gitgeoserver#......
  • 阿里云ECS服务器快速搭建企业建站环境
    截止目前,wdCP是小编用过最适合菜鸟的一套通过WEB控制和管理服务器的linux服务器管理系统以及虚拟主机管理系统。安装步骤如下:第一步:远程下载安装压缩包wgethttp://dl.wdlinux.cn/files/lanmp_v3.1.tar.gz第二步:解压缩包tarzxvflanmp_v3.1.tar.gz第三步:执行安装shlanmp.......
  • [附视频教程]DNF_地下城与勇士_单机+联网 搭建架设教程
    搭建源码文件+视频教程联网:https://githubs.xyz/boot/?app=14单机:https://githubs.xyz/boot/?app=15注意:请不要将游戏进行商业化,一切后果概不负责。仅供单机,好友之间进行娱乐!!注意:请不要将游戏进行商业化,一切后果概不负责。仅供单机,好友之间进行娱乐!!注意:请不要将游戏进行商......
  • C# 搭建一个 基于ISqlSugarClient 三层架构框架 涉及数据库仓储 然后中间又有业务逻辑
    要在C#中搭建基于ISqlSugarClient的三层架构框架,你需要定义数据访问层(DAL)、业务逻辑层(BLL)和表现层(UI)。下面是一个完整的例子,涉及数据库仓储、业务逻辑层,以及依赖注入。这个例子基于ASP.NETCoreMVC构建,使用ISqlSugarClient来处理数据访问。这个例子中,我们将使用User作为一个简单......
  • 【网络知识系列】一个详细完整的公司局域网搭建案例
    什么是局域网❓所谓局域网(LocalAreaNetwork,简称LAN),就是用于将有限范围内(例如一个实验室、一层办公楼或者校园)的各种计算机、终端与外部设备互联成网。那公司局域网怎么建立❓今天就先来了解下不同规模企业网络组建方式,以及公司局域网搭建,要怎么搞❓一、不同规模的企业,怎么......
  • 搭建MongoDB分片集群
    目录一、什么是分片二、分片集群1、组件构成2、分片集群内各组件间交互三、数据如何切分四、分片策略1、哈希分片2、范围分片五、分片集群架构六、搭建分片集群1、涉及主机2、所有主机安装MongoDB3、分片节点副本集的创建3.1、第一套副本集shard13.1.1、准备存放数据和日志的目录3......
  • Hydro OJ搭建全过程
    第一步:注册服务器如果你和我一样,是一名新手党,想先免费调试自己的站点,那我教你免费申请一个服务器。在这里安利一下阿贝云,一个免费的云服务器和免费的云虚拟主机提供方,对于新手党来说确实不错。注册完一个账户以后,你需要支付0.3元做一个实名认证,如果实名认证成功了大概率会开......
  • 【网络通信】Windows搭建RTMP视频流服务器(含推流/拉流详细教程)
    ​        RTMP(Real-TimeMessagingProtocol)是一种用于实时流媒体传输的网络协议,主要用于传输音频、视频和数据。RTMP最初是由AdobeSystems公司开发的,用于其Flash平台和AdobeMediaServer,但随着技术的发展和开源社区的推动,RTMP已经成为了一个广泛使用的流媒体传输协......
  • kubernetes的搭建(一)
    集群的搭建集群的类型kubunetes的集群类型大致上分为两类:一主多从和多主多从。一主多从:一台master节点和多台node节点,搭建简单,但是有单机故障的风险,适用于测试环境多主多从:多台master节点和多台node节点,搭建麻烦,安全性高,适用于生产环境为了测试简单,本次搭建的是:一主......