EmDashの始め方|非エンジニアがCloudflareでブログを公開した手順と注意点

CloudflareのCMS「EmDash」を、非エンジニアがAIの助けを借りて独自ドメインで公開するまでの手順と、つまずいた点(パスキーでログインできなくなった件など)、かかった費用をまとめました。

WordPress以外の仕組みで、自分のブログを作ってみたい。そう思って試したのが、Cloudflare(クラウドフレア)が公開している「EmDash(エムダッシュ)」です。

EmDashは、記事を書いたり、サイトを管理したりできる仕組み(CMS)です。WordPressと似た使い方ができますが、サイトを公開するまでの道のりは、大きく違います。

プログラミングが専門ではない私が、Claude Code(クロードコード)というAIの道具に手伝ってもらいながら、独自ドメインの個人サイトを公開するところまでやってみました。

Claude Codeは、パソコンの中で、コマンドを実行したり、ファイルを書き換えたりしてくれるAIです。私が日本語で「こうしたい」と伝えると、AIが操作してくれます。この記事に出てくるコマンドも、実際にはClaude Codeが実行したものです。みなさんが試すときは、自分で入力します。

結論:パソコンで動かすのは簡単。公開は、少し大変

結論から言うと、次のとおりでした。

  • 自分のパソコンでEmDashを動かすのは、簡単でした
  • インターネットに公開するには、Cloudflareの設定と、文字で命令を入力する操作(コマンド)が必要で、初心者には少しむずかしい場面がありました
  • 一番困ったのは、管理画面にログインできなくなったことです
  • 費用は、Cloudflareの無料で使える範囲で収まり、かかったのはドメイン代(年10.46ドル、約1,650円)だけでした

こんな人は、試しやすいと思います。

  • コマンドを、調べながらなら入力できる
  • WordPress以外の仕組みにも興味がある
  • Cloudflareを使ってみたい

逆に、設定を少なくして、すぐに記事を書き始めたい人は、WordPressのほうが始めやすいと思います。

この記事は、2026年10月13日に試した内容です。EmDashのバージョンは1.2.0でした。試してみようと思ったきっかけは、X(旧Twitter)で見かけた、keitowebaiさんの投稿です。

EmDashは、非エンジニアでも使える?

使えます。ただし、「自分のパソコンで動かす」ことと、「インターネットに公開する」ことでは、むずかしさが違いました。

やりたいこと

試した感想

自分のパソコンで動かす

比較的かんたん。コマンドが2つで動きます

管理画面を開く

WordPressに近い感じで、分かりやすい

Cloudflareに公開する

データベースなどの設定が必要

独自ドメインにする

Cloudflareでドメインを取ると、設定ファイルに1行足すだけでした

記事を書いて、運用する

まだ試せていません

最初から本番のブログにするより、まずは自分のパソコンで動かして、管理画面を触るところから始めるのがおすすめです。

EmDashとWordPressは、何が違う?

どちらも、管理画面から記事を書いて、公開できます。違うのは、サイトを動かす場所と、その準備です。

WordPress

EmDash

記事を書く画面

あり(管理画面)

あり(管理画面。WordPressに近い)

サイトを動かす場所

対応しているレンタルサーバー

Cloudflare Workersなど。自分で用意する

準備

管理画面から、かんたんにインストールできることが多い

動かす場所を用意して、自分で設定する

Cloudflare Workers(ワーカーズ)は、インターネット上でプログラムを動かしてくれる、Cloudflareのサービスです。WordPress用のレンタルサーバー(Xserverなど)とは仕組みが違うので、同じ手順では置けません。

つまり、記事を書く画面だけでなく、サイトを動かす環境も、自分で準備するのが、EmDashの特徴です。

プログラムを書く言葉(WordPressはPHP、EmDashはTypeScript)や、データを保存する仕組みの違いは、使うだけなら、知らなくても困りません。

公開する前に、用意するもの

必要なもの

用途と、ひとこと

