beta

PHP製ヘッドレスCMS・Cockpitレビュー

PHP製ヘッドレスCMS・Cockpitを使ってみたので、よかった点、微妙な点などを簡単にレビューします。

公開日:2021年8月25日

Cockpitとは?

Cockpitは、AGENTEJOというドイツの会社が開発している、オープンソースのヘッドレスCMSです。

Cockpit

自前のWebサーバーにインストールして、ブラウザでコンテンツを管理します。

コンテンツはAPI経由で取得が可能で、JAMStack的な使い方で、フロントのSPAなどでデータが取得できるようになります。

Cockpitのよかった点

簡単インストールでサクサク軽量

インストールというのはやや大袈裟で、公式サイトからダウンロードしたファイルをサーバーにアップロードするだけです。Dockerコンテナも用意されているので、Dockerが使える環境ならコマンドだけで用意できます。

実際にCockpitの管理画面を使ってみると、フロントはほぼSPA的な動作でサクサク動作します。記事の投稿なんかも、待ち時間がほぼなくて、WordPressとかでストレスを感じている人はかなり驚くのではないでしょうか。

この軽快さなら、GCPの無料枠のインスタンスでも十分に動作させることが出来そうなレベルです。

シンプルだけど自由度は高い

CockpitはNoSQL的な使い方をするようになっていて、ドキュメントをどんどん追加していく形になります。

形式によって、

  1. コレクション(記事とか)
  2. フォーム
  3. シングルトン

を使い分けます。

基本はコレクションに記事やタグのデータを蓄積していって、必要であればフォームを追加することもできます。フォームはAPI経由で投稿と表示ができるので、Disqusなんかを使っている方には代替になるでしょう。

最後のシングルトンとはなんぞや?となりますが、「テーブル形式になっていないデータの保管場所」です。サイトの設定データなんかを収納しておくと良さそうですね。

バグが少なそう

まだ使ってみて数日ですが、細かい挙動のツメの甘さは見かけますが、大きなバグは見かけませんでした。バギーなWordPressが嫌な人なら、これだけでも移行する価値がありますね。

意外とアドオンが揃ってる

公式サイトだとあまり強調されていませんが、Cockpitには公式・非公式のアドオンが用意されています。

List of Cockpit Addons

JSONではなくてGraphQLに対応するアドオンも公式が出しているので、アドオンを使うと機能が拡張できそうですね。

Cockpitのちょっと微妙な点

ドキュメントがやや弱い

シンプルな作りだからほとんどドキュメントなしでも操作はできるんですが、ドキュメントはかなり寂しい感じです。普通にドキュメントに記載のない機能とかもあります。

もうちょっとサンプルとかがあると嬉しいんですが、まだユーザーも多くないでしょうから、今は開発の方を頑張ってもらう時期なのかもしれません。

セキュリティがやや弱い?

しっかりとロール管理しないと、インストールしたサーバーの中身が丸見えです。静的ファイルの置き場所も、「/storage/uploads/年/月/日」とWordPress譲りの構成なので、ここは乱数で一括管理するオプションが欲しかったところです。

DBがSQLiteかMongo DB縛り

ここが一番の不安ポイントで、レンタルサーバーなんかで運用するとなるとMongo DBはほぼ使えないので、SQLiteオンリーです。MySQL使いからすると、不安で仕方ありません。

SQLiteだから速いというのもありそうなので、トレードオフな気はしますが、SQLiteは実態がただのファイルなので、何かの問題でファイルが破損するとデータが全部死ぬので、バックアップは必須ですね。

ちなみに、SQLiteのファイルは、「/storage/data」の中にあるので、ここだけバックアップするようにcronでも仕込んでおけばOKです。

Author

Koji Kadoma
Member of codit.work

新着ノート

新着コード