この記事は2734文字7で読めます

#Table of Contents

#なぜこんなことを・・・

いまさらにはなりますがNetlify CMSを使ってみたくなったのでGatsbyを使ってブログ作ってみました。

#登場人物

#Netlify

https://www.netlify.com/

Netlifyとは静的ホスティングサービスですが、S3とは違いGitHubのpush契機にBuildが走るCI機能などが充実していてこれでOK感ある。なお、Netlifyのビルド時間をGitHub Actionsで0時間にする方法も後の記事で紹介しています。

Identityという認証も用意されているのでCMSサイトも作れちゃう。

個人的にはNetlity Buttonがデザインよくてかっこいいという印象がもともと強かったです。

Deploy to Netlify

#実はすごかった Netlify CMS

https://www.netlifycms.org/

NetlifyにGithubへのアクセスキーを持たせることで、CMS上でコンテンツを編集、GithubへのPushを一気にやってしまうことができます。 さらに記事のWorkflowもGitHub Flow に乗っけることができるので、CMSで編集しながらにしてレポジトリはぐちゃぐちゃにならない。

これ結構いいアイディア!

#Gatsby

https://www.gatsbyjs.org/

便利便利といったものの、一からCMSを作るのはそれなりに骨が折れます。

と思っていたら最近はGatsbyというReactで作られたCMSがありました。すごい。

Gatsbyのアーキテクチャ図:多数のデータソースからGraphQLで接続しReactで静的ページを生成する仕組み

公式に載っていた図を見ると数多のDatasourceにGraphQLで接続し、Reactで静的なページを作るという感じ。

MarkdownをGithubにPostすれば完全に求めている感じのことができそう。すごいすごい。

#さっそく作ってみる

#Netlify対応版のGatsby-starterをダウンロードする

https://github.com/netlify-templates/gatsby-starter-netlify-cms

git cloneしてきます。

とりあえずローカル上で動かしてみます。

npm install
npm start

するとコーヒー屋さん(?)のページが出てきます。

Gatsby Starterのデフォルト画面:コーヒーショップのテンプレートページ

このままだとコーヒーショップを経営することになるのでゴリゴリReact書いていい感じにしてください。

CMSの要素は残す必要があるため、ComponentsのTemplateを編集するときはMarkdownで定義している要素に過不足なくするようご注意ください。

私が慣れていないだけですが、GraphQLでエラーが出るとエラーがめっちゃ追いにくい・・・。後にNetlify Formを使った簡易Contact Formも作ってみました。

#Netlifyのアカウント用意する

無事サイトができたら、Netlifyに挙げていきます。

NetlifyのGitHub連携画面でデプロイするレポジトリを選択する画面

アカウントを作ってGithubと連携するとDeployするレポジトリを選択できます。

今回はblogというレポジトリを作りましたのでそちらを連携させます。

画面に沿って進んでいけば、特に追加の設定なくサイトがDeployできると思います。

Deployできるとデプロイ先のURLが発行されます。

独自ドメインを持っていましたらここで設定してしまえばいいと思います。

参考: Custom Domains

Netlifyの独自ドメイン設定画面

#CMSの管理画面を設定する

無事にDeployできましたら、CMSの管理画面を設定します。

Netlify GeneralのSite Members設定画面

General => Site Membersから、アカウントを作成し登録します。

できたら、作ったサイトの管理画面 /admin にアクセスします。

設定がうまくいっていればログイン画面からコンテンツの編集画面が開けます。

Netlify CMSのコンテンツ編集画面のログイン後のダッシュボード

CMSから記事を登録したい(GithubにCMSからPushしたい)時は追加でGitGatewayを設定します。

GithubのPersonalAccessTokenから作成したAPIキーを設定してあげればよいです。

NetlifyのGitGateway設定画面でGitHub PersonalAccessTokenを入力する画面

#完成

結構爆速。

他の人のGatsbyを見るとTravisとか使ってCI回している・・。真似しよう・・。CIといえばGitHub Actionを使って簡単CIを作るのも便利です。

完成したGatsby製ブログのトップページ

#結論

Netlify CMSはすごいぞ!

完成したGatsby製ブログのトップページ

tubone24にラーメンを食べさせよう!

ぽちっとな↓

Buy me a ramen