Cusdisをセルフホストして、軽量なコメント機能を導入する

ブログのコメント機能をCusdisで軽量化。会員登録不要、クッキーフリーでプライバシー重視のOSSツールをセルフホストしました。主に導入メリット・デメリットを解説しています。

※本記事は広告を含みます

どうも職業エンジニアです。

このブログはGhost CMSで動いており、Ghostには標準でコメント機能が実装されています。ですが、この機能をそのまま使うと会員登録をしてログインしたユーザーでないと、コメント機能が機能しない、という仕様になっていて少々扱いづらい部分がありました。

なので、今回は「会員登録なしでコメントができる」方法を探った結果Cusdisにたどり着いたよー、みたいな話になります。

Cusdisとは

Cusdisは、OSSで開発されている 「超軽量&プライバシー重視」の埋め込み型コメントシステム です。

ブログや静的サイトに手軽にコメント欄を追加できるツールで、同じくコメントツールとして有名な「Disqus」の軽量・クリーン版代替として開発された経緯があります。

https://cusdis.com/

主な特徴・メリット

  • 圧倒的な軽さ(約 5KB gzip)

    • Cusdisはわずか約5KBのJS だけで動作し、サイトの表示速度を落としません。
  • プライバシー配慮(クッキーフリー)

    • 訪問者の Cookie を使わず、トラッキング(追跡)や広告表示も一切行いません。GDPR などのプライバシー保護基準にも馴染みやすい設計です。
  • セルフホスト(自前運用)が容易

    • Docker イメージが公式提供されており、様々な環境で動作されることができます。
  • **シンプルな承認制

    • 投稿されたコメントは初期状態で保留され、管理画面で承認して初めて公開される設計です。
  • 通知連携(Webhook / メール)

    • 新着コメントの通知をメールや Webhookなどで受け取れます。

イメージ

実際にどんなコメント欄ができるの?という方のために、イメージを乗っけておきます。以下が各記事のコメント欄。あと、筆者の気が変わっていなければ、この記事の下の方に実際のコメント欄が置いてあるはずです!

シンプルなUI。必要最低限って感じです。
シンプルなUI。必要最低限って感じです。

次に、管理画面です。この管理画面からコメントを承認したり、拒否したりできます。なお、自動承認はできません。必ず何かしらのアクションでコメントの承認をする必要があります。

管理画面もシンプルな感じ。難しい設定もありません。
管理画面もシンプルな感じ。難しい設定もありません。

なぜセルフホストにしたのか

まず、cusdisを導入するのはざっくり2つのパターンがあります。

  • マネージドサービス(cusdis公式が提供しているサーバーで動かす)
  • セルフホスト(自分のサーバーで動かす)

このうち導入が容易なのは間違いなく前者です。多少の制限はあるものの、個人でやっているようなブログであれば制限がキツくなることはまずないのではと思います。過去の経験上、コメント欄置いたところでコメント残していく人なんてまあいないからね!昔は「引用させてもらいますー」って残すような文化あったんだけどなあ。時代は変わりましたね。

んで、なんでセルフホストにしたかというと「Google Cloudで使えるクレジットが余っていたから」です。筆者はGoogle AI Proという、まあGeminiとかをいい感じに使える有料課金をしているのですが、その中にクレジットが付与されている、という感じですね。

これまで何度も有効活用しようと思いましたが結局放置していたので、これを機に利用してみようかなって感じです。

セルフホストのメリデメ

セルフホストするにも、メリットデメリットがあるのでそこのお話をしていきます。

メリット

まずメリットですが、正直なところ個人で規模の小さいブログであれば、まず皆無と言っていいでしょう。

コメント数の制限を気にしなくてよい、というメリットはあるものの、公式ホストでも100件/月のコメントが可能なため、個人ブログではまずこれを超えることはないと思うんですよね。昔と違いSNSでのリアクションがメインになっている側面もありますし。

個人的にはデータの管理を自身で行えること、が一番のメリットな気はしています。他のサービスへのデータ移行とかを検討するのであれば、セルフホストの方が動きやすさはあると思いますし。

まあでも、セルフホストするメリットはそこまで大きくないと思っちゃいますねやっぱり。

デメリット

次にデメリットです。やはり、構築の手間がめっちゃ上がるのが最大のデメリットだと思います。

それと、基本的にはセルフホストしたほうが運用費は高くなるはずです。もちろんこれを無料で構築する組み合わせもありますが、それでも手間なのには変わりはありません。

セルフホストのメリットを享受できるような活気あふれるサイトであれば、採用の理由にはなると思いますが。。難しいよなあ。

セルフホストするときの組み合わせ

せっかくセルフホストにしてみたので、いくつか組み合わせを紹介しておこうと思います。

今回やってみたやつ

Google Cloud Run + Google Cloud SQL。

この組み合わせだとCloud Runは無料の範囲内で利用可能、Google Cloud SQLは10ドル/月~くらいのイメージとなります。コスパは割と良くない感じなので、おすすめはしませんww

たぶん筆者もそのうち他の手法に乗り換えるか、コメント欄消すかすると思います!

無料でやりたいとき

Vercel + Supabase。

この組み合わせであれば基本的には無料で利用できるはずです。また、今回やっていないので詳しくは言えないのですが、どうやらCusdis公式用意している1クリックで簡単に構築できる機能があるようです。最初からそっちで良かったじゃねえか。

追記:最終的にこうした

Google Cloud Run + Supabase。

ネックになっていたのがデータベースのコストだったので、ここをSupabaseにすることで無料運用を実現しました。パフォーマンスは目に見えて落ちてますが、遅延読み込みすればまあそこまで気にならないかなというレベルかなあ。ちょっとコメント投稿に時間はかかるんですけどね。

Vercelを使わなかったのは、Cloud Runで組んでたものをわざわざ作り直す理由がなかったからです。DBの接続先変えるだけで良かったのですぐ終わりました。

当初の目的の一つであるクレジットの有効活用とは離れてしまいましたが、きっとGemini APIで遊んだりすることで徐々に消費されていくでしょう。。

ちなみに、Vercel + Supabaseは1クリックで簡単に構築できるという噂を聞いていましたが、全然そんなことはなかったです。試しにVercelも仮組みしてみましたが、ライブラリのバージョン等でかなりメンテしなきゃいけなかったので。そういうこともあるよね。

まとめ

  • 軽量な外部コメントシステムを導入したいならCusdis
  • 基本的には公式がホスティングしているやつでOK
  • セルフホストしたいのであればVercel + Supabaseがおすすめ

最後に

これ書いているうちに、早くもVercel + Supabaseで作り直したくなってきてわろた。

下手したら今日やったものが明日には消えるかも知れないので、記念にお気に入りを残しておくことにしました。Cloud Runはもしかしたらまた使いたくなる時がくるかも。

お気に入りしとかないと簡単に迷子になります
お気に入りしとかないと簡単に迷子になります