GitHubとCloudflare Pagesを活用したHexoブログのサーバーレスデプロイガイド

準備段階

  • GitHubアカウントの登録:https://www.github.com
  • Cloudflareアカウントの登録:https://www.cloudflare.com
  • Gitのダウンロード:https://git-scm.com/download
  • Node.jsのダウンロード:https://nodejs.org/ja

Hexo設定

1. Hexo CLIのインストール

Hexo CLIツールをグローバルにインストールします

npm install -g hexo-cli

2. Hexoプロジェクトの作成

# Hexoをインストールしたいディレクトリに移動します。ここではDドライブにインストールします。
cd d:/
# ディレクトリでhexoを初期化し、blogフォルダを作成します。blogは任意の名前に変更可能です。
hexo init myblog

3. テーマのインストール

3.1 リモートテーマのインストール

.gitmodulesファイルを作成し、以下のコードをコピーして適宜修正します。リモートテーマは直接編集できないため、必要に応じてテーマリポジトリをForkして自身のGitHubにコピーしてください。

[submodule "themes/landscape"]
    path = themes/landscape
    url = https://github.com/hexojs/hexo-theme-landscape.git
3.2 ローカルテーマのインストール

ローカルでのデバッグ用

# blogフォルダに移動します。
cd myblog
# テーマをthemesディレクトリにインストールします。
git clone https://github.com/hexojs/hexo-theme-landscape.git themes/landscape
# 必要なプラグインをインストール
npm install hexo-renderer-marked --save
npm install hexo-renderer-stylus --save
# RSS機能を有効に
npm install hexo-generator-feed --save
3.3 npm依存関係のインストール

一部のテーマはnpmパッケージに依存します。

npm install
3.4 _config.ymlの修正

任意のエディタでhexoルートディレクトリにある_config.ymlファイルを編集します。以下のような形式になります:

# サイト情報
title: 私のブログ # タイトル
subtitle: 'ブログのサブタイトル' # サブタイトル
description: 'ブログの説明文' # 説明
keywords: # キーワード
author: 佐藤太郎 # 著者名
language: ja # 言語設定
timezone: ''

テーマを有効にするため、_config.yml内のtheme:をテーマフォルダ名に置き換えます。

# 拡張機能
## プラグイン: https://hexo.io/plugins/
## テーマ: https://hexo.io/themes/
theme: landscape
3.5 .gitignoreファイルの編集

hexoルートディレクトリの.gitignoreファイルを編集し、public/を除外します。以下は参考です。

.DS_Store
Thumbs.db
db.json
*.log
node_modules/
.deploy*/
_multiconfig.yml
public/

4. 記事の作成

hexo new post "記事のタイトル"

5. カテゴリページの作成

# categoriesはカテゴリ名
hexo new page categories

6. 記事へのカテゴリとタグの追加

title: 私の最初の記事
date: 2024-07-12 10:00:00
# カテゴリ
categories:
  - カテゴリA
  - カテゴリB
# タグ
tags:
  - タグX
  - タグY

7. 生成とプレビュー

設定完了後、ローカルでプレビューを有効にします

# キャッシュのクリーンアップ
hexo clean
# 静的ファイルの生成
hexo generate
# サービスの起動
hexo server

ブラウザで表示されるアドレスにアクセスします。

# デバッグ用アドレス
localhost:4000
# デバッグサービスの停止
ctrl+c

GitHub設定

1. SSHキーペアの生成

SSHキーペアがない場合は、以下のコマンドで生成します:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

生成された公開キーの内容をコピーします:

cat ~/.ssh/id_rsa.pub

GitHubにログインし、SettingsSSH and GPG keysNew SSH keyに公開キーを貼り付けて保存します。

2. Gitユーザー名とメールの設定

ローカルリポジトリディレクトリで、Gitユーザー名とメールを設定します:

git config --global user.name "あなたの名前"
git config --global user.email "your_email@example.com"

GitHubでメールが非公開設定になっている場合は、事前に解除するかGitHubが提供するプライバシー保護されたメールアドレスに変更してください。解除方法:SettingsEmailsKeep my email addresses privateのチェックを外します。

3. GitHubへのプッシュ

HexoプロジェクトをGitHubリポジトリにプッシュします

git status
git init
git add README.md
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin git@github.com:/yourusername/your-repo.git
git push -u origin main

4. 行末文字の自動処理

warning: in the working copy of 'package.json', LF will be replaced by CRLF the next time Git touches itという警告が表示された場合は、以下のコマンドを実行します。この問題は通常git add .実行後に表示されます。

git config --global core.autocrlf true

Cloudflare Pages設定

1. CloudflareでのHexoデプロイ

Cloudflareにログインし、言語を日本語に切り替えます。次にWorkers & Pagesに移動し、PagesGitHubリポジトリを接続します。以下が主な手順です:
プロジェクト名:任意ここでは分かりやすい名前を付けます。
フレームワークプリセット:なし
ビルドコマンド:npm run build
出力ディレクトリ:public
最後にデプロイを開始をクリックします
Cloudflareのビルドが完了すると、ランダムなCloudflare提供のドメインが割り当てられます。後で独自ドメインをバインドできます。デプロイが完了したら、Cloudflareが自動的に割り当てたドメインを開いて、正しくインストールされているか確認します。
ドメインはexample-xyz.pages.devのような形式になります。

タグ: Hexo github Cloudflare Pages ブログ サーバーレスデプロイ

7月25日 04:25 投稿