LoginSignup
14
9

More than 3 years have passed since last update.

Vue.jsのプロジェクトをIPFS上にホスティングし、ENS(Ethereum Name Service)でアクセス可能にする

Posted at

Vuee.jsで作成されたプロジェクトをIPFS上にデプロイし、EthereumのName ServiceであるENSに紐付けしてアクセスできるようにしていきたいと思います。

使うもの

Vueのプロジェクト作成

まずはVueのプロジェクトを作成していきましょう。
ここではvue-cliを使って簡単にプロジェクトを作成していきます。

$ npm install -g @vue/cli

次に、プロジェクトを作成します。

$ vue create my-project

作成されたらプロジェクトのディレクトリに移動して、走らせます。

$ cd my-project
$ yarn serve

ブラウザでhttp://localhost:8080/にアクセスして以下のようになっていればOKです。

Screenshot 2020-07-02 09.57.11.png

このままビルドしてデプロイすると画面が真っ白になるので、設定を変更していきましょう。
プロジェクトのルートにvue.config.jsを作成します。

そしてパスの設定を相対パスに変更します。

vue.config.js
module.exports = {
  publicPath: './'
};

参考:https://cli.vuejs.org/config/#publicpath

Githubにプッシュする

後で説明するfleekではGithubを使ってIPFSへのデプロイを実行していきます。
そこで、github上にリポジトリを作成し、作成したプロジェクトをプッシュしておきましょう。

IPFSにデプロイ

それでは次にIPFSにデプロイをしていきたいと思います。
今回はfleekというIPFSにgithub経由でデプロイできるサービスを使っていきましょう。

ちなみにそれ以外にも pinatatemporal といったサービスもあるので興味がある方は参照してみてください。

まずはfleekでアカウントを作成してください。無料で利用開始できます。
Hostingを選択します。

Add new siteを選択し、サイトを追加していきます。

Screenshot 2020-07-02 09.34.25.png

Connect with Githubでgithubに接続していきます。

Screenshot 2020-07-02 09.34.35.png

今回はipfs-demoというプロジェクトを作成しているので、そのリポジトリを選択します。
必要なチームやリポジトリが見つからない場合は、Configure the Fleek app on Githubから読み取るリポジトリを追加していきます。

Screenshot 2020-07-02 09.35.31.png

その後、デプロイ時の設定を行います。

Screenshot 2020-07-02 09.36.11.png

今回はVue.jsのプロジェクトなのですが、FrameworkにVue.jsがないのでOtherを選択します。
また、Vueはyarnでpackageをインストールした後、yarn buildでビルドするようになっているため
Build commandyarn && yarn buildとします。

publish directoryはデフォルトではdistだと思いますのでdistとします(自分で変更している場合はそれにあわせます)

設定が完了したらDeploy siteを押下していきます。

Screenshot 2020-07-02 09.36.36.png

ビルドが走り始めるので完了するまで待ちます。

Screenshot 2020-07-02 09.40.09.png

完了したあと、IPFS Hash Pendingとなっていたところが、Verify on IPFSに変わります。ここをクリックすることで、IPFS上にホスティングされていることを確認できます(数分待つこともあります)。

今回デプロイしたVue.jsのサンプル
https://ipfs.fleek.co/ipfs/QmU4zv5VyLPqKRUpotsrdxcmvFSvMJmfCLxbSj4gkZEWp4

なお、URL末尾のQmU4zv5VyLPqKRUpotsrdxcmvFSvMJmfCLxbSj4gkZEWp4がIPFS上のハッシュ値でユニークな値です。
このコンテンツはすでにIPFS上にあるため、他のIPFSのゲートウェイからでも参照できます。

例.
Cloudflareが提供してるゲートウェイ:
https://cloudflare-ipfs.com/ipfs/QmU4zv5VyLPqKRUpotsrdxcmvFSvMJmfCLxbSj4gkZEWp4/

ipfs自体が提供しているゲートウェイ:
https://gateway.ipfs.io/ipfs/QmU4zv5VyLPqKRUpotsrdxcmvFSvMJmfCLxbSj4gkZEWp4/

どこからでも同じコンテンツを参照できることがわかります。これもIPFSの特徴ですね。

これでデプロイは完了です。

ドメイン設定

最後にENSへの紐付けをしていきたいと思います。
まずはドメインを購入する必要がありますので以下のサイトにアクセスしましょう。

ここでほしいドメインを検索し購入することができます。

ほしいドメインを検索していきます。

Screenshot 2020-07-02 11.35.43.png

購入手続きを進めていきます。ENS購入には2度トランザクションを投げる必要があります。
まずは、購入の意思表示をし、他の人が同時に購入しようとしていないか待ちます。

Screen Shot 2020-06-26 at 10.27.41.png

その後、実際にドメイン代を支払って購入していきます。

Screen Shot 2020-06-26 at 10.28.53.png

トランザクションが取り込まれれば完了です。

Screen Shot 2020-06-26 at 10.29.56.png

ここからfleekに戻ります。Setting -> Domain Management -> ENSを選択します。

Screenshot 2020-07-02 09.48.24.png

Add Ensを押下します。

Screenshot 2020-07-02 09.48.36.png

先ほど購入したドメイン名をセットしVerifyします。(この時ドメインを購入したウォレットで接続しておきましょう)

Screenshot 2020-07-02 11.42.09.png

アドレスの確認されるので続けてYes, Add ENSしていきます。

Screenshot 2020-07-02 11.43.26.png

その後、fleekをENSのControllerとして設定します。
Set Fleek as controllerを選択します。

Screenshot 2020-07-02 11.45.54.png

ポップアップに同意します。

Screenshot 2020-07-02 11.46.45.png

トランザクションをなげ、成功すれば完了です。

Screenshot 2020-07-02 11.49.38.png

Metamaskなどを利用している場合は https://takase.eth にアクセスしていただくと、 https://gateway.ipfs.io/ipfs/QmU4zv5VyLPqKRUpotsrdxcmvFSvMJmfCLxbSj4gkZEWp4/ にリダイレクトされると思います。

Metamaskなどを利用していなくても.eth.linkには普通にアクセスできますので、こちらもためしてみてください。

https://takase.eth.link/
(※ 個人のethドメインなので、どこかで消すかも)

以上です。

14
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
9