無料で使用できるホスティングサービス。色々と試してみた結果cloudflare pagesを使うことにした。
cloudflare pagesを利用して、ホームページを無料で公開する方法をご紹介します。
cloudflare以外の選択肢はこちらをご確認ください。
今まで、lolipopを使用していましたが
lolipopにこだわらずに無料でウェブページを公開することが可能なのを気づきました。
無料でウェブページを公開できるサービスは思ったより多く存在しています。
無料だから「低スペック、遅い、不便」、有料だから「安心、高速、使いやすい」と思っていましたが、そんなこと無かったです。
今の時代無料でも凄く多くの事を実現できてしまいます。
脱線しますがherokuさんは完全に有料になってしまってちょっと悲しかったが、しょうがない。
最終的にcloudflareを選んだ理由として
何と言ってもドメインメールを使えることです。
正直メールサーバーとか建てたくないし、管理もしたくない。そのため有料の必要があると思っていましたが、cloudflareでドメインメールが使えるので、全てcloudflareでやってしまうことに決めました。
ここではウェブページ公開までの手順を紹介します。
cloudflareでウェブページを公開する為にcloudflare pagesというものを使います。
ウェブページを公開するにあたって以下の3つはできている前提で進めます。
cloudflareでウェブページを公開する為に必要な項目
※コマンドや、直接アップロードでもウェブページ公開は可能です。
Cloudflare Pagesを使う手順は、以下の通りです。
1.左のpagesタブを選んでconnect to Gitでプロジェクトを作成します。

2.connect githubでcloud flareとgithubを連結します。

3.githubで使用するリポジトリを指定します。
特定のリポジトリのみで良いので「Only select repositories」を選んでアップする予定のリポジトリを指定します。

4.cloudflare pagesでアップするリポジトリを選んで「Begin setup」をクリックする。


この設定だけではデプロイが失敗する場合が多いです。
次のビルド設定を修正する必要があります。
cloudflareは現時点(2023年1月23日)でNode.js12.18のバージョンを使用します。
nodeバージョンが古くてbuildエラーが発生するのでEnvironment variablesにnodeバージョンを指定する必要があります。
また、node 18バージョンがまだ使用できません。node18のバージョン以上でしか使えないプラグイン、フレームワークを使用している場合は。cloudflareが対応するまで待つしかありません。なので、gatsby5が使えない....
どうしても使いたいのであれば、先にローカルでビルドし、転送。自動化する場合は、git actionを利用し転送する方法があります。
ビルドコマンドはプロジェクトのルートにあるpackage.jsonに記入されているビルドコマンドを使用するようにしましょう。
例
npm run build
#ダメな例
gatsby build
npx run start
使用しているパッケージが古かったりすると「Could not resolve dependency」エラーが発生しビルドが正常にされないので --legacy-peer-depsをEnvironment variablesに入れます。
最終的にビルド設定はこのようになりました。
pagesのsettingsから確認、修正ができます。

ビルドが正常にできればここからウェブページの確認ができます。

カスタムドメインの設定を行います。
ドメイン設定は変更しても即反映しないので、設定自体が間違っているのか、まだ反映されてないだけなのか分からないので困る。気長に待つしかない...
1.pagesからプロジェクトを選択し、カスタムドメインの設定を行います。

2.ドメインを入力します。

3.DNS移行を開始

4.ドメインをもう一度入力します。

5.プランはフリーを選ぶ。

6.DNSレコードの設定。
レコード設定は後で修正するので、とりあえず何も気にせず「Continue」

7.ここで表示指定されていることを実行します。
今使用しているネームサーバー設定を削除し、新たにCloudflareのネームサーバーを指定してあげます。
(nameserverの変更は後でもいいですが反映に時間がかかるため、早めに設定した方がいいです)

参考までにNameserverはこのように設定します。
お名前.comの場合はここのdnsの変更の部分のみを参考ください。

8.その他の設定を行います。
2.HTTPSを常に使用する。

3.Auto Minify無効
Auto Minifyはコードを圧縮してくれるのだが、スタイルが崩れることが多いので無効にしておく

4.Brotliの無効化。こちらはお好みで、分からなければ無効化にしておきましょう。

最終的にこのような設定になっています。

9.nameserver設定完了後
nameserverを変更した後に「Check nameservers」をクリックします。

nameserverの設定が終わったのでDNSレコード設定を行います。

1.DNS設定タブを開いてレコードを追加します。
CNAMEレコードが既に追加されている場合は以下DNSレコード追加の操作は不要です。
レコードを追加します。以下の通りです。

Targetはcloudflareから提供されているドメインを入力してください。pagesから確認できます。私の場合〇〇.pages.devとなっています。

最終的にこのようにCNAMEが登録されていれば完了です。

Cloudflare Pagesは、静的サイトのホスティングやデプロイを手軽に行えるサービスです。高速な配信、無料で利用可能、簡単なデプロイ手順、多様なカスタマイズオプションなど、さまざまなメリットがあります。
設定する必要があるのはNameserver、DNSレコード、githubのbuild&deployであり、初めての場合は少し困るかもしれないが、それ以外の設定は、他のホスティングサービスと差が無いと思う。
次回はcloudflareでドメインメールを使うを紹介します。