博客搭建的全过程

First Post:

Last Update:

Word Count:
2.6k

Read Time:
10 min

Page View: loading...

caddy

前期准备

一台服务器,我的是ubuntu22.04腾讯云的

先进行换源,具体源的内容根据自己的版本在这个网址找,比如我是ubuntu22.04,最后记得更新一下

ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

sudo apt update

安装caddy

首先在服务器下载一个http的服务,我的服务器是ubuntu22.04下载的是caddy

https://caddy2.dengxiaolong.com/

1
2
3
4
5
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

下载完成后可以看一下他的入门文档跟着操作一波熟悉操作,我这里主要是踩坑之后的经验总结

caddyfile

首先他的配置文件的地方默认是存储在/etc/caddy/Caddyfile中,根据他的入门文档也可以看出,他在默认的80端口开启了静态文件服务器,路径为/usr/share/caddy,不同于其他web服务器的/var/www/html了,当然这个地址都是可以自己定义的

1
2
3
4
5
6
7
8
9
10
11
12
13
:80 {
# Set this path to your site's directory.
root * /usr/share/caddy

# Enable the static file server.
file_server

# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080

# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}

在/usr/share/caddy中有一个index.html是caddy的默认index

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
# 启动Caddy
systemctl start caddy
# 开机自启
systemctl enable caddy
# 重启Caddy2
systemctl restart caddy
# 停止Caddy2
systemctl stop caddy
# 重载配置Caddy配置文件(修改配置文件后执行)
systemctl reload caddy
# 查看Caddy2运行状态
systemctl status caddy

配置https

Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版_caddy反向代理-CSDN博客

修改配置文件为下,caddy会自动重定向https所以配置一下域名就可以了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
http:// {
# 根目录,指向所有静态文件的根目录
# 这里设置为 `/usr/share/caddy`
root * /usr/share/caddy

# 启用 gzip 压缩
# encode gzip

# 启用文件服务器功能
file_server
}
www.f1ngy3.site {
root * /usr/share/caddy
# 启用 gzip 压缩
encode gzip
# 启用文件服务器功能
file_server
}

hexo

Yue-plus/hexo-theme-arknights: 明日方舟罗德岛阵营的 Hexo 主题,支持数学公式、Valine&Gitalk&Waline评论系统、Mermaid图表

写作 | Hexo

前期准备

提前下载好git以及nodejs等工具,在一个文件夹中右击选择open git bash here打开git的命令行,安装hexo

1
cnpm install -g hexo-cli

初始化hexo,最后可以看到文件夹下就有了初始的内容

1
2
3
hexo init myblog
cd myblog
npm install

QQ_1734863080489

文件夹

public : hexo d后生成的文件夹,里面的内容就是展示给外界看的

source : 里面的_posts中存放的是文章,推荐使用md文档进行编写博客,再新建一个image专门存在文章的图片

themes : 里面存放的是我们下载的主题

_config.yml : 全局配置文件

命令

1
2
3
4
5
6
hexo new [layout] <title> #新建一个文章,默认存储在source/_postes中
hexo s #开启本地的预览默认为localhost:4000
hexo cl #清除生成的文件
hexo g #根据source中的文件生成public文件夹中的静态文件
hexo d #生成顺便部署
hexo new page 'about' #新建一个about页面

写作

Front-matter | Hexo

文章中的Front-matter定义,我的示例,扔到开头的位置使用—包裹,推荐自己生成后直接复制下来然后添加自己想要的内容

1
2
3
4
5
6
7
8
9
10
title: xxx
date: 2024-12-18 18:20:14
updated: 2024-12-19 18:20:14
categories:
- CTF
tags:
- Web
- Re
- Pwn
comments: true

写作 | Hexo

文章的生成以及他的布局

在这个参数的内容以上会显示在主页当作预览

<!– more –>

主题(arknights)

Yue-plus/hexo-theme-arknights: 明日方舟罗德岛阵营的 Hexo 主题,支持数学公式、Valine&Gitalk&Waline评论系统、Mermaid图表

我使用的主题是arknights,在之前生成好的博客文件夹下使用git命令行输入

1
2
git clone https://github.com/Yue-plus/hexo-theme-arknights.git themes/arknights
cnpm install hexo-server hexo-browsersync hexo-renderer-pug --save

修改配置文件,修改主题为arknights剩余的其他根据自己喜好修改可以参考一下网址

配置 | Hexo

theme: arknights

然后把主题的配置文件剪贴到主文件夹,名称为_config.arknights.yml,具体的作用大概就是把两个配置文件的内容进行整合,对于重复的配置项他的先后顺序为_config..yml然后是_config.arknights.yml具体可以参考一下文章

