OSS探訪

uWebSockets.jsとRedis clusterでリアルタイムchat backendをセルフホストする

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
158
主要言語
JavaScript
ライセンス
GPL-3.0
リポジトリ最終更新
2026/09/30
ページ内ナビ

概要

SAMA ServerはNode.jsとuWebSockets.jsを使うリアルタイムmessaging serverです。MongoDBにデータを保存し、Redisで複数nodeの接続情報や利用者状態を共有し、MinIO/S3系storageも組み合わせられます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

WebSocketとHTTP APIでchat機能を提供する

users、conversations、messages、activities、address book、push notificationなどのAPIを提供し、browserやmobile clientからmessaging backendとして利用できます。

出典:[2]

Redisで複数nodeを発見・接続し利用者状態を共有する

各nodeはRedisへendpointとuser/device stateを書き込み、他nodeを発見してWebSocket connectionを確立します。切断時のreconnectとdestroyed node cleanupもREADMEで説明されています。

出典:[2]

full Composeでclient・server・DB・object storageまで起動する

docker-compose-full.ymlはSAMA client、nginx、server、push service、MongoDB、Redis、MinIOを一つのstackとして定義しています。

出典:[3]

向いている用途

独自chat productのself-hosted backendを構築したい場合に向く

XMPPそのものではなく独自protocol/APIを使い、WebSocket中心のmessaging backendを自社環境で運用したいケースの候補になります。

出典:[2]

導入前の確認

sample credentialをそのまま公開環境へ持ち込まない

repositoryの環境設定にはdevelopment用のJWT secret、MinIO credential、admin keyなどのsample値があります。公開前に全secret、CORS、TLS、storage credentialを変更します。

出典:[3]

固定network・複数serviceを含むためproduction topologyを再設計する

full Composeは固定private IP、複数port、MongoDB・Redis・MinIOを一体で構成しています。本番ではHA、persistent volume、backup、TLS termination、監視を環境に合わせて設計します。

出典:[3]

GPL-3.0の配布条件を確認する

SAMA ServerはGPL-3.0です。改変版や派生物を配布する場合はsource code提供などGPLの条件を確認します。

出典:[6]

参考にした公式資料

  1. [1]SAMA-Communications/sama-server repository(2026-10-01)
  2. [2]SAMA Server README(2026-10-01)
  3. [3]SAMA full Docker Compose(2026-10-01)
  4. [4]SAMA Server package.json(2026-10-01)
  5. [5]SAMA Server 0.37.2 release(2026-10-01)
  6. [6]SAMA Server GPL-3.0 license(2026-10-01)
編集部からの補足

XMPPの代替を意識したリアルタイムmessaging serverで、複数nodeの接続・利用者状態をRedisで共有するcluster設計までrepository内で確認できます。Docker Composeでclient・nginx・MongoDB・Redis・MinIOまで含む構成を試せます。

3ステップで試す

  1. 1

    SAMA Serverを取得

    serverとfull Docker Compose構成を含む公式repositoryを取得します。

    git clone https://github.com/SAMA-Communications/sama-server.git && cd sama-server
  2. 2

    development用credentialを確認

    JWT、MinIO、admin key、CORSなどのdevelopment値を確認します。公開環境ではsample値をそのまま使用しません。

    Edit .env.docker and replace sample secrets before any exposed deployment
  3. 3

    full stackを起動

    client、nginx、SAMA Server、MongoDB、Redis、MinIOなどを含むfull Compose stackをbuildして起動します。

    docker compose -f docker-compose-full.yml up -d --build
公式READMEで確認

成長

成長の推移 · 直近30日

158 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
1
Open PR
1

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • chat
  • chat-application
  • chat-server
  • chatserver
  • nodejs
  • websocket
  • xmpp
  • xmpp-server
Stars
158
Forks
14
Watchers
4
Open Issues
1
Contributors
5
所有者種別
Organization
主要言語
JavaScript
ライセンス
GPL-3.0
リポジトリ最終更新
2026/09/30

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?