既存のホームページにタグを埋め込むだけで導入でき、Markdown対応・匿名コメント・OAuthログインなど多彩な機能を備え、広告やトラッキングのないオープンソースのコメントエンジン「Comentario」が公開されています。

Comentario

https://comentario.app/en/



comentario / Comentario · GitLab

https://gitlab.com/comentario/comentario

◆デモサイト

Comentario Demo

https://demo.comentario.app/



◆Comentarioの主な機能

・導入が簡単

既存のホームページに2つのタグを埋め込むだけで導入可能で、Dockerを利用すればサーバーの立ち上げも簡単に行えます。

・さまざまな認証方式に対応

OAuthによるソーシャルアカウント連携、OpenID ConnectやSingle Sign-Onによるカスタム認証、メールアドレスとパスワードでのユーザー登録に対応しており、設定で許可されていれば匿名でのコメント投稿も可能です。



・Markdown形式に対応

見出しやコードブロック・リスト・テーブルなどの形式に対応し、リンクや画像の埋め込みなども可能。



「画像の埋め込み」・「リンクの埋め込み」・「テーブルの埋め込み」は制限することも可能です。



・コメントの管理

書き込まれたコメントの編集や削除。



・ロールの管理

管理者・モデレーター・投稿者・読み取り専用ユーザーなどのロールの設定。



・スパム対策

Akismet・APILayer SpamChecker、およびPerspectiveを利用し、コメントの内容に応じて自動的にスパム判定を行うことができます。



・統計情報

閲覧数やコメント数、ユーザーのデバイスやブラウザの種類などプライバシー情報に配慮した最低限の情報での統計をグラフなどで表示。



その他、コメント登録後に即反映するかモデレーターの承認を経て反映するかを選択できるほか、コメントのいいね機能やコメントのスレッド表示、メール通知機能なども備えています。

◆構築方法

今回はWindows 11にDocker DesktopとPythonを用意した上で、Git Bashのプロンプトを用いて構築します。Comentario用の作業フォルダを作成し移動。


mkdir comentario && cd comentario


docker-compose.ymlを作成し、以下の内容を記述します。


services:
db:
image: postgres:17-alpine
environment:
POSTGRES_DB: comentario
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- "5432:5432"
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"]
timeout: 5s
retries: 5
start_period: 10s

app:
image: registry.gitlab.com/comentario/comentario
environment:
BASE_URL: http://localhost:8080/
SECRETS_FILE: "/secrets.yaml"
ports:
- "8080:80"
healthcheck:
test: ["CMD", "wget", "-O", "-", "http://localhost/api/user"]
timeout: 5s
retries: 5
start_period: 5s
depends_on:
db:
condition: service_healthy
volumes:
- ./secrets.yaml:/secrets.yaml:ro


secrets.yamlを作成し、以下の内容を記述します。


postgres:
host: db
port: 5432
database: comentario
username: postgres
password: postgres


Comentarioを起動します。


docker-compose up -d


ブラウザを開いてhttp://localhost:8080/にアクセスすると、Comentarioのトップページが表示されるので、管理者を登録するために「Sign Up here」をクリック。



「Your email」にメールアドレス、「Password」にパスワード、「Your name」に任意の名前を入力して「Sign up」をクリック。



ログインフォームが表示されるので、先ほど登録したメールアドレスとパスワードを入力して「Sign in」をクリック。



ダッシュボードが表示されます。



◆コメントの埋め込み

テストサイトのドメイン登録が必要なので「Domains」をクリックし、「Add domain」をクリック。



「Host」の項目では「http://」もしくは「https://」を選択し、ドメインを入力して「Create」をクリック。



登録が完了すると、コメント欄を埋め込むためのコードが表示されるので、コピーしておきます。



次にテスト用のHTMLファイルを作成し、コメント欄を挿入したい場所にコピーしておいたコードを挿入して保存。


<script defer src="http://localhost:8080/comentario.js"></script>
<comentario-comments></comentario-comments>


HTMLファイルを作成したフォルダでローカルサーバーを起動します。


python -m http.server 8000


ブラウザでテストページのURLにアクセスすると、Comentarioのコメント欄が表示されました。



なお、日本語の投稿は問題ありませんが、UIの項目などの表示には日本語が用意されていません。ただし、言語ファイルを用意すれば日本語での表示も可能です。