今回はじめて作ったHugoサイトで使った技術について軽くまとめました。
Hugo環境の構築
環境構築はNix flakeで行いました。
まず、
|
|
を実行して、テンプレートのflake.nixを生成します。
これを以下のように編集して、Hugoと今後使いそうな画像処理ツールを導入したnix shellを作るようにします。
flake.nix
|
|
後はシェルから、
|
|
を実行すればHugoが使えるシェル環境に入れます。
より便利にするために筆者はnix-direnvを導入しています。
nix-direnvでは、.envrcを以下のように用意して
- .envrc
|
|
以下を実行して実行を許可すると、ディレクトリの移動でflakeの内容が適用されたシェルに入れるので便利です。
|
|
リポジトリのセットアップ
以下のブログ記事とそのリポジトリを参考にしました。特に.gitignore,hugo.yamlはとても参考になりました。
まず以下を実行してblogを作成しました。
|
|
使用しているテーマStackは以下のようにsubmoduleとして導入しました。
|
|
Stack側のconfigであるhugo.yamlをプロジェクトルートにコピーして、デフォルトのconfigであるhugo.tomlを削除します。
|
|
記事を追加する時は
|
|
を実行してから、index.mdに記事を書きます。
ローカルでの確認
以下を実行して表示されたURL(デフォルトではlocalhost:1313)にブラウザからアクセスすればokです。
記事やconfigに変更があると自動で再ビルドを実行して反映してくれます。
|
|
デプロイ
Cloudflare Pagesにデプロイしました。 Cloudflare側から引っ張ってくるリポジトリを指定して、デプロイするブランチ(普通はmain)を指定すればそのリモートブランチへのpushをトリガにデプロイしてくれます。
ドメイン取得
Cloudflareは明朗会計でよくお勧めされていて、サイトをCloudflare Pagesでホスティングすることもあるので、Cloudflare Registrarで取得しました。 基本的には、トップページのドメインを購入するから手順通りに操作すれば良いです。 日本の住所を英語で入力するのは、慣れずに少し手こずりましたがそれ以外はすんなりと取得手続きできました。
Pagesにドメインを指定するには、Pagesの画面から独自ドメインを設定すればokです。
画像の配信
直接画像もリポジトリにpushしてしまうと、ビルドが重くなってしまうので他の方法で配信する方法を探していました。 以下の記事によると、個人ブログならCloudflare R2の無料枠で十分そうなので採用することにしました。
- 参考
適当な名前のR2バケットを作成してから、Cloudflareで取得したこのサイトのドメインakiblog.orgのサブドメインimages.akiblog.orgで公開するように設定すれば、自動でDNSに設定されました。
以下はテストとして、筆者のアイコンの画像を配信した例です。
現状は、R2の管理画面から画像をアップロードしていますが、 AWS S3互換なのでAWS CLIを使ったアップロードなども検討しています。
ハマったポイント
最初、Cloudflareの画面からPagesの設定に行くのが分かりませんでした。 というのも、右側の コンピューティングとAI -> Workers & Pages -> アプリケーションを作成する、と進むと出てくるのはWorkersの選択画面でPagesが見つからなかったからです。
と思ったら下にLooking to deploy Pages? Get startedと小さくありました!(これは見落しそう)