beta

Cockpit CMSをCloudflare Pagesと連携させる

Cockpit CMSをCloudflare Pagesと連携させて、記事などを更新したタイミングで自動でビルド&デプロイするように設定してみたので、まとめ記事です。

公開日:2021年9月7日

やりたいこと

Cockpit CMSも意外と使えることがわかったので、今回は、

  1. Cockpit CMSでデータ追加
  2. Cloudflare Pagesで自動でビルド&デプロイ

というスキームを作りたいと思います。ここまで組み上げれば、公開までの時間差はありますが、ほとんどWordPressの代替として使えます。

Cockpit CMSとCloudflare Pagesの連携方法

Cloudflare Pagesでデプロイフックを追加する

Cloudflareにはデプロイフックが用意されているので、そちらを使います。詳しい設定方法は下記の記事をどうぞ。

WordPressでCloudflare Pagesのデプロイフックを使う方法

Cockpit CMSの設定で使うので、フックAPIのURLをコピーしておきます。

Cockpit CMSでWebhookを設定する

Cloudflare PagesのAPIを叩くために、Cockpit CMSのWebhook機能を使います。「設定 > Webhook」から追加が可能です。

「名前」は任意で、「URL」には先程のCloudflare PagesのフックAPIのURLを入力します。

重要なのは、イベントの指定です。

イベントの指定は、

// collections.アクション.前後.ターゲット

collections.remove.after.posts

という形で、メソッドチェーンで記述します。アクションは、save、remove、findなどがあります。ここは、実際にフォームに入力すると補完してくれるので、そこで探しましょう。

ターゲットは、コレクションやシングルトンの名前を指定します。

設定する際のポイントとしては、データが完全になるタイミングでAPIを叩くようにするという点です。タグの追加や、画像の追加、記事の検索などのタイミングでAPIを叩かれると、データが未完成の状態でビルドが走ってしまいますし、ビルドクオータを無駄にしてしまいます。

その意味では、記事ページの

  1. save.after
  2. remove.after

の二つを設定しておくのが無難かと思います。

タグやカテゴリ、アセットなどの更新については、手動でCloudflare Pagesのビルド&デプロイを使う運用の方が良いかと思います。

実際に使ってみて

ここ1週間この設定で運用していますが、すこぶる快適です。

Cockpit CMSはデータベースがSQLiteなので、しっかりとバックアップを取っておかないと心配ですが、その分高速動作もしてくれるので、メリット・デメリットあるかなぁという感じです。

PHPサーバーはスターサーバーとかを使えば無料ですし、現在WordPressを使っている方はレンタルサーバーがあると思うのでそちらを使えるので、WordPressユーザーとしては、そのままの環境で移行できるのが嬉しいところですね。(記事のインポートなどの問題もありますけど。)

Author

Koji Kadoma
Member of codit.work

新着ノート

新着コード