blowfish/exampleSite/content/docs/hosting-deployment/index.ja.md
yuubinnkyoku 0be3c2af90 📝 Update
2024-12-23 01:50:38 +00:00

8.3 KiB

title weight draft description slug tags series series_order
ホスティングとデプロイ 14 false Blowfish サイトのデプロイ方法について説明します。 hosting-deployment
docs
hosting
deployment
github
netlify
render
Documentation
14

Blowfish で構築された Hugo ウェブサイトをデプロイする方法はたくさんあります。このテーマは、ほとんどすべてのデプロイシナリオで柔軟に対応できるように設計されています。

Blowfish は、テーマ全体で相対的な URL を使用して構築されています。これにより、サイトをサブフォルダや GitHub Pages などのホストに簡単にデプロイできます。baseURL パラメータが config.toml ファイルで設定されていれば、通常、これが機能するために特別な設定は必要ありません。

Hugo の公式ホスティングとデプロイドキュメントは、サイトのデプロイ方法を学ぶのに最適な場所です。以下のセクションには、特定のプロバイダーでスムーズにデプロイするのに役立つ、テーマ固有の設定の詳細が記載されています。

プロバイダーを選択してください:


GitHub Pages

GitHub では、GitHub Pages でのアクションを使用したホスティングが可能です。この機能を有効にするには、リポジトリで Pages を有効にし、サイトをビルドしてデプロイするための新しいアクションワークフローを作成します。

ファイルは YAML 形式で、GitHub リポジトリの .github/workflows/ ディレクトリ内に配置し、.yml 拡張子を付けて名前を付ける必要があります。

{{< alert >}} 重要: branches の下とデプロイステップの if パラメータに、プロジェクトで使用されているソースブランチの正しいブランチ名を設定してください。 {{< /alert >}}

# .github/workflows/gh-pages.yml

name: GitHub Pages

on:
  push:
    branches:
      - main

jobs:
  build-deploy:
    runs-on: ubuntu-20.04
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          submodules: true
          fetch-depth: 0

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: "latest"

      - name: Build
        run: hugo --minify

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        if: ${{ github.ref == 'refs/heads/main' }}
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_branch: gh-pages
          publish_dir: ./public

設定ファイルを GitHub にプッシュすると、アクションが自動的に実行されます。最初は失敗する可能性があり、GitHub リポジトリの Settings > Pages セクションにアクセスして、ソースが正しいことを確認する必要があります。gh-pages ブランチを使用するように設定する必要があります。

{{< screenshot src="github-pages-source.jpg" alt="GitHub Pages ソースのスクリーンキャプチャ" >}}

設定が完了したら、アクションを再実行すると、サイトが正しくビルドおよびデプロイされます。すべてが正常にデプロイされたことを確認するには、アクションログを参照してください。

Netlify

Netlify にデプロイするには、新しい継続的デプロイサイトを作成し、それをソースコードにリンクします。Netlify UI では、ビルド設定を空白のままにすることができます。使用するドメインを設定するだけで済みます。

{{< screenshot src="netlify-build-settings.jpg" alt="Netlify ビルド設定のスクリーンキャプチャ" >}}

次に、サイトリポジトリのルートに netlify.toml ファイルを作成します。

# netlify.toml

[build]
  command = "hugo mod get -u && hugo --gc --minify -b $URL"
  publish = "public"

[build.environment]
  NODE_ENV = "production"
  GO_VERSION = "1.16"
  TZ = "UTC"  # 希望のタイムゾーンに設定

[context.production.environment]
  HUGO_VERSION = "0.104.1"
  HUGO_ENV = "production"

[context.deploy-preview.environment]
  HUGO_VERSION = "0.104.1"

この設定では、Blowfish を Hugo モジュールとしてデプロイすることを想定しています。別の方法でテーマをインストールした場合は、ビルドコマンドを単に hugo --gc --minify -b $URL に変更します。

設定ファイルをリポジトリにプッシュすると、Netlify は自動的にサイトをデプロイします。エラーがないか確認するには、Netlify UI のデプロイログを確認してください。

Render

Render へのデプロイは非常に簡単で、すべての設定は Render UI を介して行います。

新しい 静的サイト を作成し、それをプロジェクトのコードリポジトリにリンクします。次に、ビルドコマンドを hugo --gc --minify に、公開ディレクトリを public に設定するだけです。

{{< screenshot src="render-settings.jpg" alt="Render 設定のスクリーンキャプチャ" >}}

リポジトリに変更をプッシュするたびに、サイトが自動的にビルドおよびデプロイされます。

Cloudflare Pages

Cloudflare は、Hugo ブログをホストできる Pages サービスを提供しています。これは、git リポジトリからサイトをビルドし、Cloudflare の CDN でホストします。Hugo デプロイメントガイドに従って始めてください。

Cloudflare が提供する Rocket Loader™ 機能は、JavaScript を使用した Web ページのレンダリングを高速化しようとしますが、テーマの外観スイッチャーが壊れます。また、スクリプトが間違った順序で読み込まれるため、サイトの閲覧時に迷惑な明暗の画面のちらつきが発生する可能性があります。

この問題は、次のように無効にすることで修正できます。

  • Cloudflare ダッシュボードに移動します
  • リストでドメイン名をクリックします
  • Speed セクションで Optimization をクリックします
  • Rocket Loader™ までスクロールして無効にします

Blowfish でビルドされた Hugo サイトは、この機能を無効にしても非常に高速に読み込まれます。

共有ホスティング、VPS、またはプライベート Web サーバー

従来の Web ホスティングを使用したり、独自の Web サーバーにデプロイしたりするのは、Hugo サイトをビルドしてファイルをホストに転送するのと同じくらい簡単です。

config.tomlbaseURL パラメータが、ウェブサイトのルートへの完全な URL (サブドメインやサブフォルダを含む) に設定されていることを確認してください。

次に、hugo を使用してサイトをビルドし、出力ディレクトリの内容を Web サーバーのルートにコピーすると、準備完了です。デフォルトでは、出力ディレクトリの名前は public です。

ホスティングプロバイダーが必要な場合は、Vultr または DigitalOcean を確認してください。これらのアフィリエイトリンクを使用してサインアップすると、最大 $100 の無料クレジットが付与されるため、サービスを試すことができます。