Skip to content

Messenger (server-messenger)

The Messenger service provides real-time messaging between Hub components via Socket.io. It has no database — it is a pure WebSocket relay.

Running

bash
# Development (from repo root)
npm run server-realtime

# CLI
npm run cli --workspace=apps/server-messenger -- start

# Docker
docker run -e ... privateaim/hub messenger cli start

Dependencies

  • Redis — pub/sub for Socket.io adapter (required)
  • Authup — OAuth2 identity provider (token validation on socket connect)

Environment Variables

Service-Specific

VariableDefaultDescription
REDIS_CONNECTION_STRINGredis://127.0.0.1Redis connection (required)
AUTHUP_URLhttp://127.0.0.1:3010/Authup URL

Inherited

VariableDefaultDescription
NODE_ENVdevelopmentEnvironment
PORT3000HTTP/WebSocket server port
REALMmasterAuthup realm
CLIENT_IDsystemAuthup client ID
CLIENT_SECRETstart123Authup client secret

Architecture

This is the most minimal Hub service:

  • Socket controllers — connection lifecycle and message relay handlers
  • HTTPModule — creates HTTP server + Socket.io server with Authup middleware
  • No database, no AMQP consumers, no Swagger

Released under the Apache-2.0 License.