HugoサイトをNetlifyからCloudflare Pagesへ移行しました

How to migrate your Hugo blog from Netlify to Cloudflare Pages.

* 本ページはプロモーションが含まれています

私の他のブログでは移行が済んでいたNetlifyからCloudflareへ移行を、夏休みに入り時間が取れたので、このサイトでも移行を行いました。
他のブログで移行した作業とほぼ同様の作業なので、割と簡単に移行することができました。

Github 

Cloudflareと連携させるため、該当のリポジトリを連携許可に設定しておく。

また、Hugoなので、リポジトリ内にPublicディレクトリを作成しておく

Cloudflare 

Workers & PagesCreatePagesタブ

Connect to Git で Githubのcf-scribbleと連携し、Bigin setup

Project namescribble
deployed URLscribble-xxx.pages.dev
FrameworkHugo
Build commandhugo -b $CF_PAGES_URL
output directorypublic

後日build commandをhugo —gc —minify -b $CF_PAGES_URLへ変更

環境変数 

HUGO_VERSION0.130.0
CF_PAGES_URLhttps://scribble-xxx.pages.dev

Save & Deploy

デプロイが成功したら、https://scribble-xxx.pages.devへ接続できることを確認する

DNS 

このサイトのドメインは既にCloudflareの管理下にて、netlifyへCNAMEで設定していた

CloudflareのCustom Domainsでscribble.washo3.comを設定すると、よしなにCloudflareのDNS設定を変更してくれる

この後、検証が完了するとDNSの移行が完了

CF_PAGES_URLをhttps://scribble.washo3.com へ変更し、再ビルドする

Netlifyから修正 

security headers 

hugoのプロジェクト直下にあった_headersを削除し、/static/フォルダ内に_headersを作成する

https://scribble-xxx.pages.dev/*
  X-Robots-Tag: noindex

/pubic/*
  X-Frame-Options: DENY

/*
Content-Security-Policy: upgrade-insecure-requests
Expect-CT: max-age=7776000, enforce
Referrer-Policy: strict-origin-when-cross-origin
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Permissions-Policy: geolocation=(); midi=();notifications=();push=();sync-xhr=();accelerometer=(); gyroscope=(); magnetometer=(); payment=(); camera=(); microphone=();usb=(); xr=();speaker=(self);vibrate=();fullscreen=(self);

robots.txt 

User-agent: *
Disallow:/admin/
Disallow:/categories/
Disallow:/tags/
Sitemap: https://scribble.washo3.com/sitemap.xml

まとめ 

今まで、GitlabのリポジトリとNetlifyの連携にて、このサイトを運用してきましたが、GitlabもNetlifyもほぼ利用する機会が減ったこと、国内からのアクセスではCloudflareの方が速度が速いとの事で移行を決断しました。
現状では、Githubのcodebaseやcopilotが便利で圧倒的にGithubの方が利用頻度が高いですね。
最後に、NetlifyとGitlabには今までお世話になりました。


See also