HUGOサイトをCLOUDFLAREでビルドする

ホスト先候補

HUGOで作成した静的ページをどこでホストする候補として下記の方法を考えました。

  • 普段使用しているISPのホームページサービス
  • お名前.comのレンタルサーバー
  • AWSのS3
  • GCPのCloud Storage
  • GitHub Pages
  • Netlify
  • CLOUDFLARE

ISPのホームページサービス

HTTPSに対応できていない。独自ドメインを使用するには商用の契約が必要。
すぐに候補から外れました。

お名前.comのレンタルサーバー

既にドメインを取得しているので候補として有力だった。
静的ページをホストするのが希望の私とは合わなかった。(サーバを借りて色々したいわけじゃない)
料金も少し高めだったので候補から外れました。

AWSのS3

AWSを使用してみたかったが、サイト作成時はGoogleでメールを使用していたこともあり候補から外れました。

GCPのCloud Storage

サイト作成時にGoogleでメールを使用していたこともあり、当初はCloud Storageでホストを考えていた。
実際に使用した。ローカルPCにてビルド、Cloud Storageにファイルを配置 を毎回するのは面倒だと思い始めた。

GitHub Pages

GitHubでソース管理して、public配下をGitHub Pagesでホストを考えた。 GitHub Pagesについて調べているときに、Netlify と CLOUDFLARE を知ったため候補から外れた。

Netlify

閾値を超えた時の料金が怖くて候補から外れた。(不要な心配だが)

CLOUDFLARE

GitHubから自動でビルド、HTTPSも無料なので利用を決めました。

CLOUDFLARE

アカウント作成と設定

アカウント作成の流れでPagesの設定が表示されました。
GitHubアカウントの登録とリポジトリとブランチの選択、ビルドの構成と問題なく進んでいきました。

ビルドエラー

CLOUDFLAREでビルドするとエラーになりました。
PostCSSのエラーとテンプレートのエラーが出ていました。

PostCSSのエラー

Building sites … ERROR 2022/05/05 09:23:57 error: failed to transform resource: POSTCSS: failed to transform “scss/main.css” (text/css): PostCSS not found; install with “npm install postcss-cli”. See https://gohugo.io/hugo-pipes/postcss/

PostCSSではStyleからcharsetを削除しています、なくなっても問題はないので一度削除します。
参考
HUGOで作成したページでスタイルにcharsetが出力され、有効なAMPにならない

テンプレートのエラー

ERROR 2022/05/05 09:23:58 render of “page” failed: “/opt/buildhome/repo/layouts/_default/single.html:5:44”: execute of template failed: template: _internal/opengraph.html:5:44: executing “_internal/opengraph.html” at <.>: range can’t iterate over /image

ローカルPCではエラーになっていないので、バージョンが違うかなと当たりをつける。

CLOUDFLAREでのHUGOのバージョン変更

環境変数を定義することでバージョンの変更ができます。
HUGOとGOのバージョンをローカルPCと同じにすることでエラーが解消されました。

リンク

Deploy a Hugo site

Last Mod: May 6, 2022