基于 ipfs 免费永久在线的个人 hugo 博客部署分享

file

部署依赖

本地需要 hugo、git、ipfs-desktop等前置依赖工具,本教程适用于 Windows 系统,macOS、Linux 同理。

hugo

hugo安装见此文章 hugo – 无需数据库支持快速的开源静态网站生成神器,建议安装 Hugo 扩展版。

git

官网下载 Git - Downloading Package (git-scm.com) 后,安装即可。

或使用 winget 工具,如果没有,可先安装 winget 工具,然后在 CLI 或 Powershell 中输入:

winget install --id Git.Git -e --source winget

ipfs-desktop

官方 下载页 下载 IPFS-Desktop-Setup-0.xx.0.exe 文件后安装运行即可。

创建 hugo 博客

建议使用 Git Bash 或 WSL 创建,以下以 Git 为示例。

使用 git 打开你选定的博客目录文件,开始创建。

  1. 新建 newsite 文件目录,作为博客的项目目录

    hugo new site newsite
  2. 进入 newsite 根目录

    cd newsite
  3. 在当前目录中初始化一个空的 Git 存储库

    git init
  4. 设定博客主题

    • 克隆添加主题

      git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
    • 修改主题配置

      echo "theme = 'ananke'" >> hugo.toml

hugo 配置文件在根目录下的 hugo.toml,更多免费主题请查看 https://themes.gohugo.io/

创建博客内容

添加新页面

hugo new content content/posts/my-first-post.md

表示已在 content/posts 目录中创建了新文件

使用支持markdown的编辑器打开后,将看到以下内容:

+++
title = 'My First Post'
date = 2024-01-14T07:07:07+01:00
draft = true
+++

可看到 draft 值为 true。默认情况下,Hugo 在您构建站点时不会发布草稿内容。

博客正文添加到下方即可,例如:

+++
title = 'My First Post'
date = 2024-01-14T07:07:07+01:00
draft = true
+++

## 第一篇文章

这是我的第一篇hugo博客文章。

启动 hugo 服务

启动 Hugo 查看开发调试服务器,服务器地址为 http://localhost:1313/

hugo server 

可使用 Ctrl + C 停止 Hugo 的开发服务器。

如需包含,可以在启动服务器时,使用 hugo server -Dhugo server --buildDrafts,表示启动草稿可用。

此时打开开发调试服务器地址 http://localhost:1313/ 即可看到博客页面已成功创建启动。

配置博客

使用编辑器,打开项目根目录中的站点配置文件 hugo.toml ,修改为:

baseURL = ""
languageCode = 'zh-cn'
title = '新的hugo博客'
theme = 'ananke'

将上面 baseURL 留空,languageCode修改为你的语言和区域,title 修改为你的站点标题。

发布博客

hugo

当发布站点时,Hugo 会在项目根目录的 public 目录中创建整个静态站点。包括 HTML 文件以及图像、CSS 文件和 JavaScript 文件等资源。

file

上传到 ipfs-desktop

打开 ipfs-desktop,将 public 根目录文件夹上传到 ipfs-desktop 你选定的位置,进入 ipfs 设置,找到创建IPNS发布密钥,点击生成,命名为 newsite。

生成的密钥为 k51 开头的一个字符串,再返回 ipfs 文件,选择 public 文件夹后,点击发布至IPNS,选择刚创建的 newsite 密钥或手动输入此密钥,点击发布。

发布成功后,会弹出对应的已发布链接,本站密钥为 k51qzi5uqu5dgihzvuk5odnzl59r5ip1w676gq2h0favahwh2d851vfv3n57c0。

将密钥替换掉下列位置,即为你的独立域名:

  • (IPNS发布密钥).ipns.dweb.link
  • (IPNS发布密钥).ipfs2.eth.limo
  • (IPNS发布密钥).eth.sucks

如:https://k51qzi5uqu5dgihzvuk5odnzl59r5ip1w676gq2h0favahwh2d851vfv3n57c0.eth.sucks/

每次修改博客内容,创建新的页面后,均需再一次发布hugo,上传到ipfs,再发布一次IPNS,可用同一个密钥重复发布博客。

参考资料

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注