メインコンテンツへスキップ
HugoブログをNetlifyで公開し、独自ドメインを設定した手順
  1. Posts/

HugoブログをNetlifyで公開し、独自ドメインを設定した手順

·262 文字·2 分
技術 Hugo
じぇい
著者
じぇい
プログラミングや技術的な学びを中心に、日常の気づきをまとめています。

はじめに
#

前回Hugoでセットアップしたブログを、Netlifyで公開して独自ドメインを設定しました。Value Domainでドメインを取得し、Google Cloud DNSでDNS管理をしているケースでの設定方法をまとめます。

Netlifyへのデプロイ準備
#

netlify.tomlの作成
#

まず、プロジェクトのルートディレクトリにnetlify.tomlを作成しました。このファイルでNetlifyのビルド設定を定義します。

[build]
  publish = "public"
  command = "hugo --gc --minify"

[build.environment]
  HUGO_VERSION = "0.148.0"
  HUGO_ENV = "production"
  HUGO_ENABLEGITINFO = "true"

[[redirects]]
  from = "/netlify/*"
  to = "/index.xml"
  status = 200

[[headers]]
  for = "/*"
  [headers.values]
    Referrer-Policy = "strict-origin-when-cross-origin"
    X-Content-Type-Options = "nosniff"
    X-Frame-Options = "DENY"
    X-XSS-Protection = "1; mode=block"

[[headers]]
  for = "/*"
  [headers.values]
    Cache-Control = "public, max-age=31536000, immutable"

[[headers]]
  for = "/css/*"
  [headers.values]
    Cache-Control = "public, max-age=31536000, immutable"

[[headers]]
  for = "/js/*"
  [headers.values]
    Cache-Control = "public, max-age=31536000, immutable"

設定のポイント
#

  1. ビルド設定

    • publish = "public": Hugoが生成する公開ディレクトリ
    • command = "hugo --gc --minify": ビルドコマンド(不要ファイル削除とHTML圧縮)
    • HUGO_VERSION: 使用するHugoのバージョンを明示的に指定
  2. セキュリティヘッダー

    • XSS攻撃やクリックジャッキングを防ぐためのヘッダーを設定
    • Referrer-Policyで参照元情報の送信を制御
  3. キャッシュ設定

    • 静的アセット(CSS、JS、画像)に長期キャッシュを設定
    • サイトの高速化に貢献

.gitignoreの作成
#

ビルド成果物をGitに含めないよう.gitignoreも作成:

# Generated files by hugo
/public/
/resources/_gen/
/assets/jsconfig.json
hugo_stats.json

# Executable may be added to repository
hugo.exe
hugo.darwin
hugo.linux

# Temporary lock file while building
/.hugo_build.lock

# Node
node_modules/

# Mac
.DS_Store

GitHubへのプッシュ
#

git add .
git commit -m "Netlifyデプロイ設定を追加"
git push origin main

Netlifyでのデプロイ
#

  1. Netlifyでアカウント作成
  2. 「Add new site」→「Import an existing project」を選択
  3. GitHubと連携し、リポジトリを選択
  4. ビルド設定はnetlify.tomlから自動的に読み込まれる
  5. 「Deploy site」をクリック

数分でデプロイが完了し、https://[ランダムな名前].netlify.appでサイトが公開されます。

独自ドメインの設定
#

1. Value Domainでドメイン取得
#

Value Domainで希望のドメインを取得しました。今回はサブドメインでブログを運用することにしました。

2. Google Cloud DNSの設定
#

Value DomainのネームサーバーをGoogle Cloud DNSに変更済みの場合:

  1. Google Cloud Consoleで該当のDNSゾーンを開く
  2. 新しいレコードセットを追加:
    • 名前: blog(使用したいサブドメイン)
    • タイプ: CNAME
    • TTL: 300
    • データ: [あなたのサイト名].netlify.app

3. Netlifyでカスタムドメインを設定
#

  1. Netlifyのサイト設定 → Domain management
  2. 「Add custom domain」をクリック
  3. blog.yourdomain.comを入力
  4. DNS設定の確認が行われ、正しく設定されていれば自動的に有効化

4. HTTPS証明書の設定
#

NetlifyはLet’s Encryptを使って自動的にSSL証明書を発行してくれます。

  1. Domain settingsで「HTTPS」セクションを確認
  2. 「Verify DNS configuration」をクリック
  3. 数分待つと自動的に証明書が発行される

HugoのbaseURL設定
#

最後に、Hugoの設定ファイルでbaseURLを更新:

# config/_default/hugo.toml
baseURL = "https://blog.yourdomain.com/"

まとめ
#

Netlifyを使うことで、以下のメリットがありました。

  1. 簡単なデプロイ: GitHubにプッシュするだけで自動デプロイ
  2. 高速なCDN: 世界中のエッジサーバーから配信
  3. 無料のHTTPS: Let’s Encrypt証明書を自動管理
  4. カスタムドメイン: サブドメインでもCNAMEで簡単設定
  5. 自動ビルド: netlify.tomlで環境を適切に制御

Value Domain + Google Cloud DNS + Netlifyの組み合わせは、柔軟性が高く、管理もしやすいのでおすすめです。

参考リンク
#

関連記事

Hugoでブログをセットアップした手順
·159 文字·1 分
技術 Hugo
Hugoを使ってブログをセットアップする手順を解説します
Claude Codeが好きすぎて「学習帳」を始めた話
··43 文字·1 分
日記 自己紹介
Agent Codingツールとの出会い、毎日の実験、失敗も含めた学びを記録していきます