はじめに
「そろそろWordPressから脱却したい」
ブログやメディアを運営していると、一度は考えたことがあるんじゃないでしょうか。WordPressは確かに高機能だけど、プラグインの互換性問題、セキュリティアップデートの頻繁さ、そして正直なところ動作がもっさりしていると感じることがある。
そんなときに選択肢として挙がるのがGhostです。
Node.js製のオープンソースパブリッシングプラットフォームで、GitHubスターは51,000を超えています。ブログだけでなく、ニュースレター配信やメンバーシップ(有料会員)機能まで標準搭載。個人ブログからプロフェッショナルなメディア運営まで、これ1つでカバーできるのが特徴ですね。
Ghostとは
Ghostは2013年にKickstarterで立ち上がったプロジェクトで、「independent technology for modern publishing」を掲げています。投資家を入れず、Ghost Foundationという非営利組織が開発を続けているというのも、ちょっと面白いところ。
WordPressがあらゆる用途に対応しようとして複雑化していったのに対して、Ghostは「パブリッシング」に特化しています。ブログ記事を書く、メルマガを配信する、有料会員を管理する。この3つをシンプルに、でも本格的にやりたい人向けのツールという立ち位置ですね。
技術的にはNode.jsベースで、フロントエンドはHandlebars、データベースはMySQL/SQLiteに対応。ヘッドレスCMSとしてAPIも提供しているので、Next.jsやNuxtと組み合わせることもできます。
特徴・メリット
書くことに集中できるエディタ
Ghostのエディタは「Calm by design」がコンセプト。余計な機能がなく、文章を書くことに集中できる設計になっています。
画像、ギャラリー、動画、音声、PDF埋め込みなど、メディアの扱いも柔軟。Markdownも使えるので、開発者にとっては馴染みやすいと思います。
ニュースレター配信が標準機能
これ、意外と大きいんですよね。MailchimpやConvertKitのような外部サービスを使わなくても、Ghost単体でニュースレター配信ができます。
新しい記事を公開したら、自動で購読者にメールを送信。開封率やクリック率の分析機能も付いています。外部サービスとの連携で発生するAPI制限や追加コストを気にしなくていいのは、地味にありがたい。
メンバーシップ・サブスクリプション対応
無料会員と有料会員の階層を設定して、コンテンツへのアクセス制限ができます。決済はStripe連携で、月額・年額のサブスクリプションに対応。
個人クリエイターが「ファンクラブ的なもの」を作りたいときに、PatreonやSubstackを使わなくても実現できる。プラットフォーム手数料を払わずに済むのは、長期的に見ると大きな差になります。
ヘッドレスCMS としても使える
Ghost Content APIを使えば、Ghostをバックエンドのコンテンツ管理システムとして使い、フロントエンドは自前で構築することもできます。
Next.jsやGatsby、Nuxtと組み合わせて、JAMstack構成のサイトを作るのも定番の使い方。SEO対策やパフォーマンス最適化を自分でコントロールしたい場合に有効です。
セルフホスト可能
自分のサーバーで動かせるので、データの管理は完全に自分の手の中。プライバシーを重視する人や、ランニングコストを抑えたい人には魅力的なポイントですね。
もちろん、サーバー管理が面倒なら公式のマネージドサービス「Ghost(Pro)」も選べます。
インストール方法
前提条件
- Ubuntu 20.04/22.04(推奨)または macOS、Windows
- Node.js 18以上
- MySQL 8(本番環境)またはSQLite(ローカル開発)
- 最低1GBメモリのサーバー
ローカル環境でのセットアップ
開発や検証用なら、Ghost CLIを使うのが一番簡単です。
# Ghost CLIをグローバルインストール
npm install ghost-cli -g
# プロジェクトディレクトリを作成
mkdir my-ghost-blog
cd my-ghost-blog
# ローカルモードでインストール
ghost install local
これだけで http://localhost:2368 にGhostが立ち上がります。管理画面は http://localhost:2368/ghost からアクセス。
本番環境へのインストール(Ubuntu)
本番サーバーにデプロイする場合は、以下の手順になります。
# 必要なパッケージをインストール
sudo apt-get update
sudo apt-get install nginx mysql-server
# 専用ユーザーを作成
sudo adduser --system --group ghost
# Ghost CLIをインストール
sudo npm install ghost-cli -g
# インストールディレクトリを準備
sudo mkdir -p /var/www/ghost
sudo chown ghost:ghost /var/www/ghost
cd /var/www/ghost
# Ghostをインストール(対話形式で設定)
sudo -u ghost ghost install
インストーラーがドメイン設定、SSL証明書(Let's Encrypt)、Nginxの設定まで面倒を見てくれます。
Dockerでの起動
Docker派の人はこちら。公式でDocker Composeの設定が提供されています。
version: '3.8'
services:
ghost:
image: ghost:5
restart: always
ports:
- "2368:2368"
environment:
url: http://localhost:2368
database__client: sqlite3
database__connection__filename: /var/lib/ghost/content/data/ghost.db
volumes:
- ghost_content:/var/lib/ghost/content
volumes:
ghost_content:
docker compose up -d
本番運用するならMySQLを使う構成に変更するのがおすすめです。
基本的な使い方
管理画面へのアクセス
インストール後、/ghost にアクセスすると管理画面が表示されます。初回は管理者アカウントの作成から始まります。
記事の作成
管理画面左メニューの「Posts」から新規投稿を作成。エディタはシンプルで、本文にフォーカスしてタイピングするだけ。
見出し、太字、リンク、画像挿入など基本的な装飾は + ボタンまたはスラッシュコマンド(/)から呼び出せます。
# こんな感じでMarkdown記法も使えます
- リスト項目1
- リスト項目2
**太字**や*イタリック*も対応
メンバーシップの設定
「Settings → Membership」からメンバーシップ機能を有効化できます。
- Stripeアカウントを連携
- 料金プランを設定(月額・年額)
- 無料/有料の公開範囲を記事ごとに設定
これだけで、有料コンテンツの配信が始められます。
テーマのカスタマイズ
デフォルトテーマの「Casper」でも十分使えますが、公式マーケットプレイスには数百のテーマが揃っています。
独自テーマを作る場合は、Handlebarsテンプレートで記述します。
{{!-- post.hbs --}}
<article class="post">
<h1>{{title}}</h1>
<div class="post-content">
{{content}}
</div>
<p>公開日: {{date published_at format="YYYY-MM-DD"}}</p>
</article>
実践的なユースケース
個人ブログの運営
シンプルに技術ブログを書きたいなら、GhostはWordPressより軽快に動きます。Markdownで書けるし、コードブロックのシンタックスハイライトも標準対応。
ニュースレター特化のメディア
Substackのような「ニュースレター中心のメディア」を自前で運営したい場合に最適。プラットフォーム手数料を取られないのが大きい。
有料コンテンツ配信
教材、レポート、専門記事など、有料で配信したいコンテンツがあるなら、Ghostのメンバーシップ機能が使えます。Stripeの手数料だけで済むので、収益性が高い。
ヘッドレスCMS + JAMstack
GhostをCMSとして使い、フロントエンドはNext.jsで構築。静的サイトとして配信すれば、高速でセキュアなサイトが作れます。
// Next.jsでGhost APIからデータを取得する例
import GhostContentAPI from '@tryghost/content-api';
const api = new GhostContentAPI({
url: 'https://your-ghost-site.com',
key: 'your-content-api-key',
version: 'v5.0'
});
export async function getPosts() {
return await api.posts.browse({
limit: 'all',
include: ['tags', 'authors']
});
}
企業のオウンドメディア
コーポレートサイトとは別に、ブログやお知らせを配信するプラットフォームとして。API経由で既存サイトに埋め込むこともできます。
注意点
日本語情報が少なめ
海外製ツールなので、日本語のドキュメントやコミュニティは限られています。英語ドキュメントを読む必要がある場面は多いですね。
プラグインエコシステムはない
WordPressのような豊富なプラグインはありません。標準機能で足りない部分は、自前で開発するか、外部サービスと連携することになります。
セルフホストは運用の手間がかかる
サーバー管理、アップデート、バックアップは自己責任。そこに時間をかけたくないなら、Ghost(Pro)を検討するのが現実的です。月額9ドルから利用可能。
まとめ
Ghostは「パブリッシングに特化したモダンなプラットフォーム」として、WordPressの代替を探している人には良い選択肢です。
- 書くことに集中できるエディタ
- ニュースレター配信が標準機能
- メンバーシップ・サブスクリプション対応
- ヘッドレスCMSとしても使える
- セルフホスト可能でデータ管理は自分の手に
30代になって思うのは、ツールは「やりたいこと」に合わせて選ぶべきだということ。何でもできるWordPressより、パブリッシングに特化したGhostの方が、結果的に効率よく目的を達成できることもある。
まずは ghost install local でローカル環境を試してみてください。エディタの書き心地の良さは、実際に触ってみないとわからないので。
公式サイト: https://ghost.org GitHub: https://github.com/TryGhost/Ghost ドキュメント: https://docs.ghost.org