博客迁移至 IPFS
 
 
全文共 349 字

 

之前的方案是将博客制作成 Docker 镜像,但是这种方案我总感觉并不是容器虚拟化的最佳实践,或者说对于静态内容的 Hosting,总感觉使用容器怪怪的。

这两天发现,IPFS 可能是对于我这种静态博客相对来说比较理想的托管方式了。

配置方法

  1. 修改 config.toml 清空 baseurl =,让浏览器自己去计算各资源的位置,尽量不使用带有域名的路径。
  2. Cloudflare 增加 TXT 记录 _dnslink.tonychyi 内容为 dnslink=/ipfs/<hash>
  3. Cloudflare 域名 CNAME 到 www.cloudflare-ipfs.com

上传用脚本

#!/bin/bash

ZONE_ID=从CF处获得
RECORD_ID=从CF处获得
CF_MAIL=邮箱
CF_KEY=从CF获得

hugo

IPFS_PATH=$(ipfs add -Q -r public/ )

PREV_PATH=$(curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID" -H "X-Auth-Email: $CF_MAIL" -H "X-Auth-Key: $CF_KEY" -H "Content-Type: application/json" | jq -r .result.content | sed 's/dnslink=//' )

# 之前用 docker 构建镜像,现在不使用了
#docker build -t tonychee7000/wetofu-top .
#docker push tonychee7000/wetofu-top

ipfs pin add -r /ipfs/$IPFS_PATH

curl -X PATCH "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID" \
     -H "X-Auth-Email: $CF_MAIL" \
     -H "X-Auth-Key: $CF_KEY" \
     -H "Content-Type: application/json" \
     --data "{\"type\":\"TXT\",\"name\":\"_dnslink.tonychyi\",\"content\":\"dnslink=/ipfs/$IPFS_PATH\",\"ttl\":1,\"proxied\":false}" 2>/dev/null \
     | jq .success

# IPNS 解析慢,且 Cloudflare 支持不好,放弃,直接调用 Cloudflare 的 API 来更新解析记录会比较好。
#ipfs name publish $IPFS_PATH
ipfs pin rm -r $PREV_PATH

rm -rf public resources

Tags: #IPFS · #容器

 

TonyChyi © 2020 GPLv2