WordPressからEmDash移行⑤|EmDash導入を実践!Cloudflareへデプロイ

WordPressからEmDash移行⑤|EmDash導入を実践!Cloudflareへデプロイ EmDash

「読むだけでは、よく分からない」。新しい道具は、触ってみるのが一番早いです。シリーズ「WordPressからEmDash移行」の第5回は、EmDash導入の実践として、EmDashを実際にCloudflareへデプロイしてみます。

今回の記事は、2026年10月22日に、テスト用のCloudflareアカウントの画面で実際に操作した記録です。コマンドの出力と、Cloudflareの管理画面の様子を、順番に紹介します。EmDashのデプロイの流れをつかんで、移行の前に試す練習にしてください。

EmDash導入の結論:コマンド3つで、公開用のサイトができる

先に結論です。実際に使ったコマンドは、この3つだけでした。

順番 コマンド やること
1 npm create emdash@latest プロジェクトを作る
2 npm run build サイトをビルドする
3 npx wrangler deploy Cloudflareへデプロイする

デプロイすると、データベース(D1)や画像の置き場(R2)などは、Wranglerが自動で作ってくれます。自分でCloudflareの管理画面を開いて、1つずつ作る必要はありません。

EmDash導入の準備:プロジェクトを作る

第4回で確認した準備(Cloudflareのアカウント、Node.js 22.22以降)がそろったら、プロジェクトを作ります。今回は、Cloudflare向けのブログのテンプレートを、コマンドの引数で指定しました。

npm create emdash@latest my-emdash-test -- --template cloudflare:blog --pm npm --install --no-sandboxed-plugins --yes

主な引数の意味は、次のとおりです。

引数 意味
--template cloudflare:blog Cloudflare向けのブログのテンプレート
--pm npm パッケージ管理にnpmを使う
--install 作成のあとに、依存関係をインストールする
--no-sandboxed-plugins サンドボックス化したプラグインを無効にする(初期値)。有効にするには、Workers Paidが必要
--yes 質問をスキップして、初期値で進める

実行すると、665個のパッケージがインストールされ、1分ほどでプロジェクトができました。引数を付けずにnpm create emdash@latestだけを実行すれば、対話式に選べます。

EmDash導入の設定:wrangler.jsoncを確認する

プロジェクトのwrangler.jsoncには、Cloudflareで使うサービスの設定が書かれています。今回は、あとで見つけやすいように、名前だけを変えました。

{
  "name": "emdash-demo",
  "main": "./src/worker.ts",
  "compatibility_flags": ["nodejs_compat"],
  "d1_databases": [{ "binding": "DB", "database_name": "emdash-demo-db" }],
  "r2_buckets": [{ "binding": "MEDIA", "bucket_name": "emdash-demo-media" }],
  "triggers": { "crons": ["* * * * *"] }
}

公式のドキュメントでは、DBやMEDIAといったバインディング名は、EmDashのアダプターと一致させる必要がある、とされています。また、一度デプロイしたあとは、リソースの名前を変えないよう注意されています。名前を変えると、別のリソースとして扱われるためです。

triggersのCron式は、予約公開やバックアップ、メンテナンスを、毎分実行するための設定です。

EmDashデプロイの手順:ビルドとデプロイ

ログインとビルド

Cloudflareへのデプロイには、Wranglerでの認証が必要です。npx wrangler loginを実行すると、ブラウザでCloudflareの許可画面が開きます。「Wranglerがアカウントにアクセスしようとしています」と表示されるので、内容を確認して許可します。許可の範囲には、WorkersやD1などの書き込み権限が含まれています。

ビルドは、次のコマンドです。今回は、約27秒で終わりました。

npm run build

デプロイ

最後に、デプロイです。

npx wrangler deploy

初めてのデプロイでは、Wranglerが、設定に書かれたリソースを、次の順番で作りました。

作られたもの 名前
KVの名前空間(ログインのセッション用) emdash-demo-session
D1データベース emdash-demo-db
R2バケット emdash-demo-media

そのあと、Workerがアップロードされ、公開用のURLが表示されます。Workerの起動時間は19 msでした。Cron Triggerも、「schedule: * * * * *」として登録されています。

EmDashデプロイの結果:Cloudflareの画面で確かめる

デプロイが終わったら、Cloudflareの管理画面で、何が作られたかを確かめます。

Workerの概要