Node.js(ノードジェイエス)のバージョン22.16以上

パソコンの上でプログラムを動かすための土台です。EmDashを動かすのに必要です。私は22.17を使いました

Cloudflareのアカウント

サイトの公開先に使います。無料で作れます

独自ドメイン

自分専用のサイトの住所です。私はCloudflareで取りました(必須ではありません)

クレジットカード

Cloudflareの画像置き場(R2)を使うとき、登録を求められました

ドメインを買わなくても、Cloudflareが用意してくれる住所(workers.dev)で、試すことができます。すでにドメインを持っている人は、Cloudflareで使えるように設定する方法もあります。

EmDashをCloudflareで公開する手順

Claude Codeに進めてもらった流れは、次のとおりです。

  1. パソコンでEmDashを動かす
  2. Cloudflare用のプロジェクトを作る
  3. データベースと画像の置き場を用意する
  4. 設定ファイルを直す
  5. インターネットに公開する(デプロイ)
  6. 管理画面で、最初の設定をする

1. パソコンでEmDashを動かす

目的:EmDashがどんなものか、安全な場所で確かめます。

ターミナル(文字で命令を入力する画面)を開いて、次のコマンドを入力します。

npm create emdash@latest

サイトのひな形(テンプレート)を選びます。ブログ向けの「Blog」や、基本の形の「Starter」などがあります。作ったフォルダに移動して、次のコマンドを実行します。

npm run dev

これで、パソコンの中だけで、サイトが動きます。管理画面は、次のアドレスから開けます。

http://localhost:4321/_emdash/admin

「localhost」は、自分のパソコンを表すアドレスです。ここで動かしたサイトは、まだインターネットには公開されていません。この段階では、Cloudflareのアカウントも、ドメインも要りません。

つまずいた点:Node.jsのバージョン

私のパソコンのNode.jsは、バージョン20.10でした。しかし、EmDash 1.2.0は22.16以上でないと動かない仕組みです。そのため、最初は動きませんでした。

そこで、nvm(Node.jsのバージョンを切り替える道具)を使って、22に切り替えました。

nvm use 22

同じエラーが出たときは、次のコマンドで、今のバージョンを確認してみてください。

node -v

2. Cloudflare用のプロジェクトを作る

目的:自分のパソコンで試したものとは別に、Cloudflareに置くための作業用フォルダ(プロジェクト)を作ります。
npm create emdash@latest my-site -- --template blog --platform cloudflare --no-sandboxed-plugins --pm npm --install --yes

長いコマンドですが、ブログ用のEmDashを、Cloudflare向けに作っています。my-site はプロジェクトの名前なので、好きな名前に変えられます。

--no-sandboxed-plugins は、「プラグイン(機能を足す部品)を、安全のために、ほかから切り離して動かす機能」を使わない、という指定です。この機能は、Cloudflareの有料プランが必要です。今回は無料で使える範囲で試したかったので、この指定を付けました。そのため、切り離して動かす必要があるプラグインは、使えません。

3. データベースと画像の置き場を用意する

目的:記事の文章と、画像を、保存する場所を作ります。

次のコマンドを、順番に実行しました。

cd my-site
npx wrangler login
npx wrangler d1 create my-site-db
npx wrangler r2 bucket create my-site-media

wrangler(ラングラー)は、Cloudflareを、ターミナルから操作するための道具です。wrangler login を実行すると、ブラウザが開くので、Cloudflareへのアクセスを許可します。

Cloudflareの許可画面(Wranglerがアカウントへのアクセスを求めている)

Cloudflareの許可画面。内容を読んで、「Authorize」を押します。

そのあと、2つの置き場を作りました。

  • D1:Cloudflareのデータベースです。記事の文章や、サイトの設定を保存します
  • R2:Cloudflareのファイル置き場です。記事に載せる画像などを保存します

ブログでいえば、「記事を入れる箱」と「画像を入れる箱」を、別々に用意するイメージです。

