BLOG迁移: 从Halo + CF Tunnel 到 Hugo + github + Cloudflare page

BLOG迁移: 从Halo + CF Tunnel 到 Hugo + github + Cloudflare page

背景

前一段时间, 我的blog数据丢了

其实算不上彻底丢了, 原始的blog内容还存储在思源笔记上, 甚至发布记录都有, 所以本质上的数据确实没有丢

过去blog是用docker部署在我的ubuntu小主机上, 用cf tunnel暴露服务到公网. 但是那天晚上, 我失心疯一样想要重装系统.

于是, 所有的磁盘数据都清掉了.

等我反应过来在这个主机上还有没迁移完的数据的时候, 新版本的ubuntu在冲我笑.

Halo + CF Tunnel

halo是一个好东西, 开箱即用, 功能丰富

但是太笨重了, 而且过去是部署在我的迷你主机 + cloudflare tunnel 暴露服务

好处是, 确实很方便

坏处是: 偶尔停一次电就无法访问了, cf tunnel 访问起来确实不够快.

在频繁的被提醒blog宕机之后, 我厌倦了重启halo + cf tunnel

Hugo + Github + CF Page

我要用一个最简单的方式实现blog的部署

这一套方案应该是最简单的方案了.

在思源里写笔记, 持久化存储, 然后通过部署插件推送commit到github, CF中配置github连接, master改动自动打包部署, 渲染使用hugo + 主题插件.

当然了, 也会有很多人好奇: 这是不是不够先进?

坦白说, 确实. hugo确实是个老东西了. 但是我觉得无所谓.

因为够简单, 没有什么大的bug, 打包结果全部是静态资源扔在cf上

主题是基于hugo-texify3 用gemini + claude code 魔改的

目前移植过来运行了大概2周, 运行很稳定, 我还比较满意.

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

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

相关文章

JDK:Linux下载安装jdk1.8

JDK:Linux下载安装jdk1.8下载jdk wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1…

图论中的核心C++算法,包括存储结构、核心思路、速记口诀以及学习方法, 一站式上机考试学习

一、图的存储结构 不同算法适配不同的存储结构,选择合适的存储方式是实现算法的基础: 1. 邻接矩阵(二维数组) // 适用于稠密图,顶点数n较小的情况 const int MAXN = 1005; int graph[MAXN][MAXN]; // graph[i][j]…

hive 中 group by 和 distinct 孰优孰劣?

首先声明一下,hive是什么: hive 不是数据库,hive 只是一个数据仓库工具,可以用来查询、转化和加载数据,是可以调用 mapreduce 任务、用类 mysql 语法查询HDFS数据的一个工具。再来说 mapreduce 是什么,mapreduce…

DDD抽奖项目业务回顾

抽奖系统架构 模块概览模块名称 DDD 分层 职责描述trigger 接口层 (Interface Layer) 负责与外部系统交互,接收请求、身份验证、日志记录,并将请求转发给应用层。api 接口契约 (Contracts) 独立的服务契约定义,包含…

黑马程序员SpringCloud微服务开发与实战-微服务-服务拆分02

黑马程序员SpringCloud微服务开发与实战-微服务-服务拆分02Posted on 2025-11-28 00:17 心默默言 阅读(0) 评论(0) 收藏 举报接下来,我们就一起将黑马商城这个单体项目拆分为微服务项目,并解决其中出现的各种问…

API设计最佳实践 - 智慧园区

后端工程师的API设计与开发实战指南:从原则到部署作为一名后端开发,日常工作中一大部分时间都在和API打交道。它就像是整个应用的「服务员」,前端、移动端或者其他服务想要什么数据、执行什么操作,都得通过它。一个…

Python高阶知识点整理

