个人博客搭建
通过Cloudflare安装Tunnel
Cloudflare注册
Cloudflare教程
西部数码官网
安装Portainer CE 监控面板
1 2 3 4 5 6 7 8 9 10 11 12
| sudo docker pull portainer/portainer-ce:latest
sudo docker volume create portainer_data
sudo docker run -d \ -p 8000:8000 -p 9443:9443 -p 9000:9000 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest
|
安装FileBrowser文件管理器
1 2
| mkdir -p /opt/jetson-server/filebrowser touch /opt/jetson-server/filebrowser/database.db
|
1 2 3 4 5 6 7 8 9
| docker run -d \ --name filebrowser \ --restart=always \ -p 18080:80 \ -v /opt/jetson-server:/srv \ -v /opt/jetson-server/filebrowser:/config \ -e FILEBROWSER_USERNAME=white \ -e FILEBROWSER_PASSWORD=yourpassword \ filebrowser/filebrowser
|
安装git 9.0.2
1 2 3 4
| apt install git /**/安装git git --version /**/查看git的版本
|
安装node.js环境 18.19.0
1 2 3 4 5 6 7 8
| sudo apt install npm
sudo apt install nodejs
npm -v
node -v
|
安装Hexo框架
1 2
| npm install hexo-cli -g
|
初始化Hexo
1 2 3 4 5 6
| sudo npm install hexo -g
mkdir blog
hexo init blog
|
让Hexo在后台运行
1 2 3 4 5 6 7 8 9 10 11 12
| cat > hexo_run.js << 'EOF' //run const { exec } = require('child_process') exec('hexo server',(error, stdout, stderr) => { if(error){ console.log('exec error: ${error}') return } console.log('stdout: ${stdout}'); console.log('stderr: ${stderr}'); }) EOF
|
安装butterfly主题
1 2
| git clone -b dev https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
|
修改 Hexo 根目录下的 _config.yml,把主题改为 butterfly
如果你没有 pug 以及 stylus 的渲染器,请下载安装:
1
| npm install hexo-renderer-pug hexo-renderer-stylus --save
|
在 hexo 的根目录创建一个文件 _config.butterfly.yml,并把主题目录的 _config.yml 内容复制到 _config.butterfly.yml 去。这边我建议用cp命令,直接将主题的config内容复制到hexo根目录上
以后只需要在 _config.butterfly.yml 进行配置就行。如果使用了 _config.butterfly.yml, 配置主题的 _config.yml 将不会有效果。
Hexo 会自动合并主题中的 _config.yml 和 _config.butterfly.yml 里的配置,如果存在同名配置,会使用 _config.butterfly.yml 的配置,其优先度较高。
1
| cp themes/butterfly/_config.yml _config.butterfly.yml
|
配置博客
配置网站页面
打开hexo根目录的_config.yml
1 2 3 4 5 6 7 8
| title: white subtitle: 'white的个人博客' description: '欢迎来到我的个人博客,这里记录日常,分享技术...' keywords: author: white language: zh-CN timezone: ''
|
目录配置
打开hexo根目录的_config.butterfly.yml
1 2 3 4 5 6 7 8 9 10 11
| menu: 首页: / || fas fa-home 时光档案: /archives/ || fas fa-archive 标签: /tags/ || fas fa-tags 分类: /categories/ || fas fa-folder-open 列表||fa fa-list || hide: 音乐: /music/ || fas fa-music 照片: /picture/ || fas fa-images 电影: /movies/ || fas fa-video 友链: /link/ || fas fa-link 关于: /about/ || fas fa-heart
|
社交设置
打开hexo根目录的_config.butterfly.yml
1 2 3
| social: fab fa-github: https://github.com/maodoo0701 || Github || "#hdhfbb" fas fa-envelope: mailto:maodoo@qq.com || Email || "#000000"
|
头像设置
1 2 3 4
| favicon: /img/favicon.png avatar: img: /img/avatar.png effect: true
|
背景图和顶部脚步图设置
1 2 3
| default_top_img: /img/background.webp footer_img: rgb(196, 199, 206) background: /img/background.webp
|
代码块格式设置
1 2
| code_blocks: macStyle: true
|
文章封面
1 2 3 4 5 6 7 8 9 10 11 12
| cover: index_enable: true aside_enable: true archives_enable: true default_cover: - https://maodoo.oss-cn-beijing.aliyuncs.com/20241210172528345.jpg - https://maodoo.oss-cn-beijing.aliyuncs.com/20241210172459243.png
|
主题目录
1 2 3
| hexo new page tags hexo new page categories hexo new page link
|
分别找到 source/tags/index.md、source/categories/index.md 、source/link/index.md 文件并编辑
1 2 3 4 5 6 7
| --- title: 标签 date: 2018-01-05 00:00:00 type: 'tags' orderby: random order: 1 ---
|
1 2 3 4 5
| --- title: 分类 date: 2018-01-05 00:00:00 type: 'categories' ---
|
1 2 3 4 5
| --- title: 友链 date: 2018-06-07 22:17:49 type: 'link' ---
|
数据来源
1 2 3
| mkdir _data touch link.yml vi link.yml
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| - class_name: 友情链接 class_desc: 那些人,那些事 link_list: - name: Hexo link: https://hexo.io/zh-tw/ avatar: https://d33wubrfki0l68.cloudfront.net/6657ba50e702d84afb32fe846bed54fba1a77add/827ae/logo.svg descr: 快速、简单且强大的网志框架
- class_name: 网站 class_desc: 值得推荐的网站 link_list: - name: Youtube link: https://www.youtube.com/ avatar: https://i.loli.net/2020/05/14/9ZkGg8v3azHJfM1.png descr: 视频网站 - name: Weibo link: https://www.weibo.com/ avatar: https://i.loli.net/2020/05/14/TLJBum386vcnI1P.png descr: 中国最大社交分享平台 - name: Twitter link: https://twitter.com/ avatar: https://i.loli.net/2020/05/14/5VyHPQqR6LWF39a.png descr: 社交分享平台
|
创建新文章
如果资源只给特定的文章使用,可以将 config.yml 文件中的 post_asset_folder 选项设为 true,然后在每一次通过命令创建新文章时自动创建一个与文章 title 同名的文件夹,然后就可以把有关的资源放在这个关联文件夹中,再通过相对路径来引用它们
创建新文章
安装搜索插件
1
| npm install hexo-generator-searchdb --save
|
_config.yml 改成:
1 2 3 4 5
| search: enable: true path: search.xml field: post format: html
|
enable: true 必须有
limit 可以先去掉(避免兼容问题)
_config.butterfly.yml 改成:
1 2 3 4 5 6
| search: use: local_search
local_search: enable: true preload: false
|
强制清理缓存(很多人死在这一步)
1 2 3 4
| hexo clean rm -rf node_modules/.cache hexo g hexo s
|
图片懒加载插件
1
| npm install hexo-lazyload-image --save
|
_config.yml 配置:
1 2 3
| lazyload: enable: true loadingImg: /img/loading.gif
|
需要在/source/img目录下放置好loading.gif文件
字数统计插件
1
| npm install hexo-wordcount --save or yarn add hexo-wordcount
|
修改侧边栏
_config.butterfly.yml 配置:
1 2 3 4 5 6
| aside: enable: true hide: false button: true mobile: true position: left
|
代码块样式
_config.butterfly.yml配置:
1 2 3 4 5 6
| highlight_theme: mac highlight_copy: true highlight_lang: false highlight_shrink: false highlight_height_limit: false code_word_wrap: true
|
副标题循环打字效果
_config.butterfly.yml配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| subtitle: enable: true effect: true typed_option: source: false sub: - 你在抱怨什么呢 - 为明天到来的事,说人生像是没有意义 - 没有选择会是唯一的路 - 这不是你自己的问题,人终归要好好去生活
|
版权样式
1 2 3 4 5 6
| copy: enable: true copyright: enable: false limit_count: 50
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| footer: nav: - title: 首页 link: / - title: 关于 link: /about/ owner: enable: true since: 2025 copyright: enable: true version: false custom_text:
|
页脚背景变透明设置
在你的博客目录里找到(如果没有就新建):
然后加上:
1 2 3 4 5 6 7 8
| #footer { background: transparent !important; box-shadow: none !important; }
#footer::before { background: transparent !important; }
|
打开 _config.butterfly.yml,找到:
如果你没有自定义 CSS 引入,可以加:
1 2 3
| inject: head: - <link rel="stylesheet" href="/css/custom.css">
|
如果你用了背景图,是这种配置,那透明 footer 才会有“嵌入感”。否则你只会看到白底(看起来像没变化)
页面顶部大图配置(Banner)
_config.butterfly.yml 配置:
1 2 3 4
| index_img: archive_img: tag_img: category_img:
|
标签 / 分类单独背景
1 2 3 4
| tag_per_img: - java: /img/java.jpg - linux: /img/linux.jpg category_per_img:
|
tags(不是tag) 页面背景配置的方法(categories同理)
1 2 3 4 5
| --- title: 标签 top_img: /img/tags.jpg ---
|
部署到cloudflare
GitHub中创建私有仓库并推送
Cloudflare中部署页面
Cloudflare中设置自定义域
- 新增自定义域,以下两个都需要
www.yourdomain.com
yourdomain.com
- 在规则中自定义重定向规则
- 表达式:
(http.host eq "yourdomain.com")
- 重定向url:
https://www.yourdomain.com
- 状态代码:
301
- 这样当访问裸域的时候会重定向