はじめに
ブログを始めたいけれど、サーバー代やドメイン代が気になる——そんな人に最適なのが、GitHub PagesとHugoの組み合わせだ。GitHub Pagesは無料で使えるホスティングサービスで、Hugoは高速な静的サイトジェネレーター。両者を組み合わせれば、ランニングコストをゼロに抑えつつ、プロ品質のブログを運用できる。
本記事では、実際にこのサイト(netguide.jp)もHugoで構築している筆者が、ゼロからブログを公開するまでの手順を解説する。
Hugoとは
HugoはGo言語で書かれた静的サイトジェネレーターだ。Markdownで記事を書き、コマンド一発でHTMLファイルを生成する。WordPressのようなデータベースは不要で、生成されたHTMLをサーバーにアップロードするだけでサイトが完成する。
Hugoの主な特徴は以下の通り。
- 高速なビルド:数百ページのサイトでも数秒で生成完了
- テーマ豊富:公式サイトで300以上のテーマが公開されている
- 多言語対応:i18n機能を内蔵しており、日本語+英語のような多言語サイトも簡単に構築できる
- カスタマイズ性:テンプレート言語はシンプルで、自由度が高い
GitHub Pagesとは
GitHub Pagesは、GitHubが提供する無料のWebホスティングサービスだ。リポジトリにHTMLファイルをプッシュするだけで、自動的にWebサイトとして公開される。独自ドメインの設定にも対応しており、HTTPSも無料で有効にできる。
セットアップ手順
1. Hugoのインストール
まずはローカル環境にHugoをインストールする。
macOSの場合:
brew install hugo
Windowsの場合:
winget install Hugo.Hugo
確認:
hugo version
2. 新しいサイトを作成
hugo new site my-blog
cd my-blog
3. テーマの追加
好きなテーマを選んで追加する。以下は人気のテーマ「PaperMod」の例。
git init
git submodule add https://github.com/adityatelange/hugo-PaperMod themes/PaperMod
テーマを有効にするには、hugo.toml(またはconfig.toml)に以下を追記する。
theme = "PaperMod"
4. 最初の記事を作成
hugo new content posts/first-post.md
生成されたファイルの先頭にはFront Matter(記事のメタ情報)が自動で挿入される。draft: trueをfalseに変更して公開状態にする。
5. ローカルでプレビュー
hugo server -D
ブラウザでhttp://localhost:1313にアクセスすると、作成したサイトが表示される。
GitHub Pagesへのデプロイ
1. GitHubリポジトリの作成
GitHubで新しいリポジトリを作成する。リポジトリ名は<ユーザー名>.github.ioにすると、そのままGitHub PagesのURLとして使える。
2. デプロイ用ワークフローの設定
GitHub Actionsを使って、自動デプロイを設定する。.github/workflows/hugo.yamlを作成し、以下の内容を記述する。
name: Deploy Hugo site to Pages
on:
push:
branches: ["main"]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: peaceiris/actions-hugo@v3
- run: hugo --minify
- uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
3. プッシュして公開
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
git push -u origin main
プッシュ後、GitHub Actionsが自動的にビルドとデプロイを実行する。数分後にはhttps://ユーザー名.github.io/リポジトリ名/でサイトが公開されている。
カスタムドメインの設定(オプション)
独自ドメインを持っている場合、GitHub Pagesに設定できる。
- リポジトリのSettings → Pages → Custom domainにドメインを入力
- ドメインのDNS設定で、以下のAレコードまたはCNAMEを追加
185.199.108.153185.199.109.153185.199.110.153185.199.111.153
- または
<ユーザー名>.github.ioへのCNAMEレコードを設定
HTTPSはGitHubが自動で証明書を発行・管理してくれる。
まとめ
GitHub PagesとHugoの組み合わせは、コストゼロで本格的なブログを運用できる最良の選択肢の一つだ。サーバーメンテナンスの必要がなく、Markdownで記事が書けるため、執筆に集中できる。ぜひこの機会に、自分だけのブログを始めてみてほしい。

