准备工作

  • 阿里云服务器,操作系统为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

在宝塔面板点击安装

等待安装完成

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

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

yum install python-pip -y

再执行

pip install docker-compose

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

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

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

实时查看日志(可选):

docker-compose logs -f

4、进入 Halo 管理页面

先放行端口

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

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

# docker-compose.yaml文件内容

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

再访问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/

进入之后是这个页面:

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

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

三、反向代理

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

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

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

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

Halo博客搭建小记的更多相关文章

  1. 服务器部署 halo博客项目

    2020-8-9 13:45:14 有个进阶方法!  如果静态资源加载缓慢如图片,头像  则用CDN加速  (确实很秀!) https://cdn.jsdelivr.net/gh/你的用户名/你的仓库 ...

  2. [原创]HEXO博客搭建日记

    博客系统折腾了好久,使用过Wordpress,Ghost,Typecho,其中Typecho是我使用起来最舒心的一种,Markdown编辑+轻量化设计,功能不多不少刚好,着实让我这种强迫症患者舒服了好 ...

  3. Node.js博客搭建

    Node.js 博客搭建 一. 学习需求 Node 的安装运行 会安装node,搭建node环境 会运行node. 基础模块的使用 Buffer:二进制数据处理模块 Event:事件模块 fs:文件系 ...

  4. nodejs环境 + 入门 + 博客搭建

    NodeJS:NodeJS是一个使用了Google高性能V8 引擎 的服务器端JavaScript实现.它提供了一个(几乎)完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成 ...

  5. WordPress博客搭建与问题总结

      一.WordPress博客搭建 1.安装Apache web服务器 yum install -y httpd systemctl restart httpd systemctl enable ht ...

  6. 基于Github&Hexo的个人博客搭建过程

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  7. 个人博客搭建( wordpress )

    最近同学买了一台虚机( centos7 系统 ).一个域名,让帮忙搭一个个人博客.本着简单快捷,个人博客采用 wordpress 来搭建.为了以后博客系统的迁移方便,使用 docker 来安装 wor ...

  8. Hexo博客搭建以及Next主题美化的经验之谈

    这并不是一篇博客搭建教程.内容主要包含个人对于Hexo博客搭建的心得,Next6.0主题美化的部分建议,以及摘录一些各种用于博客搭建的link. 在博客园3年6个月,确实也学到了很多,博客园也是目前为 ...

  9. Hexo博客搭建全解

    [原创,转载请附网址:http://dongshuyan.top] 欢迎来到莫与的博客,第一篇记录了一下怎么写一篇博客,以方便之后写博客~ #从配置说起下载安装Git与Node.js略过 1.安装he ...

  10. GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置

    GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置 前言 此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客.poem_of_ ...

随机推荐

  1. OpenCV 方法及应用速查表

    序  号 方    法 说    明 技术分类 1 image = cv2.imread(filename, flags) 读取图像 基本操作 2 cv2.imshow(winname, mat) 显 ...

  2. 为什么FTP会随着时间的过去而变慢?

    有人问:我在XP上有FZ客户端3.5.3,在Vista上有0.9.41服务器.通过已经很慢的连接传输大文件时,我注意到速度开始时约为40kb / s,但逐渐趋于稳定,约为20kb / s,并保持这种状 ...

  3. quartus之LPM_DIVIDE

    quartus的IP测试之LPM_DIVIDE 1.基本作用 一个用于除法的IP,可以输入除数.被除数,得到商.余值. 2.基本测试 `timescale 1ns/1ns module divide_ ...

  4. CSS设置图片根据div的大小等比例缩放

    1 .img{ 2 position: absolute; 3 background:url("../images/success.png") no-repeat; 4 width ...

  5. #拉格朗日插值,线性筛#洛谷 5442 【XR-2】约定 (加强版)

    题目 一个\(n\)个点的完全图, 第\(i\)个点到第\(j\)个点的边权是\((i+j)^k\), 现在把这个完全图变成一棵树, 求这棵树边权和的期望值 \((n\leq 10^{10000},k ...

  6. #KD-Tree,替罪羊树#洛谷 6224 [BJWC2014]数据

    题目 平面上有 \(N\) 个点.需要实现以下三种操作: 在点集里添加一个点: 给出一个点,查询它到点集里所有点的曼哈顿距离的最小值: 给出一个点,查询它到点集里所有点的曼哈顿距离的最大值. 分析 用 ...

  7. 记一次 .NET某管理局检测系统 内存暴涨分析

    一:背景 1. 讲故事 前些天有位朋友微信找到我,说他们的WPF程序有内存泄漏的情况,让我帮忙看下怎么回事?并且dump也抓到了,网上关于程序内存泄漏,内存暴涨的文章不计其数,看样子这个dump不是很 ...

  8. HMS Core手语服务荣获2022中国互联网大会“特别推荐案例”:助力建设数字社会

    11月15日,HMS Core手语服务在2022(第二十一届)中国互联网大会 "互联网助力经济社会数字化转型"案例评选活动中,荣获"特别推荐案例". 经过一年多 ...

  9. HMS Core Discovery第15期回顾长文|构筑立体世界,共造沉浸式营销

    本期直播,我们邀请到厦门大学信息学院副教授.B站会员购AR专家.蚂蚁特工创始人和HMS Core AR Engine技术专家一起探讨AR技术如何帮助企业打造沉浸式市场营销,引领商业化变革,同时为大家展 ...

  10. Windows编译PDF库:libharu

    libharu编译需要libpng,libpng依赖zlib,所以需要下载这三个库 libharu下载:http://libharu.org/ libpng下载:http://www.libpng.o ...