<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloudflare on 屑籠というかゴミ箱</title><link>https://blog.teandt.net/tags/cloudflare/</link><description>Recent content in Cloudflare on 屑籠というかゴミ箱</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><lastBuildDate>Mon, 17 Aug 2026 20:18:06 +0900</lastBuildDate><atom:link href="https://blog.teandt.net/tags/cloudflare/index.xml" rel="self" type="application/rss+xml"/><item><title>CloudflarePagesへの移行</title><link>https://blog.teandt.net/posts/2026/08/20260817-201806/</link><pubDate>Mon, 17 Aug 2026 20:18:06 +0900</pubDate><guid>https://blog.teandt.net/posts/2026/08/20260817-201806/</guid><description>&lt;h2 id="経緯"&gt;経緯
&lt;/h2&gt;&lt;p&gt;これまではてなBlogで15年以上記録残していたものの、そろそろはてなもヤバそうだなというのを感じたので自ドメインで運用できるところに置くことにしようと検討。&lt;br&gt;
セルフホストでも良かったんですが、このためだけに公開するのも微妙なので静的サイトにしておけば候補いくらでもあるなと思ってHugo移植を試してみた。&lt;/p&gt;
&lt;p&gt;以前なら移行のデータ変換で結構大変だったと思うんだけど、今だと生成AIで90%くらいの完成度の移行が完成したので多少手作業でメンテして仮構成までは完了。&lt;/p&gt;
&lt;h2 id="方針について"&gt;方針について
&lt;/h2&gt;&lt;p&gt;ローカル環境で記事を書いて表示確認後、GitHubにpush。&lt;br&gt;
mainブランチを公開用として、それ以外のブランチ設定はPreviewになるようなのでPreview確認後にmainにマージして公開という運用にしようかと。&lt;/p&gt;
&lt;p&gt;この時問題になりそうなのがconfig.tomlのbaseURL項目をどうするか、なんだけど確認したところローカルで&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo server -D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;を実行すると、&lt;code&gt;http://localhost:1313/&lt;/code&gt; 扱いになるようなので公開用の本番URLを記載するのが良さそう。&lt;br&gt;
あとPreview環境は環境変数を使って起動時に渡すのが良いみたい。&lt;code&gt;build.sh&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/usr/bin/env bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt; -euo pipefail
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CF_PAGES_BRANCH&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;dev&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; hugo &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --buildDrafts &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --gc &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --minify &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --baseURL &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CF_PAGES_URL&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; hugo &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --gc &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --minify
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="cloudflareの設定"&gt;Cloudflareの設定
&lt;/h2&gt;&lt;p&gt;CloudflarePagesのプロジェクト追加が非常にわかりにくくなっていた。&lt;br&gt;
ダッシュボードから[コンピュート]→[Workers&amp;amp;Pages]→[アプリケーションを作成する]を選択するのは良いんですが、このままだとWorker作成に進んでしまう。&lt;br&gt;
画面をよく見ると画面の最下部に&lt;code&gt;Pages を導入しようとお考えですか? 始める&lt;/code&gt;というメッセージとリンクが。酷い&lt;/p&gt;
&lt;p&gt;&lt;img alt="Pages選択は画面下部" class="gallery-image" data-flex-basis="484px" data-flex-grow="201" height="657" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2026/08/20260817-201806/image.png" srcset="https://blog.teandt.net/posts/2026/08/20260817-201806/image_hu_cf6076877501b0a1.png 800w, https://blog.teandt.net/posts/2026/08/20260817-201806/image.png 1327w" width="1327"&gt;&lt;/p&gt;
&lt;p&gt;ここで、既存Gitリポジトリをインポートする、に設定して対象のリポジトリを指定してセットアップを開始。&lt;br&gt;
次のページのビルド設定は&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フレームワークプリセット：Hugo&lt;/li&gt;
&lt;li&gt;ビルドコマンド：hugo &amp;ndash;gc &amp;ndash;minify&lt;/li&gt;
&lt;li&gt;環境変数：HUGO_VERSION = 0.159.2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;で指定。&lt;/p&gt;
&lt;p&gt;最後の環境変数については最初指定せずに実行したらビルドエラーになったんだけど、ログを見たらHUGOバージョンがかなり古かったので検証環境で使用したものを指定。&lt;br&gt;
いったんプロダクション環境だけで進める。&lt;/p&gt;
&lt;p&gt;ビルドが完了すると作成したプロジェクト名にしたがってURLが割り当てられるので、これを自分のドメインに割り当て。&lt;br&gt;
プロジェクトのメニューに「カスタムドメイン」があるのでここで指定すればOK。&lt;br&gt;
ドメインをCloudflareで管理していればあっさりサブドメイン追加されて完了。&lt;/p&gt;
&lt;p&gt;あと、元のPagesURLが邪魔なのでカスタムドメインにリダイレクトするように指定する。&lt;br&gt;
こちらは指定するドメインのダッシュボードから[ルール]→[設定]→[一括リダイレクト]で&lt;code&gt;一括リダイレクトリストの作成&lt;/code&gt;から作成する。&lt;br&gt;
パラメータのところは以下を指定した。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; クエリ文字列を保持する&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; サブドメインを含める&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; サブパスの一致&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; パスサフィックスを保持する&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="プレビューページのcloudflare-accessの設定"&gt;プレビューページのCloudflare Accessの設定
&lt;/h2&gt;&lt;p&gt;プロダクションに指定したbranch以外はプレビュー扱いになる。&lt;br&gt;
全部仮のURLが割り振られるのでそのままにしているとランダム文字列とはいえアクセス可能なのが気になる。&lt;br&gt;
ということでCloudflare Accessで制限しようというのが基本方針のようで、設定項目にもそのような項目がある。&lt;br&gt;
プレビューを選択した状態で&lt;code&gt;プレビューアクセス&lt;/code&gt;の項目でを有効にして、普段使っているCloudflare Accessのポリシーを割り当てるのが良い。&lt;/p&gt;
&lt;p&gt;&lt;img alt="alt text" class="gallery-image" data-flex-basis="1650px" data-flex-grow="687" height="200" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2026/08/20260817-201806/image-1.png" srcset="https://blog.teandt.net/posts/2026/08/20260817-201806/image-1_hu_bdff88fe5bc079a.png 800w, https://blog.teandt.net/posts/2026/08/20260817-201806/image-1.png 1375w" width="1375"&gt;&lt;/p&gt;</description></item></channel></rss>