<span id="deploy-hugo-on-lizard" />

# Lizard で Hugo をデプロイする

Lizard は、`hugo --minify` で Hugo のソースサイトをビルドし、`public/` を nginx 経由で port `80` で配信できます。生成済み HTML だけをアップロードするのではなく、Hugo の設定と `content/` を含む Hugo のソースディレクトリから開始してください。

この手順で使われている設定とファイルを含む、[完全なソース例](https://github.com/lizard-build/docs/tree/main/_examples/hugo)から始めてください。

<span id="prepare-the-source" />

## ソースを準備する

ビルドに必要な Hugo の設定、content、layouts、assets、およびすべてのテーマファイルを含めてください。Hugo の検出は、`hugo.toml`、`hugo.yaml`、`config/_default/` のような設定に加え、`content/` ディレクトリを探します。

| 設定 | 値 |
|---|---|
| ビルド | `hugo --minify` |
| Output | `public/` |
| Production server | nginx |
| サービスポート | `80` |

`baseURL` には、末尾のスラッシュを含む想定公開サイト URL を設定します。別のホスト名を割り当てた後は再ビルドし、リンクや生成されるサイトマップ項目がそれを使うようにしてください。[Hugo の build and output guide](https://gohugo.io/getting-started/usage/) を確認してください。

<span id="check-build-dependencies" />

## ビルド依存関係を確認する

デフォルトの Hugo ビルドイメージは `hugomods/hugo:base` です。これはプロジェクト用の Hugo バージョンを固定しません。テーマに特定の Hugo バージョン、extended edition、または Node ツールが必要な場合は、それらの依存関係とテスト済みバージョンを含む完全な Dockerfile を使ってください。

Hugo の設定と `content/` により、Go や Node の検出より前に Hugo ビルダーが選択されます。`go.mod` を使う Hugo Modules プロジェクトでは、Go サポート付きのビルドイメージが使われます。`package.json` があると、ビルドは Dockerfile を要求して停止します。Node の依存関係をインストールし、assets をビルドしてから、`hugo --minify` を実行してください。[ビルドの決定順序](https://lizard.build/ja/docs/concepts/build-pipeline#build-decision-order) を参照してください。

<span id="build-locally-and-deploy" />

## ローカルでビルドしてデプロイする

```bash
hugo --minify
hugo server
```

最初のコマンドの後で `public/` を確認してください。ローカルサーバーを使って content とテーマのレンダリングを確認してください。`hugo server` は本番の起動コマンドではありません。

[CLI setup](https://lizard.build/ja/docs/framework-guides#prepare-the-project) の後、ソースディレクトリをデプロイします:

```bash
lizard init --name hugo-site
lizard add --service web
lizard up --service web --port 80
lizard logs --build --service web --json
lizard ps --json
```

生成されたホスト名を使う場合は、最初のデプロイ後にそれを確認してください:

```bash
lizard service show web --json
```

そのホスト名を使って、`hugo.toml` の `baseURL` を設定します:

```toml
baseURL = "https://YOUR_PUBLIC_HOST/"
```

ビルドで公開 URL が使われるように、変更した設定をアップロードします:

```bash
lizard up --service web --port 80
```


ローカルの生成済み出力とシークレットは除外してください。アップロード時は、送信するディレクトリ内にテーマのソースファイルが実際に存在することを確認してください。リモートの submodule 参照だけではテーマ内容にはなりません。

<span id="verify-the-deployed-site" />

## デプロイ済みサイトを確認する

公開中のホームページ、内部記事、画像を開いてください。生成された canonical URL と `sitemap.xml` を確認します。適当な存在しないパスの HTTP ステータスもテストしてください。新しい Hugo ビルドは生成された HTML を配信し、存在しないページには HTTP 404 を返します。このガイドのシンプルなソース構成では、カスタム Dockerfile は不要です。現在のルーティングルールを反映するには、古いイメージを再ビルドしてください。

カスタム nginx ポリシーが必要な場合は、[静的ルートと404エラー](https://lizard.build/ja/docs/framework-guides/static-routing) を使ってください。カスタム Hugo ビルドステージには、テーマが必要とする Hugo バージョンとツールを含め、`hugo --minify` を実行し、`public/` を配信用イメージにコピーする必要があります。

テーマ assets が見つからない場合は、ビルドログ、テーマソース、`baseURL` を確認してください。誤ったビルダーが起動する場合は、Hugo の設定と `content/` がアップロードのルートにあることを確認し、既存のサービスオーバーライドを調べてください。Hugo は静的ファイルを生成するため、content の変更には新しいビルドが必要です。

September 9, 2026 のデプロイ確認とその制限については、[テスト済みバージョンとクラウド結果](https://lizard.build/ja/docs/framework-guides/validation) を参照してください。

