Skip to main content

Services Overview

Every service is a small NestJS app under apps/services/<name>, its own package.json and Dockerfile target. This section is the REST/WebSocket surface of each one, generated against the actual controllers and gateways in the repo — see Microservices for what each one is for.

ServiceREST prefixWebSocketOwns
auth-service/api/v1/auth, /api/v1/adminSessions, OAuth, admin panel auth
server-service/api/v1/servers, /api/v1/channelsServers, roles, channels, invites
chat-service/api/v1/messages, /api/v1/friends, /api/v1/dm, /api/v1/e2ee, /api/v1/uploads/ws/chatMessages, DMs, friends, E2EE keys, uploads
presence-service/api/v1/internal/presence (internal)/ws/presenceOnline/typing/voice roster state
notification-service/api/v1/notificationsMute/quiet-hour prefs, unread, push devices
call-service/api/v1/calls/ws/callCall signalling, ICE config
remote-gateway/api/v1/remote/ws/remoteMachines, grants, sessions, audit

All REST routes above are mounted under Nginx's /api/v1 prefix; the table shows each controller's own path segment. Every service also exposes /health.

api-gateway (Nginx/Traefik config, no app code) and remote-agent (a scaffold — the desktop app is the real agent) don't have their own API surface to document here.