Remark42
SHA-256軽量なセルフホスト型コメントシステム。ユーザーデータを追跡しません。
スマートダウンロード
Download 版をダウンロード
v1.15.0 · 9.6 MB
コメントを自分で管理し、ユーザーデータを覗き見しない軽量なツール。
主な機能
- 複数のソーシャルアカウントとメールでのログインに対応し、匿名コメントも可能
- 多段階のネストされたコメント、投票・ピン留め・認証機能付き
- Markdown エディター、画像のドラッグ&ドロップアップロードに対応
- Disqus/WordPress のコメントデータをインポート可能
- 管理者とユーザーの両方が新しいコメントや返信の通知を受け取れる
できないこと
- •サーバーとSSL証明書は自分で保守する必要があります。スパム対策機能は内蔵されていないため、サードパーティのサービスと併用することをお勧めします。OAuthと通知の初回設定はやや複雑になる場合があります。
使用例
- 個人ブログ、技術記事、ニュースサイトのコメントシステム
- セルフホストが必要で、ユーザーのコメントを第三者に預けたくないシナリオ
詳細説明
Remark42 は、ユーザーのプライバシーを重視した軽量なセルフホスト型コメントエンジンです。Google、Facebook、GitHub、Apple などの多様なソーシャルログインをサポートし、メールアドレスでのログインや匿名アクセスにも対応しています。複数階層のネストされたコメント、Markdown エディター、画像のドラッグ&ドロップによるアップロードを提供し、Disqus/WordPress からのデータインポートもサポートしています。投票、ピン留め、検証システム、モデレーションツールが組み込まれており、コメントの並べ替えも可能です。管理者とユーザーのいずれも、メールや Telegram などで通知を受け取ることができます。システム全体が1つの Docker コンテナにパッケージ化されており、外部データベースは不要で、すべてのデータは1つのファイルに保存されます。マルチサイトモードをサポートし、UI はシンプルでカスタマイズ可能で、ダーク/ライトテーマを提供しています。
トラブルシューティング & FAQ (2)
トラブル対応新しい remark42 コメントを送信した直後に表示されず、TypeError "can't access property 'block', e.data.user is undefined" が発生するのはなぜですか?
コメントは保存されますが、フロントエンドが create-comment レスポンスを解析できません。rest_private.go では、createCommentCtrl() が R.RenderJSON() の前に w.WriteHeader(http.StatusCreated) を呼び出しています。WriteHeader() が呼び出されるとヘッダーがロックされるため、Content-Type: application/json が設定されず、レスポンスはデフォルトで text/plain となり、フロントエンドのエラーが発生します。
一時的な回避策: ページを再読み込みすると、コメントが表示されます。
コードの修正: rest_private.go 内の先行するステータスコード行を削除します:
- w.WriteHeader(http.StatusCreated)
R.RenderJSON(w, &finalComment)
その後、remark42 を再ビルドして再デプロイします。これにより 201 ではなく HTTP 200 が返されますが、レスポンスは JSON となり、UI は即座に更新されます。201 を維持するには、WriteHeader() を呼び出す前に Content-Type: application/json を設定し、その後で JSON をエンコードします。このリグレッションは PR #1919 / コミット baf0db19 で導入されました。
トラブル対応Google Page Experience で「ブラウザエラーがコンソールに記録されました」という警告が 401 API エラーによって発生した場合の修正方法は?
サイトで未認証ユーザーによるAPI呼び出しの401エラーが記録されると、GoogleのCore Web Vitals評価で「ブラウザエラーがコンソールに記録されました」というページエクスペリエンスの問題が発生する可能性があります。これを修正するには、認証が必要なAPIリクエストをログインユーザー時のみ行うか、console.errorを呼び出さずに401レスポンスをキャッチするエラーハンドリング(例:サイレントキャッチブロック)を実装してください。これにより、エラーがコンソールに表示されず、ページエクスペリエンススコアに影響を与えるのを防ぎます。
タグ
はじめ方
ソフトウェアをインストール
ダウンロードしたインストーラをダブルクリックし、指示に従ってください
Docker がインストールされていることを確認し、次を実行します:docker run -d --name remark42 -p 8080:8080 -e REMARK_URL=https://yourdomain.com -e SITE=your-site umputun/remark42
環境変数(OAuth シークレット、メールアドレスなど)を設定します。詳細は公式ドキュメントを参照してください
ウェブページに <script> タグを埋め込むだけでコメントボックスが表示されます
- Docker がインストールされていることを確認し、次を実行します:docker run -d --name remark42 -p 8080:8080 -e REMARK_URL=https://yourdomain.com -e SITE=your-site umputun/remark42
- 環境変数(OAuth シークレット、メールアドレスなど)を設定します。詳細は公式ドキュメントを参照してください
- ウェブページに <script> タグを埋め込むだけでコメントボックスが表示されます
SHA-256 チェックサム確認済み
GitHub 公式 Release ページから抽出されたチェックサム
SHA256 チェックサム
38cb334d6e6dba1affda726fe96df255b56d20b7693ec147d8a000aceb8a4b63このチェックサムは GitHub Release ページから抽出されたものです。ダウンロード後にファイルの整合性を確認してください。
本プラットフォーム上のすべての SHA-256 チェックサムは、プロジェクトの公式 GitHub Release ページから抽出されたもので、一切の改変はありません。GitHub Releases ページで独自に検証できます。
オープンソースの透明性
GitHub ソースを見るアンインストール情報
コンテナを停止:docker stop remark42 && docker rm remark42、その後データディレクトリ(デフォルトは ./var)を削除すれば、完全にアンインストールできます。
追加の依存関係なし
ダウンロード後すぐに使用可能。追加のランタイムは不要です。
問題が発生?以下のFAQを確認
2 FAQs