Hero img
cloudflare pagesで無料でサイトを公開

cloudflare pagesの無料枠でサイトを公開する方法。

無料で使用できるホスティングサービス。色々と試してみた結果cloudflare pagesを使うことにした。


目次

  • cloudflare pagesでウェブページを無料公開
  • 環境
  • なぜCloudflare Pagesを使うことにしたのか
  • 最終的にcloudflareを選んだ理由
  • ウェブページを公開する方法
  • ウェブページを公開するまでの流れ
  • Cloudflare Pagesを使う手順
  • github連携
  • ビルド&デプロイ設定
  • 注意してほしいところ
  • cloudflare nodeバージョン
  • build command
  • NPM_FLAGS
  • ビルド設定情報
  • ドメイン設定
  • Nameserveの設定
  • DNSレコードの設定
  • DNSレコード追加
  • まとめ

cloudflare pagesでウェブページを無料公開

cloudflare pagesを利用して、ホームページを無料で公開する方法をご紹介します。
cloudflare以外の選択肢はこちらをご確認ください。

環境

  • React(Gatsby)を使用している。
  • GitHubを使用している。
  • node ver16である。17とか18はビルドが通らない...(未解決) wordpressは使えませんのでご注意ください。

なぜCloudflare Pagesを使うことにしたのか

今まで、lolipopを使用していましたが
lolipopにこだわらずに無料でウェブページを公開することが可能なのを気づきました。
無料でウェブページを公開できるサービスは思ったより多く存在しています。
無料だから「低スペック、遅い、不便」、有料だから「安心、高速、使いやすい」と思っていましたが、そんなこと無かったです。
今の時代無料でも凄く多くの事を実現できてしまいます。
脱線しますがherokuさんは完全に有料になってしまってちょっと悲しかったが、しょうがない。

最終的にcloudflareを選んだ理由

最終的にcloudflareを選んだ理由として

  • 高速なサイト配信:CloudflareのグローバルなCDNが、サイトの配信を高速化してくれます。
  • ドメインメールを利用できる:CloduflareとGmailを利用してドメインメールが使用できます。
  • ビルドが早い:他のホスティングサービスと比較し、ビルド早い方
  • 無料で利用可能:無料枠が結構広く完全無料で利用できる。
  • デプロイが簡単:Git連携でPushすれば、本番用、確認用のサイトがすぐに作成される。

何と言ってもドメインメールを使えることです。
正直メールサーバーとか建てたくないし、管理もしたくない。そのため有料の必要があると思っていましたが、cloudflareでドメインメールが使えるので、全てcloudflareでやってしまうことに決めました。

ここではウェブページ公開までの手順を紹介します。

ウェブページを公開する方法

cloudflareでウェブページを公開する為にcloudflare pagesというものを使います。
ウェブページを公開するにあたって以下の3つはできている前提で進めます。

  • GitHubでプロジェクトを作成している。
  • cloudflareのアカウントを作成している。
  • ドメインを取得している。

ウェブページを公開するまでの流れ

cloudflareでウェブページを公開する為に必要な項目

  1. 1.github連携
  2. 2.ビルド&デプロイ設定
  3. 3.Nameserverの変更
  4. 4.DNSレコードの設定

※コマンドや、直接アップロードでもウェブページ公開は可能です。

Cloudflare Pagesを使う手順

Cloudflare Pagesを使う手順は、以下の通りです。

github連携

  1. 1.左のpagesタブを選んでconnect to Gitでプロジェクトを作成します。 cloudflare-create-project

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

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

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

ビルド&デプロイ設定

  1. 5.ビルド等の設定の項目があるので適切に入力していきます。 私の場合ブランチはmain、フレームワークはGatsbyを使用しています。
    これらはフレームワークを選択するとある程度自動で入力してくれます。 cloudflare-build-setting

注意してほしいところ

この設定だけではデプロイが失敗する場合が多いです。
次のビルド設定を修正する必要があります。

cloudflare nodeバージョン

nodeバージョンを指定する必要がある。

cloudflareは現時点(2023年1月23日)でNode.js12.18のバージョンを使用します。
nodeバージョンが古くてbuildエラーが発生するのでEnvironment variablesにnodeバージョンを指定する必要があります。 また、node 18バージョンがまだ使用できません。node18のバージョン以上でしか使えないプラグイン、フレームワークを使用している場合は。cloudflareが対応するまで待つしかありません。なので、gatsby5が使えない....

どうしても使いたいのであれば、先にローカルでビルドし、転送。自動化する場合は、git actionを利用し転送する方法があります。

build command

ビルドコマンドはプロジェクトのルートにあるpackage.jsonに記入されているビルドコマンドを使用するようにしましょう。

npm run build

#ダメな例
gatsby build
npx run start

NPM_FLAGS

Environment variablesに--legacy-peer-depsを追加

使用しているパッケージが古かったりすると「Could not resolve dependency」エラーが発生しビルドが正常にされないので --legacy-peer-depsをEnvironment variablesに入れます。

ビルド設定情報

最終的にビルド設定はこのようになりました。

  1. 1.production branch: main
  2. 2.framework preset: Gatsby
  3. 3.Build output directory : /public

4.Enviroment variables 環境変数

  1. 1.GATSBY_API_URL:https://yumeno.me <--私の環境なので無視しください
  2. 2.GENERATE_SOURCEMAP:false
  3. 3.NODE_VERSION:v16.14.0
  4. 4.NPM_FLAGS:--legacy-peer-deps

pagesのsettingsから確認、修正ができます。 cloudflare-buildsettings-view cloudflare-envsettings-view

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

ドメイン設定

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

Nameserveの設定

1.pagesからプロジェクトを選択し、カスタムドメインの設定を行います。 cloudflare-domain-setting

2.ドメインを入力します。 cloudflare-domain-input

3.DNS移行を開始 cloudflare-dns-start

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

5.プランはフリーを選ぶ。 cloudflare-pages-select-plan

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

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

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

8.その他の設定を行います。

cloudflare-quick-start-guide-start
  1. 1.HTTPSの有効化
cloudflare-enable-https
  1. 2.HTTPSを常に使用する。 cloudflare-always-https

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

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

最終的にこのような設定になっています。 cloudflare-quick-start-guide-end

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

DNSレコードの設定

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

  • まずウェブページの設定ができるページに飛びます。個人的にここを探すのが難しかったので画像を載せます。 cloudflare-yourwebsites

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

DNSレコード追加

レコードを追加します。以下の通りです。

  • Type : CNAME
  • NAME : @
  • Target : yourclouflare website
  • Proxy status : Enable cloudflare-dns-set-record

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

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

まとめ

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

関連記事

コメント

コメントを書く

質問や、間違いがありましたら、お気軽にどうぞ

※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください