Hugoで作ったサイトを設置するにふさわしいWebホスティングサービスを調べて、VercelかNetlify、Cloudflareの3択に絞った。Vercelは無料プランでは一切の商用利用が認められていない。このサイトではアフィリエイトリンクはあまり貼っていないが、全くないわけでもない。Netlifyは調べている過程で、日本からのアクセスは遅いという話(5年前の記事だが)があり、対処法はあるらしいが手間を掛けるのは勘弁なので、候補から外した。
Cloudflareを検討
Cloudflareは無料プランでも商用利用可能。Gitリポジトリーを通したビルドは月間500回まで。ファイル数は20,000。1ファイルのファイルサイズは25MiBまで。この中で少し気掛かりな制限はファイル数か。現状、このサイトには11,000ファイルがある。2025年の1年間で約800ファイルが増えているので、このペースだと10年後には20,000を超えている。また、ファイルサイズが数百MBあるので、ローカルプレビューや同期の負荷が重い(そのため現状でも画像ファイルは過去2年分しかローカルに保持していない)。この対策として、昔のGoogle Driveのように外部配信可能なクラウドストレージサービス “Cloudflare R2” を使った方法がある。記事と画像でアップロード先を変えるとなると、一手間加えないといけないが、自動同期まで設定できれば、そこまで大きな負担にはならないだろう。
Hugoテンプレートを修正
今のテンプレートはHugoを8年前からアップデートせずに組み合わせて使っているため、Hugoの最新版でプレビュービルドしたところ、いくつかの仕様が変わった部分で不具合が発生した。私のテンプレートはインデックスのpaginatorとタグ、カテゴリーのインデックスページをあまり一般的でない形に改造しているので、ここを修正するのに少し手間取った。
サブディレクトリーに置けない問題
GithubにファイルをアップロードしてCloudflareでディプロイを組むところまではできた。Github Desktopでプッシュした変更は、間もなくCloudflareでHugoが自動的に実行される。これは確かに便利だ。
しかし、ここで一つ難題が発覚した。私のサイトは一つのドメインにサブディレクトリーでHTMLページ群とHugoで生成したページ群を住み分けしている。一方、Cloudflareの自動ビルドはサブドメイン単位で設定される。また、旧来のHTMLサーバーのようなFTPアクセスやファイルマネージャーというものは存在しない。サイトの構造を変えないといけないようだ。HTTP 301応答でリダイレクトを組むことはできそうだが、それは結局、構造の変更を受け入れることになる。8年間維持してきたページ構造を変えることは私としては避けたい。Cloudflareは断念して、今より運用コストが下がるCORESERVERへ丸ごと移すのが無難なんかねぇ。うーむ。