那么,我們該怎么樣把我們的網(wǎng)站部署在IPFS之上,或者是如何在IPFS之上部署靜態(tài)內(nèi)容(例如個人網(wǎng)站)呢?
接下來,我會列出可用于任何文件,例如純HTML文件,由靜態(tài)網(wǎng)站生成器(如Jekyll,Hugo,Hexo和Gatsby)生成的網(wǎng)站,甚至是媒體文件的部署方法,因此,讓我們開始吧。
如果您已安裝并正在運(yùn)行IPFS Desktop,則可以使用常規(guī)文件選擇器添加文件。只需導(dǎo)入包含您靜態(tài)網(wǎng)站內(nèi)容的目錄即可。
IPFS CLI允許使用add子命令添加文件和目錄。
最后一行打印的哈希是整個目錄的CID,因此也是我們網(wǎng)站的CID。我們可以看到托管在
“https://ipfs.io/ipfs/QmeUG2oZvyx4NzfpP9rruKbmV5UNDmTQ8MoxuhTJGVZVTW/”上的示例網(wǎng)站
提示:在您的網(wǎng)站中使用相對鏈接非常重要,因?yàn)镮PFS網(wǎng)關(guān)的URL類似于<gateway>/ipfs/<cid>/file.ext。
在最后一節(jié)中,我們添加的文件可以在我們的 IPFS節(jié)點(diǎn)網(wǎng)絡(luò)中找到,這就是IPFS網(wǎng)關(guān)能夠解析它并將其顯示在瀏覽器中的原因。
但是,一旦關(guān)閉IPFS?daemon,該站點(diǎn)很可能將無法訪問。即使在IPFS上請求了某些內(nèi)容之后,接收節(jié)點(diǎn)也成為該內(nèi)容的主機(jī),但是在12小時后將對這些內(nèi)容進(jìn)行收集。那么,我們?nèi)绾卧跊]有服務(wù)器的分散式網(wǎng)站中全天候備份您的網(wǎng)站?
Welcome,Pinning
在IPFS上固定一些內(nèi)容的節(jié)點(diǎn)將永遠(yuǎn)托管它(直到取消pinning它)。諸如Pinata之類的固定服務(wù),可將文件固定在其IPFS節(jié)點(diǎn)上。如此一來,網(wǎng)站將始終可用。
在Pinata中,如果內(nèi)容已經(jīng)上傳到IPFS,則可以上傳文件或僅提供其哈希值。這是我固定我們上面上傳的示例網(wǎng)站的方式。
提示:最好使用多種固定服務(wù)固定您的站點(diǎn),以實(shí)現(xiàn)冗余。
自動化部署
您可能已經(jīng)注意到,使用IPFS非常容易,至少比處理我們使用的傳統(tǒng)網(wǎng)絡(luò)要容易。但是,每次您要更改文件時都必須重復(fù)此過程,這并不是很方便。因此,我們可以借助Fleek這樣的工具,可以幫助自動完成上面列出的所有步驟。
Fleek就像Travis或CircleCi一樣用于IPFS部署。您可以將其Github帳戶與其關(guān)聯(lián),并使用Github掛鉤,F(xiàn)leek將在每次推送至Github存儲庫時觸發(fā)部署。他們還固定部署的所有內(nèi)容。
此外,我使用Hexo生成了此博客,并且能夠在Fleek本身中添加一個構(gòu)建步驟,因此無需生成HTML并將其推送到我的存儲庫。這是我使用的構(gòu)建命令: