Linux超简单部署个人博客

1 安装halo

1.1 切换到超级用户

 sudo -i

1.2 新建halo文件夹

 mkdir ~/halo && cd ~/halo

1.3 编辑docker-compose.yml文件

 vim ~/halo/docker-compose.yml

英文输入法下,按 i

version: "3"services:halo:image: halohub/halo:2.10container_name: halorestart: on-failure:3depends_on:halodb:condition: service_healthynetworks:halo_network:volumes:- ./halo2:/root/.halo2ports:- "8090:8090"healthcheck:test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]interval: 30stimeout: 5sretries: 5start_period: 30scommand:- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo- --spring.r2dbc.username=root# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。- --spring.r2dbc.password=qazwsx06210930- --spring.sql.init.platform=mysql# 外部访问地址,请根据实际需要修改- --halo.external-url=http://localhost:8090/halodb:image: mysql:8.1.0container_name: halodbrestart: on-failure:3networks:halo_network:command: - --default-authentication-plugin=caching_sha2_password- --character-set-server=utf8mb4- --collation-server=utf8mb4_general_ci- --explicit_defaults_for_timestamp=truevolumes:- ./mysql:/var/lib/mysql- ./mysqlBackup:/data/mysqlBackupports:- "3306"healthcheck:test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]interval: 3sretries: 5start_period: 30senvironment:# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值- MYSQL_ROOT_PASSWORD=qazwsx06210930- MYSQL_DATABASE=halonetworks:halo_network:

注意:

1.修改域名:

docker-compose.yml里面的--halo.external-url=http://localhost:8090/改为--halo.external-url=https://域名(手动修改)

2.修改数据库密码(手动修改)

3.数据库端口原文档为"3306:3306",上方docker-compose.yml为"3306",作用是不开放公网访问数据库(安全安全安全)

image-20231014001544180

修改完yaml代码,然后复制粘贴到输入框

按ESC键,英文输入法下输入wq,按enter键完成保存

1.4 启动halo服务

 docker-compose up -d

image-20231014002101385

1.5.实时查看日志

 docker-compose logs -f

2 配置反向代理

2.1 安装Nginx Proxy Manager

创建docker-compose.yml

 mkdir -p ~/data/docker_data/nginxproxymanager   # 创建一个 npm 的文件夹​cd ~/data/docker_data/nginxproxymanager    # 进入该文件夹​vi docker-compose.yml

英文模式下,输入i,进入编辑模式,然后粘贴下面的内容

version: '3'
services:app:image: 'jc21/nginx-proxy-manager:latest'restart: unless-stoppedports:- '80:80'  # 保持默认即可,不建议修改左侧的80- '81:81'  # 冒号左边可以改成自己服务器未被占用的端口- '443:443' # 保持默认即可,不建议修改左侧的443volumes:- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中- ./letsencrypt:/etc/letsencrypt  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中

在英文输入法下,按一下Esc键 ,然后 输入 :wq,按以下enter键,保存yml文件

2.2 启动Nginx Proxy Manager

 docker-compose up -d

image-20231014004721503

2.3 登录Nginx Proxy Manager

启动成功,使用http://ip:81访问

image-20231014005824747

默认账号为:admin@example.com

默认密码为:changeme

2.4 设置反向代理

image-20231014010315416

  • Domain Names:填我们 Halo 网站的域名,首先记得做好 DNS 解析,把域名绑定到我们的服务器的 IP 上

  • Scheme:默认 即可,除非你有自签名证书http

  • Forward Hostname/IP:填入服务器的 IP,或者 Docker 容器内部的 IP(如果 NPM 和 Halo 搭建在同一台服务器上的话)

  • Forward Port:填入 Halo 映射出的端口,这边默认是8090

  • Cache Assets:缓存,可以选择打开

  • Block Common Exploits: 阻止常见的漏洞,可以选择打开

  • Websockets Support:WS 支持,可以选择打开

  • Access List: 这个是 NPM 自带的一个限制访问功能,这边我们不管,后续可以自行研究。

注:此解释摘抄于此halo文档

docker内部ip查询方法:

 ip addr show docker0

如图所示,docker内部ip为:172.17.0.1

image-20231014013418434

2.5 申请SSL证书

image-20231014011103960

反向代理配置完成

3 halo使用教程

3.1 初始化halo

输入网址:https://域名/console,跳转到初始化界面

设置站点名称,邮箱,账户密码,以后都是通过这个账户密码进入后台管理博客

image-20231014013619564

点击初始化按钮后,等待初始化完成,刷新后出现以下界面,即代表初始化完成

image-20231014021749042

点击左上角,即可跳转到博客前台,这是halo博客的默认主题:theme-earth

image-20231014021834732

3.2 安装主题

1.应用市场:halo提供安装主题功能,可以安装自己喜欢的主题

2.上传安装:上传下载好的halo主题包,上传安装

3.远程下载:输入链接,远程下载主题包

4 主题推荐

4.1 极简主题

Butterfly主题