数据类型 常用方法 (Method) 简要说明与应用场景字符串 str .strip() 去除首尾空格(常用于处理用户输入).split(sep) 按指定分隔符分割成列表(处理CSV数据常用).join(iter) 将列表元素合并成字符串(.split的逆操作…

第4单元检测卷

第4单元检测卷 - 题目、答案与解析 一、单项选择题题目:在Python中,用于创建一个新字典的语法是 ( )A. d = dict[] B. d = {} C. d = () D. d = new dict()答案:B 解析:在Python中,创建字典最常用和直接的方法是使…

javascript下载文件五种方式

javascript下载文件五种方式参考:https://blog.csdn.net/weixin_42705100/article/details/133125521 本文介绍了五种在JavaScript中下载文件的方法:通过`window.location.href`、`window.open()`、iframe、动态a标签…

ubunutu连接蓝牙键盘鼠标

​ 双系统ubunutu能连接上蓝牙耳机,但是win能连接上蓝牙键盘鼠标ubunutu却连接不上,百思不得其解。怀疑要么是驱动要没是配置的问题。试试了一下现有文章的方法,都是要让装bluez和blueman之类,装完之后还是搜索不到…

详细介绍:从 1.0 到 13.0:C# 十八年进化史,一部写给开发者的语言成长记

详细介绍:从 1.0 到 13.0:C# 十八年进化史,一部写给开发者的语言成长记2025-11-28 00:02 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: …

生研界:技术赋能,AI如何重塑医学科研生态?

在科技浪潮席卷全球的当下,人工智能(AI)正以前所未有的速度重塑医学科研生态。从靶点发现到药物设计,从疾病预测到精准诊疗,AI技术正逐步渗透至医学科研的每一个环节,推动着医学研究范式的深刻变革。在这场变革中…

2025ICPC区域赛成都站记——为者败之,执者失之

打银2025年的成都站是我有生以来第一次线下xcpc比赛。在先前的网络赛选拔中,我们队获得了两个icpc名额和1个ccpc名额。先前西安站我们学校打了两块金牌的情况下,我们队的三个人都非常希望在大学的第一场比赛就能打出…

quickfox windows 海外回国加速器 会导致部分国外网站不能使用

比如说 google.com可以,但是grok.com不能打开 关掉quickfox后,grok.com就能打开了

4433

用StegSolve分析图片看到一个二维码,在https://cli.im/deqr/other 扫描二维码猜测为摩斯密码...--.----...--..但没有分隔,根据题目提示4433,分隔为...-/-.--/--./..-/-..,在https://www.iamwawa.cn/morse.html 解…

在VMware Workstation设置虚拟机的VNC连接功能

在VMware Workstation设置虚拟机的VNC连接功能在VMware Workstation设置虚拟机的VNC连接功能。首先在workstation中设置好虚拟机的VNC连接参数,如图:使用VNC客户端开始连接虚拟机,配置如下: 这时候出现错误提示:…

rust基础第三篇:所有权

rust基础第三篇:所有权值被唯一的scope拥有,它们共存亡。 值可以从一个scope移动到另一个scope,新的scope会拥有这个值。 一个值可以有多个只读引用和单个可变引用,它们之间是互斥关系。 引用不能超越值的存活期。…

Houdini软件简介

Houdini软件简介Houdini(wiki,chs)是一款由加拿大Side Effects Software Inc.(简称SESI)公司开发的3D动画软件,可运行于Linux、Windows、Mac OS等操作系统 与其它的三维软件相比,其结构、操作方式等有很大的差异…

Windows系统磁盘管理——迁移“恢复分区”

方案一、将“恢复分区”迁移到“新分区”将“恢复分区(例如分区 4)”迁移到新分区(分区F)中。1.1 创建新分区 在磁盘 0 的最右侧分出一块新分区(分区 F),其容量需略大于当前的“恢复分区”。 1.2 给“恢复分区”…

WinFormedge 增加登录页面(自定义布局,非左右布局) 并作为启动页面 及两种布局切换全屏非全屏

WinFormedge 增加登录页面(自定义布局,非左右布局)并作为启动页面的实现方法 1、增加一个自定义布局(Components/Layout下新建EmptyLayout.razor布局文件) 代码如下:@inherits LayoutComponentBase@Body <Fl…