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.mzph.cn/news/160494.shtml

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

相关文章

2017年全国硕士研究生入学统一考试管理类专业学位联考数学试题——解析版

文章目录 2017 级考研管理类联考数学真题解析一、问题求解(本大题共 5 小题,每小题 3 分,共 45 分)下列每题给出 5 个选项中,只有一个是符合要求的,请在答题卡上将所选择的字母涂黑。真题(2017-…

Python 提高篇学习笔记(一):深拷贝和浅拷贝

文章目录 一、什么是对象的引用二、深拷贝和浅拷贝2.1 浅拷贝(Shallow Copy)2.2 深拷贝(Deep Copy)2.3 copy.copy和copy.deepcopy的区别 一、什么是对象的引用 在 Python 中,对象的引用是指变量指向内存中某个对象的地址或标识符。当你创建一个新的对象(比如一个整…

【Qt开发流程】之富文本处理

描述 Scribe框架提供了一组类,用于读取和操作结构化的富文本文档。与Qt中以前的富文本支持不同,新的类集中在QTextDocument类上,而不是原始文本信息。这使开发者能够创建和修改结构化的富文本文档,而不必准备中间标记格式的内容。…

busybox制作根文件系统2

上篇内容使用busybox制作好了根文件系统,接下来需要进行一些测试和功能的完善! 根文件系统的测试 测试根文件系统的时候不是直接烧写到EMMC里面,这样测试效率太低了,Ubuntu的rootfs目录已经保存了根文件系统,只需要在…

向量数据库,展望AGI时代

无论是向量数据库,还是大模型,归根结底,大家在追捧它时的心态,焦虑大于需求。 向量数据库的热潮,在一定程度上“外化”了人们的焦虑。 但这并不能否定向量数据库的实际价值,甚至更长远来看,向…

RedisTemplate使用详解

RedisTemplate介绍StringRedisTemplate介绍RedisConnectionFactory介绍RedisConnectionFactory源码解析 RedisOperations介绍RedisOperations源码解析 RedisTemplate使用连接池配置RedisTemplate连接池连接池配置 RedisTemplate应用场景RedisTemplate主要特点RedisTemplate使用…

redis运维(十六) 有序集合

一 有序集合 把握一点: 各种redis 命令都提供各种语言对应的API 接口,后续API是关键 ① 概念 1、sorted set --> 有序集合2、redis有序集合也是集合类型的一部分,所以它保留了集合中元素不能重复的特性3、但是不同的是,有序集合给每个元素多设置…

转型做视频了,博客就是稿子,继续坚持写博客,同时发布视频,能写博客说明思路清晰了,能再讲明白,理解就更透彻了,紧跟上时代发展。

1,今天特别记录下,B站给开通了《合集》功能 最近使用视频制作了几个视频。播放量还不错,最好的已经到了 2.6K了。 然后粉丝也涨到了 200个。 添加链接描述 紧跟时代:从写博客到录视频,粉丝大涨,突破200个&…

接口自动化测试 —— 工具、请求与响应

一、工具: 1.工具介绍 postman :很主流的API测试工具,也是工作里面使用最广泛的研发工具。 JMeter: ApiPost: 2.安装postman: 安装好直接打开,不用注册。 二、通信模式: 1、…

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

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

【Java 进阶篇】Redis:打开缓存之门

介绍 Redis(Remote Dictionary Server)是一个高性能的键值对存储系统,被广泛用作缓存、消息中间件和数据库。它以其快速的读写能力、支持多种数据结构和丰富的功能而闻名。在这篇博客中,我们将深入了解Redis的概念、安装以及基本…

MQTT协议消息代理服务远程连接

目录 1. Linux 搭建 Mosquitto 2. Linux 安装Cpolar 3. 创建MQTT服务公网连接地址 4. 客户端远程连接MQTT服务 5. 代码调用MQTT服务 6. 固定连接TCP公网地址 7. 固定地址连接测试 Mosquitto是一个开源的消息代理,它实现了MQTT协议版本3.1和3.1.1。它可以在不…

第二十章:多线程

进程 线程的特点 1.进程是资源分配的最小单位&#xff0c;线程是最小的执行单位 2.一个进程可以有多个线程 3.线程共享进程资源 package twentyth; public class ThreadTest extends Thread { public void run() { for (int i 1; i < 10; i) {//继承重…

Unity开发之C#基础-File文件读取

前言 今天我们将要讲解到c#中 对于文件的读写是怎样的 那么没接触过特别系统编程小伙伴们应该会有一个疑问 这跟文件有什么关系呢&#xff1f; 我们这样来理解 首先 大家对电脑或多或少都应该有不少的了解吧 那么我们这些软件 都是通过变成一个一个文件保存在电脑中 我们才可以…

Spring Boot创建和使用(重要)

Spring的诞生是为了简化Java程序开发的&#xff01; Spring Boot的诞生是为了简化Spring程序开发的&#xff01; Spring Boot就是Spring框架的脚手架&#xff0c;为了快速开发Spring框架而诞生的&#xff01;&#xff01; Spring Boot的优点&#xff1a; 快速集成框架&#x…

2023年G2电站锅炉司炉证考试题库及G2电站锅炉司炉试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年G2电站锅炉司炉证考试题库及G2电站锅炉司炉试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大纲…

MySQL 事务的底层原理和 MVCC(一)

在事务的实现机制上&#xff0c;MySQL 采用的是 WAL&#xff08;Write-ahead logging&#xff0c;预写式日志&#xff09;机制来实现的。 在使用 WAL 的系统中&#xff0c;所有的修改都先被写入到日志中&#xff0c;然后再被应用到系统中。通常包含 redo 和 undo 两部分信息。 …

【Java开发】 Springboot集成Mybatis-Flex

1 Mybatis-Flex 介绍 1.1简介 Mybatis-Flex 是一个优雅的 Mybatis 增强框架&#xff0c;它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库&#xff0c;其内置的 QueryWrapper 亮点帮助我们极大的减少了 SQL 编写的工作的同时&#xff…

cocos2dx ​​Animate3D(二)

Twirl 扭曲旋转特效 // 持续时间(时间过后不会回到原来的样子) // 整个屏幕被分成几行几列 // 扭曲中心位置 // 扭曲的数量 // 振幅 static Twirl* create(float duration, const Size& gridSize, const Vec2& position, unsigned int twirls, float amplitude)…

基于springboot实现摄影跟拍预定管理系统【项目源码+论文说明】计算机毕业设计

基于springboot实现摄影跟拍预定管理系统演示 摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要…