なお、公式ドキュメントでは、D1とR2は、デプロイのときに自動で作られると説明されています。私は先に自分で作りましたが、この手順を飛ばして、手順5に進む方法もあります。

つまずいた点:R2のエラー

R2を作ろうとすると、次のエラーが出ました。

Please enable R2 through the Cloudflare Dashboard

意味は、「Cloudflareの管理画面で、R2を有効にしてください」です。ダッシュボードのR2の画面で有効にしたら、作れました。このとき、クレジットカードの登録を求められました。

CloudflareのR2を有効にする画面(毎月の無料利用が含まれる)

R2を有効にする画面。無料で使える範囲が書かれていて、今回の支払いは0.00ドルでした。(カード番号の行は隠しています)

R2には、無料で使える範囲があります(保存できる量は10GBまで、書き込みは月100万回まで、読み込みは月1,000万回まで)。今回の画面では、支払いは0ドルと表示されました。ただし、使える範囲を超えると、料金がかかる可能性があります。

4. 設定ファイルを直す

目的:作ったD1とR2を、サイトにつなぎます。独自ドメインも、ここで指定します。

wrangler.jsonc というファイルを編集します。Cloudflareにサイトを公開するときの設定が書かれたファイルです。主に、次の項目を直します。

{
  "name": "my-site",
  "routes": [{ "pattern": "example.com", "custom_domain": true }],
  "d1_databases": [
    { "binding": "DB", "database_name": "my-site-db", "database_id": "(d1 createで表示されたID)" }
  ],
  "r2_buckets": [
    { "binding": "MEDIA", "bucket_name": "my-site-media" }
  ]
}

これは、説明のための抜粋です。ファイル全体を、これに置き換えるものではありません。直すのは、次の3か所です。

  • example.com:自分の独自ドメイン
  • my-site-db とデータベースID:作ったD1の情報
  • my-site-media:作ったR2の名前

独自ドメインを結びつけるには、そのドメインが、Cloudflareで管理されている必要があります。私はCloudflareでドメインを取ったので、ほかの会社からDNSの設定を移す作業は、要りませんでした。DNSは、ドメイン(サイトの住所)と、サイトの置き場所を結びつける仕組みです。ほかの会社で取ったドメインを使うときは、DNSの設定が、別に必要になります。

公式ドキュメントでは、先に `workers.dev` の住所で表示を確認してから、独自ドメインを足して、もう一度デプロイする順番が、すすめられています。私は、最初から独自ドメインの設定を入れて、デプロイしました(理由は、後ろの「パスキー」の節に書きます)。

5. インターネットに公開する(デプロイ)

目的:作ったサイトを、Cloudflareに載せて、公開します。
npm run deploy

このコマンドで、サイトが公開できる形に組み立てられて(ビルド)、Cloudflare Workersに反映されます。作ったサイトをインターネットに公開することを、「デプロイ」と言います。今回は、ログインの状態を保存するKV(ケーブイ)も、自動で作られました。

デプロイが終わったら、公開した住所をブラウザで開いて、サイトが表示されるか確認します。

つまずいた点:cronのエラー

デプロイのたびに、決まった時間に自動で動く処理(cron)の設定だけが、次のエラーになりました。

You need a workers.dev subdomain in order to proceed.

意味は、「workers.dev という、Cloudflareが用意してくれる住所が、まだ作られていません」です。サイトは表示できました。ただし、公式ドキュメントによると、cronは、予約公開(時間を決めて記事を出す機能)や、サイトの保守処理に使われます。このエラーが残ったままだと、それらが動かない可能性があります。

Cloudflareの管理画面(ダッシュボード)で、Workersのページを一度開くと、この住所が作られて、解消するようです。記事を書いた時点では、まだ解消できていません。

6. 管理画面で、最初の設定をする

目的:管理者のアカウントを作り、ログインできるようにします。

公開したサイトの https://自分のドメイン/_emdash/admin を開くと、セットアップ画面が出ます。サイトのタイトル、名前、メールアドレスを入れて、パスキーを登録します。

