Linux超简单部署个人博客

news2025/1/18 7:29:12

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.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=qazwsx06210930
      - --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"
    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=qazwsx06210930
      - MYSQL_DATABASE=halo

networks:
  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-stopped
    ports:
      - '80:80'  # 保持默认即可,不建议修改左侧的80
      - '81:81'  # 冒号左边可以改成自己服务器未被占用的端口
      - '443:443' # 保持默认即可,不建议修改左侧的443
    volumes:
      - ./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.coloradmin.cn/o/1239365.html

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

相关文章

2023年【起重机械指挥】考试题及起重机械指挥找解析

题库来源:安全生产模拟考试一点通公众号小程序 起重机械指挥考试题考前必练!安全生产模拟考试一点通每个月更新起重机械指挥找解析题目及答案!多做几遍,其实通过起重机械指挥作业考试题库很简单。 1、【多选题】按照事故造成的人…

新手必看!!附源码!!STM32通用定时器输出PWM

一、什么是PWM? PWM(脉冲宽度调制)是一种用于控制电子设备的技术。它通过调整信号的脉冲宽度来控制电压的平均值。PWM常用于调节电机速度、控制LED亮度、产生模拟信号等应用。 二、PWM的原理 PWM的基本原理是通过以一定频率产生的脉冲信号&#xff0…

Java 编码

编码: 加密: 通过加密算法和密钥进行 也可通过码表进行加密 对称加密: 缺点:可被截获 元数据---加密算法密钥密文 ----> 解密算法密钥元数据 算法:DES(短 56位),AES(长 128位)破解时间加长 非对称加密: 元数据-加密算法加密密钥 密文 --->加密算法解密密钥元数据 …

亚马逊买家号用邮箱怎么注册

想要用邮箱注册亚马逊买家号,那么准备好能接受验证码的邮箱后打开相应的亚马逊官网即可。打开官网后点击注册——输入昵称——输入邮箱——输入密码——接受邮箱验证码并输入,如果遇到需要手机号验证就输入手机号,如果不需要验证,…

Mac M1 安装Docker打包arm64的python项目的镜像包

1、首先安装Docker,到官网下载,选择apple chip版 Docker中文网 官网 2、双击下载的dmg文件,在弹出框中之间拖拽到右边 3、打开docker,修改国内镜像源,位置在配置-DockerEngine "registry-mirrors": ["…

2023年,人工智能在医疗行业领域的应用场景

本期行业洞察将带领大家了解人工智能在医疗行业领域的应用,主要了解在患者治疗和运营中的应用、人工智能作为预防工具以及大型医院目前如何使用人工智能。未来的智慧医疗时代已经悄然到来。 人工智能在患者治疗和机构运营中的应用 人工智能有望彻底改变医疗护理的…

USB驱动开发基础

USB标准 USB1.0, 1996,低速1.5Mbps和高速12Mbps,USB1.1 iMac G3,Type A和Type B接口USB 2.0 2000, 480Mpbs,Type A/B/C接口、Micro A/BUSB 3.0 5Gbps, 随着USB 3.2命名规定,现在也叫USB 3.2 Ge…

羊大师提示,羊奶都有哪些惊人功效?

羊奶不仅是一种美味的健康饮品,在近年来备受瞩目的的健康圈子里,羊奶还被赋予了更多的功效,成为一种备受推崇的保健品。羊奶不但富含营养,而且还有着非常多的益处,它能够用来美容、保健,甚至还可以治疗某些…

Epub书籍阅读工具

Epub书籍阅读工具 前言WIndows总结Neat ReaderAquile ReaderWPS Android总结Neat Reader掌阅 前言 Epub文件为电子书文件格式,此格式的电子书相比txt书籍,增加了目录跳转功能,并可以显示图片。本文介绍WIndows和Android端的epub书籍阅读工具…

Bug等级划分

Bug是指在程序或系统中存在的错误、缺陷或异常,是由于编码错误、设计问题、逻辑错误或其他因素导致的。 常见的Bug分类方法 功能性Bug与软件的功能有关,软件无法正常工作、功能与需求不符或功能执行不正确。 用户界面Bug与软件的用户界面有关&#xff…

C++电脑组装项目(涉及知识点:多态)

需求&#xff1a; #include <iostream> #include "Computer.h" #include "AbstractCpu.h" #include "AbstractMemory.h" #include "AbstractVideoCard.h" #include "IntelCpu.h" #include "IntelMemory.h" …

langchain 部署组件-LangServe

原文&#xff1a;&#x1f99c;️&#x1f3d3; LangServe | &#x1f99c;️&#x1f517; Langchain LangServe &#x1f6a9; We will be releasing a hosted version of LangServe for one-click deployments of LangChain applications. Sign up here to get on the wa…

PHP反序列化简单使用

注&#xff1a;比较简陋&#xff0c;仅供参考。 编写PHP代码&#xff0c;实现反序列化的时候魔法函数自动调用计算器 PHP反序列化 serialize(); 将对象序列化成字符串 unserialize(); 将字符串反序列化回对象 创建类 class Stu{ public $name; public $age; public $sex; publi…

Vue 定义只读数据 readonly

readonly 让一个响应式数据变为 **深层次的只读数据**。 isReadonly 判断一个数据是不是只读数据。 应用场景&#xff1a;不希望数据被修改时使用。 readonly 深层次只读&#xff1a; <template><h1>reactive数据</h1><p>姓名&#xff1a;{{ info…

在win10上安装pytorch-gpu版本2

安装anaconda即下载了python&#xff0c;还可以创建虚拟环境。 目录 1.1 anaconda安装 1.2 pytorch-gpu安装 1.1 Anaconda安装 anaconda的安装请看我之前发的tensoflow-gpu安装&#xff0c;里面有详细的安装过程&#xff0c;这里不做重复描述&#xff0c;传送门 1.2 pyt…

采用connector-c++ 8.0操作数据库

1.下载最新的Connector https://dev.mysql.com/downloads/connector/cpp/&#xff0c;下载带debug的库。 解压缩到本地&#xff0c;本次使用的是带debug模式的connector库&#xff1a; 注&#xff1a;其中mysqlcppconn与mysqlcppconn8的区别是&#xff1a; 2.在cmakelist…

Redux系列实现异步请求

一、简介 普通的action处理会自动分派给对应的reducer处理。异步的action会经过Middlewares进行处理&#xff0c;异步完成后再交由对应的reducer处理。 1.Middleware (1) 截获action 判断action是否是一个promise操作。 (2) 发出action 二、代码实现 举个例子&#xff0c;获取…

电磁优化的并行空间映射方法

空间映射(SM)是一种公认的加速电磁优化的方法。现有的SM方法大多基于顺序计算机制。本文提出了一种用于电磁优化的并行SM方法。在该方法中&#xff0c;每次迭代开发的代理模型被训练以同时匹配多个点的精细模型。多点训练和SM使代理模型在比标准SM更大的邻域内有效。本文提出的…

SQL语句执行过程

一条 SQL 的执行过程可以大致分为以下几个步骤&#xff1a; 连接器&#xff1a; ○ 客户端与数据库建立连接&#xff0c;并发送 SQL 语句给数据库服务。 ○ 连接器验证客户端的身份和权限&#xff0c;确保用户有足够的权限执行该 SQL 语句。查询缓存&#xff1a; ○ 连接器首先…