配置 | Hexo

这中途可以频繁使用hexo s查看效果

评论系统的开启

这里踩了点坑,来细讲一下

快速开始 | Valine 一款快速、简洁且高效的无后端评论系统。

注册登录后创建应用,计价方案选择开发版创建

QQ_1734865263986

在设置-应用凭证中可以找到id和key,将其贴到配置文件对应的位置即可

QQ_1734865312297

QQ_1734865376108

评论系统邮件提醒

随后开始配置评论的邮件提醒功能,虽然我们搭建的是小网站不怎么可能会有人来评论,但毕竟是备案了还是要小心一点

首先我使用的QQ邮件所以以下介绍的是QQ邮件接收的方法

首先登录qq邮箱打开账户与安全选择安全设置,在最下面打开服务,记得保存好他生成的授权码

QQ_1734866072999

回到LeanCloud,打开云引擎-管理部署,默认没有内容先创建分组,应用场景名称之类的随便弄就可以了我不知道有什么区别,规格选择的免费版既中间那个然后创建,每一个账号只有一个免费因为我以前创建了所以就没有免费的机会了

QQ_1734865631071

打开创建的分组在设置中的自定义环境变量选择添加新变量可以根据一下的网站进行添加删除

DesertsP/Valine-Admin: 🔥A simple comment system based on LeanCloud and Valine.

QQ_1734865746677

这里比较关键的点在于SMTP_PASS就是上面我们打开qq邮件的授权码输入最后点击保存

然后回到部署中,点击git部署,url输入https://github.com/DesertsP/Valine-Admin.git,然后分支输入master,最后点击部署即可

QQ_1734866212921

到这里你去评论一个就可以接受邮件了,然后就会收到例如下面的邮件

QQ_1734866382543

最后是定时任务,一开始部署完成后我创建定时任务发现没有那个函数,但现在有了不知道怎么出现的,也许要等一段时间或者你在本地hexo s中随便评论一个才会出现,根据之前的github配置即可

QQ_1734866515071

hexo配合caddy实现

我本地链接服务器的软件是winterm,使用xshell和xftp是差不多的,前提在于你建立的链接是root权限否则后续会提示权限不足等

(1)本地的hexo执行hexo d,然后将public文件夹压缩,然后通过工具直接传到服务器的/usr/share/caddy文件夹中,然后使用unzip解压,显示有重复的内容直接y(替换)或者A(替换全部)即可

(2)当然使用SCP命令直接将windows的文件传上去也可以,不过在服务器中配置以下ssh允许root权限登录

QQ_1734866960636

配置ssh登录服务器

♪(^∇^*)欢迎肥来!通过SSH密钥连接Linux | 時光

为了下面的配置hexo一键部署的便利,接下来来配置以下ssh免密登录服务器

本地生成密钥

1
ssh-keygen -t rsa

QQ_1735294892218

然后在本地.ssh中会有一个使用非对称加密rsa的密钥对

QQ_1735294955401

将本地的公钥传到服务器上

传到服务器中的/root/.ssh中,然后添加到authorized_keys中

1
cat ./id_rsa.pub >> /root/.ssh/authorized_keys 

QQ_1735295093857

本地测试一下

1
ssh root@xx.xx.xx.xx

可以免密登录即表示配置成功

配置hexo实现一键部署到博客

【Hexo】一键部署至远程服务器-CSDN博客

前期准备

首先确保自己的服务器中有git,没有则安装

1
2
git --version
sudo apt install git -y

服务配置

找到自己服务器中存放web静态文件的地方,我用的caddy文件路径为/usr/share/caddy/,在这个目录下创建一个文件夹用于存放仓库文件,然后创建git仓库(用于共享代码和部署代码)

1
2
3
cd /usr/share/caddy/
mkdir repo
git init --bare hexo.git

创建钩子

1
2
vim /usr/share/caddy/repo/hexo.git/hooks/post-receive
chmod +x /usr/share/caddy/repo/hexo.git/hooks/post-receive

添加以下内容(这里的路径根据自己的实际情况做适当改变)

#!/bin/bash
git –work-tree=/usr/share/caddy/ –git-dir=/usr/share/caddy/repo/hexo.git checkout -f

修改本地的hexo配置

进入本地hexo博客的根目录,编辑站点配置文件 _config.yml,找到deploy,添加如下配置

1
2
3
4
deploy:
type: git
repo: root@xx.xx.xx.xx:/usr/share/caddy/repo/hexo.git
branch: master

root@xx.xx.xx.xx 是Git账户@站点IP/域名

这样就配置完成了,可以使用hexo d一键部署到服务器上,至此博客的部署就只需要一条命令即可

QQ_1735295151643