EmDashの最初のセットアップ画面

最初のセットアップ画面です。ここで、サイトのタイトルなどを入れます。

パスキーは、パスワードの代わりに、指紋認証や顔認証などでログインする方法です。

このセットアップは、先に済ませた人が、管理者になります。 デプロイしたら、すぐに自分で済ませてください。

一番困ったこと:管理画面にログインできなくなった

私は、Claude Codeの画面の中にあるブラウザ(Claudeアプリの中のブラウザ)で、セットアップをして、パスキーを登録しました。Claude Codeに画面を見てもらいながら進めるため、そのブラウザを使ったのです。ところが、普段使っているChromeでログインしようとすると、「保存したパスキーを使用する」の画面に、スマートフォンかUSBキーしか表示されず、ログインできなくなってしまいました。

Chromeのパスキー選択画面。スマートフォンとUSBキーしか選べない

Chromeのパスキーの画面。スマートフォンかUSBキーしか選べませんでした。

パスキーの仕組み

公式ドキュメントには、次のように書かれています。

  • パスキーは、作ったアドレス(ドメイン)でだけ使えます
  • パスキーは、ブラウザやパスワード管理サービス(iCloudキーチェーン、Googleパスワードマネージャー、1Passwordなど)を通じて使い、同期できる場合もあります

つまり、「登録したブラウザでしか使えない」わけではありません。ただ、今回は、Claudeアプリの中のブラウザで登録したパスキーを、Chromeから使えない状態でした。正確な原因までは、確かめられていません。

もう1つ大事なのが、「どのアドレスでセットアップしたか」です。最初のセットアップをしたアドレスが、サイトの住所として記録され、そのアドレスでだけ、パスキーが使えるようになります。そのため、本番の独自ドメインで、セットアップすることが大切です。私が最初から独自ドメインを設定してデプロイしたのは、このためです。

メールでも、ログインできなかった

別の方法として、メールでのログインも試しましたが、次のエラーになりました。

Email is not configured

EmDashを公開しただけでは、ログイン用のメールを送る機能は、使えるようになりません。メールでログインするには、別に、メール送信の設定が必要です。

メールでログインしようとして、メール送信が未設定のエラーが出た画面

メールでのログインを試した画面。「Email is not configured」と出ました。(メールアドレスは隠しています)

どうやって解決した?

公式ドキュメントには、「唯一の管理者で、メールも未設定の場合は、データベースを通じて、認証をリセットする必要がある」と書かれています。私は、この方法を使いました。データベースから、管理者のアカウントとパスキーの情報だけを消して、最初のセットアップ画面がもう一度出るようにしました。そして、いつも使うChromeで、パスキーを登録し直したら、ログインできました。サイトの記事などは、消さずに残しています。

ただし、データベースを直接直す方法は、大事なデータを消してしまう危険があります。同じことが起きても、いきなり消さないでください。

まず、次のことを確認してみてください。

  • 登録したときのブラウザや端末で、ログインできるか
  • パスキーが、iCloudキーチェーンなどで同期されているか

それでもだめで、最後の手段として行うなら、必ず先にバックアップを取ってください。

パスキーのトラブルを防ぐには

今回の経験から、最初の設定では、次の点に気をつけたほうがよいと感じました。

  1. 普段使っているブラウザで、セットアップする
  2. 本番の独自ドメインで、セットアップする
  3. ログインできたら、すぐに、別のパスキーも追加する(管理画面の「セキュリティ設定」から追加できます)
  4. パスキーの保存先が、同期されるものか確認する

私も、2つ目のパスキーを追加しようとしましたが、「このパスキーはすでに登録されています」と表示されました。同じ端末の同じ保存先からは、追加できないという意味でした。予備にするなら、スマートフォンなど、別の端末のパスキーが必要です。

AIに、どこまで任せたか

