Centrifugo
セルフホスト可能なリアルタイムメッセージングサーバー。Pusher、Socket.IO などの商用サービスの代替として、複数の転送プロトコルをサポートし、言語に依存しません。
スマートダウンロード
プロジェクトのホームページへ
インストーラはまだありません — ソースリポジトリをご覧ください
リアルタイムメッセージプッシュサービスを自前で構築し、有料ソリューションを代替する。
主な機能
- WebSocket、SSE、HTTP-streaming、WebTransport、gRPC など、多様な転送プロトコルに対応
- 水平スケーリング —— Redis/KeyDB クラスターにより数百万の同時接続をサポート
- 認証と権限管理を内蔵(JWT、API キー)
- メッセージ履歴、オンライン状態、チャンネル存在検出を提供
- Web 管理画面を標準搭載し、接続とチャンネルの状態をリアルタイムで確認可能
できないこと
- •デフォルト設定には暗号化も認証もないため、本番環境では必ず TLS と JWT 認証を有効にしてください。
- •Redis をメッセージルーティングに使用する場合は、デフォルトパスワードの使用を避け、Redis クラスターまたは Sentinel を設定して高可用性を確保してください。
- •接続数が非常に多い場合は、Nginx または Caddy を前面に配置してリバースプロキシと負荷分散を行うことを推奨します。
- •履歴メッセージ機能はデフォルトでは有効になっていないため、ストレージバックエンドを明示的に設定する必要があります。
使用例
- リアルタイムチャット / インスタントメッセージング
- リアルタイム通知(注文、アラート、プッシュ通知)
- 複数人での共同編集やゲーム状態の同期
- データダッシュボード / 監視パネルのリアルタイム更新
- Socket.IO や Pusher などの商用サービスに代わるセルフホスト型ソリューション
詳細説明
Centrifugo は Go で書かれた高性能かつスケーラブルなリアルタイムメッセージングサーバーです。WebSocket、Server-Sent Events (SSE)、HTTP-streaming、WebTransport、gRPC をサポートしており、あらゆるプログラミング言語でリアルタイム機能(チャット、リアルタイム通知、複数人でのコラボレーションなど)を構築できます。Pusher や Ably などの商用サービスとは異なり、Centrifugo はセルフホスト型であり、データとコストを完全にコントロールできます。Redis/KeyDB を使った水平スケーリングが可能で、認証、オンライン状態(プレゼンス)、メッセージ履歴、管理画面をサポートしています。Centrifugo は高い信頼性を重視して設計されており、世界中の数千のチームによって本番環境で利用されています。
タグ
はじめ方
ソフトウェアをインストール
ダウンロードしたインストーラをダブルクリックし、指示に従ってください
お使いのシステムに適したバイナリパッケージ(Linux/Mac/Windows)をダウンロードするか、Docker イメージを使用します
設定ファイル config.json を作成し、token シークレットと Redis 接続を設定します(必要な場合)
`./centrifugo --config config.json` を実行してサービスを起動します
- お使いのシステムに適したバイナリパッケージ(Linux/Mac/Windows)をダウンロードするか、Docker イメージを使用します
- 設定ファイル config.json を作成し、token シークレットと Redis 接続を設定します(必要な場合)
- `./centrifugo --config config.json` を実行してサービスを起動します
チェックサムがありません
このプロジェクトは GitHub Release ページに SHA-256 チェックサムを公開していません
SHA256 チェックサム
チェックサムなし
GitHub Releases から直接ダウンロードし、ファイルの整合性をご自身で確認してください
本プラットフォーム上のすべての SHA-256 チェックサムは、プロジェクトの公式 GitHub Release ページから抽出されたもので、一切の改変はありません。GitHub Releases ページで独自に検証できます。
オープンソースの透明性
GitHub ソースを見るアンインストール情報
ダウンロードしたバイナリファイルまたは Docker コンテナを削除し、Redis 内の Centrifugo に関連する key をクリーンアップします(オプション)。パッケージマネージャー経由でインストールした場合は、対応するアンインストールコマンドを使用してください。
追加の依存関係なし
ダウンロード後すぐに使用可能。追加のランタイムは不要です。