简洁而不简单,好看,日常博客够用,追求更多丰富的功能还得敲打敲打作者

这是我之前用过的一款比较好看的hexo主题,没有想到有大佬移植到halo,在hexo中,配置主题是一个非常耗时间的工作,迁移到halo后,只需要在后台管理配置即可

预览:小红 (dhjdd.cn)

butterfly主题预览效果图

jeo 3.0主题

简洁界面且功能丰富,可操作性强

与Butterfly相比,布局更加自由,定制性更好

预览:Jiewen’blog

jeo3.0主题预览效果图

4.2 多彩主题

Hao主题

win11风格,功能丰富

这款主题功能也非常丰富,相对比之下我更喜欢简洁一点的风格

Hao主题预览效果图

总结:想要简洁方便选择butterfly,想要界面简洁功能多选择jeo 3.0,想要体验win11风格,功能丰富选Hao

原文链接:ubuntu部署Halo博客 | Zeek实验室

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/207762.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【资深硬件工程师总结-千兆以太网设计指南】

文章目录 01通用PCB布线指南02标志焊盘中的接地过孔区示例03EMI注意事项04ESD注意事项 资深硬件工程师总结-千兆以太网设计指南 本应用笔记旨在帮助客户使用Microchip的10/100/1000 Mbps以太网器件系列设计PCB。本文档提供有关PCB布线的建 议, PCB 布线是保持信号完…

机器学习第12天:聚类

文章目录 机器学习专栏 无监督学习介绍 聚类 K-Means 使用方法 实例演示 代码解析 绘制决策边界 本章总结 机器学习专栏 机器学习_Nowl的博客-CSDN博客 无监督学习介绍 某位著名计算机科学家有句话:“如果智能是蛋糕,无监督学习将是蛋糕本体&a…

【C++】vector的介绍与使用

🧑‍🎓个人主页:简 料 🏆所属专栏:C 🏆个人社区:越努力越幸运社区 🏆简 介:简料简料,简单有料~在校大学生一枚,专注C/C/GO的干货分…

分享-Spss下载含spss25.spss26.spss27等版本

为了学习spss买的,分享安装程序给大家 SPSS 27是一款用于统计分析和数据挖掘的软件,以下是SPSS 27的功能介绍和配置建议: 功能介绍: 数据管理:SPSS 27可以对数据进行管理和清洗,包括数据输入、缺失值处理…

Python开发运维:Celery连接Redis

目录 一、理论 1.Celery 二、实验 1.Windows11安装Redis 2.Python3.8环境中配置Celery 三、问题 1.Celery命令报错 2.执行Celery命令报错 3.Win11启动Celery报ValueErro错误 一、理论 1.Celery (1) 概念 Celery是一个基于python开发的分布式系统,它是简单…

【三维几何学习】自制简单的网格可视化软件 — Mesh Visualization

自制简单的网格可视化软件 — Mesh Visualization 引言一、整体框架1.1 三角形网格1.2 界面管理1.3 VTK可视化界面 二、核心源码2.1 三角形网格:TriMesh类2.2 界面Widget_Mesh_Manager2.3 VTK可视化2.4 main 引言 使用PyQt自制简单的网格可视化软件 - 视频展示 本是…

深信服技术认证“SCSA-S”划重点:信息收集

为帮助大家更加系统化地学习网络安全知识,以及更高效地通过深信服安全服务认证工程师考核,深信服特别推出“SCSA-S认证备考秘笈”共十期内容,“考试重点”内容框架,帮助大家快速get重点知识~ 划重点来啦 深信服安全服务认证工程师…

基于材料生成算法优化概率神经网络PNN的分类预测 - 附代码

基于材料生成算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于材料生成算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于材料生成优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

【Java 进阶篇】从Java对象到JSON:Jackson的魔法之旅

在现代的软件开发中,处理数据的能力是至关重要的。而当我们谈及数据格式时,JSON(JavaScript Object Notation)通常是首选。为了在Java中轻松地将对象转换为JSON,我们需要一种强大而灵活的工具。这时,Jackso…

蓝桥杯物联网_STM32L071_2_继电器控制

CubeMX配置: Function.c及Function.h: #include "Function.h" #include "gpio.h" void Function_LD5_ON(void){HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET); }void Function_LD5_OFF(void){HAL_GPIO_WritePin(LD5_…

redis五种基本数据类型

redis存储任何类型的数据都是以key-value形式保存,并且所有的key都是字符串,所以讨论基础数据结构都是基于value的数据类型 常见的5种数据类型是:String、List、Set、Zset、Hash 一) 字符串(String) String是redis最基本的类型,v…

3d标签云实现过程(tagcloud.js)同步原生和 vue

写在前面 本来是没有准备写这个知识点,但是下载这个 js 的时候发现很多都是要钱或者是积分的,我就不明白了一个开源了这么久的 js 怎么还有人拿来挣钱的,同时还有一些只有原生 html 的例子,但是现在都是 框架主导的一些项目&#…