この作業は、AI(Claude Code)に手伝ってもらいながら進めました。

  • AIに任せたこと:プロジェクトの作成、コマンドの実行、設定ファイルの編集、デプロイ、エラーの意味を調べること、サイトの表示の修正(URLを短くする、英語を日本語にする)
  • 自分でやったこと:Cloudflareへのログインの許可、R2の有効化とカードの登録、ドメインの購入、パスキーの登録、Cloudflareのメール転送の設定

アカウントの作成、支払い、ログインの許可のような、お金やアカウントに関わる操作は、AIに任せず、自分でやることにしました。

コマンドの意味が分からなくても、AIにエラーの内容を見せると、原因の見当を付けてもらえました。ただし、パスキーの件のように、AIが原因を取り違える場面もありました。最後は、自分で状況を見て、判断する必要があります。

かかった費用

サイトを動かす部分は、Cloudflareの無料で使える範囲に収まりました。かかったのは、ドメイン代だけです。

項目

費用

EmDash

無料

Cloudflare Workers

0ドル(無料で使える範囲)

D1(データベース)

0ドル

R2(画像などの置き場)

0ドル

独自ドメイン(.com)

年10.46ドル(約1,650円)

Cloudflareでは、2026年11月1日から、.comの料金が11.17ドルに上がる予定と案内されていました。

ただし、無料で使える範囲には、上限があります。見に来る人が増えたり、画像が増えたりすると、有料プランが必要になるかもしれません。これからの運用で、様子を見ます。

公開したあとに、変えたこと

  • 記事のアドレスを短くしました:標準では /posts/記事の名前 ですが、/記事の名前 にしました。そのために、記事のページの作りを、少し直しました
  • 画面の英語を、日本語にしました:メニュー、ページの下の部分、検索の画面などです。EmDashの全部が日本語になったわけではありません
  • 独自ドメインのメールを、受け取れるようにしました:Cloudflareの「Email Routing」という機能で、info@自分のドメイン に届いたメールを、いつものメールアドレスに転送します。受け取るだけで、そのアドレスから送信はできません

実際に使ってみた感想

試しに動かすことと、サイトを運用することは、別だと感じました。

自分のパソコンで試すだけなら、簡単でした。管理画面も日本語で、見た目はWordPressに近い印象です。

一方、Cloudflareに公開するには、データベースや、画像の置き場、独自ドメインなど、WordPressを使うときには、あまり意識しない設定が必要でした。ログインできなくなったときは、どこを見ればいいか分からず、困りました。

そうしたトラブルに対応するには、設定ファイルやコマンドに、ある程度、触れる必要があります。

結局、非エンジニアにおすすめなのか? 私の答えは、「AIに手伝ってもらえるなら、試す価値がある。1人だけで、はじめてのCMSとして選ぶなら、WordPressのほうが安心」です。

  • 向いている人:WordPress以外も試したい人、Cloudflareに興味がある人、コマンドを調べながら進められる人
  • 向いていない人:設定をせずに、すぐ記事を書き始めたい人

なお、今回は、サイトを公開するまでが目的でした。記事の書きやすさ、編集画面、画像の管理などは、まだ十分に試せていません。WordPressと比べて、どうなのかは、運用しながら確かめて、また書きます。

まとめ

非エンジニアが、EmDashで、独自ドメインの個人サイトを公開するまでを紹介しました。分かったことは、次の4つです。

  1. EmDashを、自分のパソコンで動かすのは、比較的かんたん
  2. Cloudflareに公開するには、コマンドの操作と、設定ファイルの編集が必要
  3. パスキーの設定は、最初から、本番のドメインと、いつも使うブラウザで行う
  4. 費用は、ドメイン代だけで済んだ(今回の範囲では)

はじめて試すなら、いきなりドメインやCloudflareの設定から始めずに、まず自分のパソコンで、EmDashを動かしてみるのがおすすめです。

参考資料

検証環境:2026年10月13日 / EmDash 1.2.0 / Astro 7 / Wrangler 4.149 / Node.js 22.17