Simple Comment は、あらゆる Web サイト向けのコメント プラットフォームです。無料、柔軟、オープンソース、プライベート、そしてスケーラブルです。
デモを参照してください: https://simple-comment.netlify.app
注意:モデレーションツールはまだ十分ではありません。ユーザーがコメントを投稿しても通知はなく、承認されるまでコメントを保留する方法もありません。このプロジェクトが気に入って、特定のスケジュールでさらに開発されるのを見たい場合は、私に連絡してください。それ以外の場合、このプロジェクトはまだ進行中ですが、ゆっくりとした道のりです。
最低限の機能はしっかり揃っています!
Access-Control-Allow-Origin
.env
変数に応答しますReferer
ヘッダーとtopicId
適切にマップされる必要がありますOrigin
Access-Control-Allow-Origin
リストに含まれている必要がありますSimple Comment は、 Web サイトと同じサーバー上で実行することも、別のクロスドメイン サーバー上で実行することもできます。
シンプルコメントはhttps:経由で提供される必要があります。
以下の指示に従ってください。不明な点がある場合は、新しい問題を作成してください
example.env
同じプロジェクトのルート ディレクトリにコピーし、名前を.env
に変更します。.env
に、これらのエントリの独自の (作成またはランダムに生成された) シークレット値を入力します (つまり、各行の=
の右側をすべて置き換えます)。.env
に適切なDB_CONNECION_STRING
を追加しますEnvironmental Variables
でEdit Variables
ボタンをクリックします。.env
内の各エントリに対して、すべての変数のキーと対応する値を追加します。IS_CROSS_SITE
には、コメント システムが独自のドメインでホストされている場合は値true
を追加し、同じドメインである場合はfalse
追加します。<script src="[path-to]/simple-comment.js" defer></script>
( src
simple-comment.js
ファイルを指す必要があります)<div id="simple-comment-display"></div>
simple-comment.js
ファイルを Web サイトのスクリプト フォルダーにアップロードします。Refused to connect to 'api/auth' because it violates the following Content Security Policy directive: connect-src 'self'
connect-src
の隣にあるコンテンツ セキュリティ ポリシー ヘッダーにhttps://<your-comment-app>.netlify.app
を追加します (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers を参照) /コンテンツ-セキュリティ-ポリシー/接続-src)Access to fetch at 'https://<your-comment-app>.netlify.app/.netlify/functions/' from origin '<your-website>' has been blocked by CORS policy...
<your-website>
を.env
のALLOW_ORIGIN
キーに、Netlify 環境変数として追加します。 login.html
ページにアクセスし、.env
ファイル内のSIMPLE_COMMENT_MODERATOR_ID
およびSIMPLE_COMMENT_MODERATOR_PASSWORD
値を使用してログインします。 デフォルトのスタックは、バックエンドに Netlify + MongoDB を使用し、フロントエンドに最小限のfetch
ベースのクライアントを使用しますが、テストに合格し、API が Open API 3 スキーマ ファイルに準拠している限り、任意のテクノロジー スタックを使用するように容易に適応できます。
次の手順に従って、独自の無料層 MongoDB をクラウド内で取得できます。
Ubuntu などの Unix ライクな環境を前提としています。
nvm install
npm install -g yarn
yarn install
yarn run build
yarn run test
yarn run test:e2e
sudo systemctl start mongod
(Linux を参照)yarn run start
API 仕様は、Open API 3 形式のファイル simple-comment-openapi3.json で記述されており、バックエンド、フロントエンド、および識別システムと互換性があるように設計されています。
これは、 Simple Comment APIエンドポイントの概要です。
/comment
comment
別のcomment
またはtopic
への返信としてユーザーが投稿するテキストであり、これらの返信を表示することが、このプロジェクトが存在する唯一の理由です。
コメント エンドポイントは、個々のコメントの作成、読み取り、更新、削除 (CRUD) を行うためのものです。すべてのコメントには親、つまりtopic
またはcomment
いずれかに返信するものが必要です。
/topic
トピックは特別な種類のコメントで、デフォルトでは管理者ユーザーのみが作成でき、返信するコメントの組織バケットを形成します。これは一種のルート コメントであるため、親はありません。
/topic エンドポイントは、これらのルート コメントの CRUD を処理します。 /topic
の GET 操作はトピックのリストを取得し、 /topic/{topicId}
の GET 操作はそのトピックとその子孫に返信するすべてのコメントを取得します。
/user
デフォルトでは、匿名ユーザーがコメントを投稿できますが、 Simple Comment には最小限の識別スキームがあり、ポリシーに従って、そうすることを選択したコメント投稿者が投稿後にコメントを制御できるようになります。
/auth
Auth は、認証および識別スキームのエンドポイントです。ユーザーは自分のユーザー名とパスワードを認証エンドポイントに送信し、他の CRUD 操作のユーザーとして認証する JSON Web トークン (JWT) を受け取ります。
/verify
ログインしているユーザー ID または401
を返します。
policy
は、 Simple Comment の動作を制御するキーと値のペアを保持するオブジェクトで、コメントの最大長や一般ユーザーが自分自身を削除できるかどうかなどを決定します。
{
isGuestAccountAllowed : boolean , // if true, a visitor can post anonymously using a guest account. if false, only authenticated users can comment.
canFirstVisitCreateTopic : boolean , // if a discussion does not exist for a page, shall it be created when visited for the first time, or does admin create all topics?
canGuestCreateUser : boolean , // can a user with guest credentials create (their own) user profile? if 'canPublicCreateUser' is set to 'true' this setting is ignored
canGuestReadDiscussion : boolean , // can a user with guest credentials browse and read discussions? if 'canPublicReadDiscussion' is set to 'true' this setting is ignored
canGuestReadUser : boolean , // can a user with guest credentials view user profiles? if 'canPublicReadUser' is true, this setting is ignored
canPublicCreateUser : boolean , // can a user with no credentials create (their own) user profile?
canPublicReadDiscussion : boolean , // can a user with no credentials browse and read discussions?
canPublicReadUser : boolean , // can an anonymous visitor view any user's profile?
canUserDeleteSelf : boolean , // can a user delete their own profile?
maxCommentLengthChars : number , // Attempting to post a comment longer than this number of characters will be rejected by the API
}
Simple Comment 以外のソリューションが 34 件ここにリストされています。これらのほぼすべては Simple Comment よりも成熟しており、サーバーレス、オープンソース、セルフホスト型のソリューションを特に探していない場合は、Simple Comment を検討することをお勧めします。以下に、単純コメントと区別する長所と短所を示します。 「信頼が必要」と表示されている場合は、サービスを使用するには会社への信頼が必要であることを意味します。これは、企業がユーザーに提供するクローズド ソース コードは、管理されておらず、簡単に検査できないためです。同様に、ユーザーデータは彼らが管理するサーバーに保持されます。このリストは経験ではなく公開文書に基づいています。何か間違っている場合や不足している場合は、お知らせください。