EmDash導入後のCloudflareのWorkers & Pagesのemdash-demoの概要画面。バインディングとトリガー、メトリクスが表示されている

Workerの概要の画面では、バインディング(Workerが使うサービスとのつなぎ)が5つ表示されています。アセット、D1データベース、画像変換(Images)、R2バケット、KVです。トリガーも1つ(Cron)あります。

D1データベース

EmDash導入で作られたCloudflareのD1データベースの画面。emdash-demo-dbが作られている

D1の一覧に、emdash-demo-dbが増えています。画面の使用量には、読み取られた行数と書き込まれた行数が表示されていて、無料枠の上限(読み取り1日500万行、書き込み1日10万行)に対する使用量が確認できます。

R2バケット

EmDash導入で作られたCloudflareのR2オブジェクトストレージの画面。emdash-demo-mediaのバケットが作られている

R2にも、emdash-demo-mediaのバケットが作られました。

EmDashの初期設定:サイトを開いて、セットアップする

公開用のURLを開くと、サンプルのブログが表示されました。

デプロイ直後のEmDashのブログ。投稿がまだない状態で、記事を作成のボタンが表示されている

テンプレートのままなので、タイトルは「My Blog」、投稿は「No posts yet(まだ投稿がありません)」です。

管理画面は、/_emdash/admin/にあります。最初にアクセスすると、サイトのセットアップの画面が開きます。

EmDashのセットアップ画面の1つ目。サイトタイトルとキャッチフレーズ、始め方を選ぶ

1つ目の画面では、サイトタイトルとキャッチフレーズを決めます。始め方は、3つから選びます。

選択肢 中身
Sample content テンプレートのサンプルの投稿とページを入れて始める(新しいサイト向け)
Empty site コンテンツの種類だけを用意して、中身は空で始める
Import an existing EmDash site セットアップのあとに、ほかのEmDashのサイトから書き出した.emdashのパッケージを取り込む

次の画面では、管理者のアカウントを作ります。

EmDashのセットアップ画面の2つ目。メールアドレスと名前を入力する

メールアドレスと名前を入れて進むと、3つ目の画面でログイン(パスキーの登録)になります。パスキーは、パスワードの代わりに、端末の指紋認証などで本人確認をする仕組みです。

あるある:セットアップを、後回しにしてしまう

ここで、1つ注意があります。公式のデプロイの案内には、プレビュー用のデータベースが空の場合、最初に訪れた人が、セットアップを完了して管理者になれるため、すぐに完了するか、Cloudflare Accessで保護するよう書かれています。

本番のサイトも、セットアップが終わるまでは、管理者がまだいない状態です。デプロイしたまま後回しにすると、URLを知っている誰かが、先に管理者になる可能性があります。ごはんにたとえるなら、お店を開けたまま、「準備中」の札を出し忘れて、誰でも厨房に入れる状態です。デプロイしたら、すぐにセットアップを済ませるのが安全です。パスキーは、登録したホスト名でしか使えないので、本番に使うドメインで初期設定をするのがおすすめです。

EmDashデプロイのあと片づけ:テスト用のリソースを消す

今回のように試しで作ったものは、使い終わったら削除します。作ったものは、Worker、D1、R2、KVの4つです。放っておくと、管理画面に不要なものが残ります。

# Workerを削除する
npx wrangler delete emdash-demo

# D1データベースを削除する
npx wrangler d1 delete emdash-demo-db

# R2バケットを削除する
npx wrangler r2 bucket delete emdash-demo-media

KVの名前空間は、管理画面の「Workers KV」から削除します。削除は取り消せないので、名前をよく確かめてから実行してください。

今回のまとめと次回予告

項目 内容
EmDash導入の手順 作る(create)、ビルド(build)、デプロイ(wrangler deploy)
自動で作られるもの KV(セッション)、D1(データ)、R2(画像)
設定 wrangler.jsonc。バインディング名は変えない
注意 セットアップが終わるまで、最初のアクセス者が管理者になれる
あと片づけ 試しで作ったものは、名前を確かめて削除する

次回は、WordPressの記事を、EmDashへ移す方法を整理します。

→ 第6回:WordPressの記事をEmDashへ移す

ほかのCloudflare関連の記事は、当ブログの技術ネタからどうぞ。

参考

EmDash導入の要点を1枚にまとめた図

ITもごはんも、腹八分目が長続きのコツ!

コメント