我的IPFS托管设置

本文由IPFS原力区收集译制,版权所属原作者

Emiel Kollof:随我做一些IPFS托管操作,easy…

介绍

我的个人网站现在完全托管在IPFS上,本文将向你展示我如何操作的,以及我如何通过IPFS发布它。请注意,这些还是手动的步骤,我正在研究如何实现这些操作的自动化,这样我就可以编辑、提交和推送这些内容,并且可以在不进行思考的情况下自动完成所有这些操作。

我之前的设置使用了brilliant forestry.io,但缺点是它不能与Gitea兼容,我现在用Gitea代替GitHub。

所以,现在我仅手动操作,并没有太多工作量。继续看看是怎么做的。

但首先,让我们讨论一下我正在使用的工具。

会使用的工具

Hugo

我使用hugo渲染站点。Hugo是一个静态站点生成器。它将把标记页面转换成漂亮的HTML。此外,所有页面都是静态的,因此你不必担心跨站点脚本、数据库注入攻击或任何其他代码的问题,一切都是静态的。

另外,静态站点的另一个好处是速度快。不需要处理页面,不需要等待数据库查询,也没有什么会妨碍性能。所有需要做的就是为你的页面服务。不多也不少。而且,它可以放在potato上,而且速度仍然很快,这是一个双赢。

唯一的缺点是Hugo需要专门研究一下,如果你想制作自己的东西,你需要学习Hugo的预处理语言,而且有许多主题可供选择和修改。但你要准备好在相当长的一段时间内修修补补,

当然也有其他站点生成器,比如Jekyll,但是Hugo的速度更快,也更容易设置(Hugo只有一个二进制文件,Jekyll有一个Ruby deps)。

CloudFlare IPFS网关

我在CloudFlare上托管这个网站,这样做的好处是,可以免费使用CloudFlare的基础设施,它又好又快。它还处理DNS到IPFS网关,所以没有IPFS的人仍然可以访问你的内容。

用我的方法,你的域名也应该托管在Cloudflare上,因为我们将在更新网站时使用Cloudflare的API对DNS进行更改。

Pinata 和/或 Infura

Pinata和/或Infura是将你的站点固定在IPFS上的服务,Pinning是确保数据不会从IPFS中删除,并且它将保持数据的活动性,以便人们可以访问它,即使你自己的IPFS节点处于脱机状态。

你可以在自己的IPFS节点上托管你的网站,但这只能在你的IPFS节点上进行。像Pinata或Infura这样的固定服务可以确保它始终处于活动状态,即使你离线。

Pinata最多免费1GB的固定数据,infura是完全免费的,但有100MB空间的限制。当你的网站刚刚起步的时候,infura是一个很好的选择,但是当你成长的时候,你应该谨慎的选择pinata。不过,它是便宜的。

IPFS问题部署

在呈现静态站点之后,可以让ipfs-deploy将站点上传到infura和/或pinata以固定它,它将更新cloudflare DNS以使你的_dnslink记录指向网络上正确的IPFS哈希。

把这些组合起来…

Cloudflare设置

首先,确保你的域名DNS托管在cloudflare上,将你的DNS迁移到Cloudflare非常简单,根据你的注册商的不同,这不会花费你几个小时的时间。大部分时间都是等待DNS的处理,所以在开始之前要确保TTLs较低,完全转移之后你可以再增加它们。最坏的情况是,将域名服务器切换到Cloudflare可能需要一天的时间,所以准备是值得的。

如果你已经在Cloudflare上,那么你已经设置好了。获取Cloudflare API密钥并将其保存到某个地方,你需要它的时候。你可以在你的帐户设置中找到它。

获取Pinata帐户(可选)

如果你打算使用Pinata,去建立帐户。你需要这个来获取另一个API密钥,我们将使用它来固定我们的站点。

确保你的网站是兼容的

好的,让我们假设你已经准备好了一个hugo网站(那里有很多教程),你花了一些时间使它变得非常漂亮,并且你想要摆脱你的web服务器。

Ok,开始

首先,打开configtoml确保这些线在里面:

canonifyurls = true

relativeurls = true

这将确保静态站点中的所有链接都是相对的,并且不会指向其中有https://的链接,这可能会破坏内容。

另外,现在是将站点提交/推送到git存储库的时候了,现在假设你已经完成了此操作(而且,配置git超出了本文的范围)。

配置ipfs-deploy

我们在设置DNS之前首先执行此操作,因为我希望在使用Cloudflare IPFS网关指向它之前在IPFS中托管内容。

在hugo项目的根目录中,需要一个.env-file。此文件包含我们需要能够一次性完成这一事情的所有密钥和凭据。

重要

在将站点提交/推送到Git repo之前,请确保该文件位于.Gitignore中。你不希望你的Cloudflare API密钥遍布github,所以:

$ echo".env">> .gitignore

$ git add .gitignore

$ git commit .gitignore

$ git push

你的.env文件应该是这样的:

(注意,pinata条目是可选的,当你第一次开始时,infura pinner现在可能很好)

让我们运行这个:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190823A06E7Z00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券