Skip to content

linagora/ToM-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Twake-Chat Matrix extension server



This repository is a multi-packages repository. See Modules for details.

ToM server enhances a Matrix Synapse server with several features:

  • first, Tom is a Matrix Identity Server but with additional features:
    • inside an organization, it adds some search APIs that allows to find internal users like do the mail clients, for autocompletion for example
    • it extends also Matrix Identity Service search responses by adding inactive users
  • it provide also an "application service" that allows administrator to create channels with automatic join
  • it implements also the federated identity mechanism that extend the Matrix Identity Service to join Matrix identity services to provide a better search

Here is the architecture principle:

architecture principle

REST API Endpoints documentation is available on https://linagora.github.io/ToM-server/

Try it yourself

Modules

Requirements

  • Node >=18

Commands

  • npm run build: build all packages
  • npm run test: test all packages
  • node ./server.mjs: run the server

Development Setup

Follow these steps to start the project in development mode:

1. Copy environment file

Create a local .env file based on the provided example:

cp .env.example .env

You can adjust any variables inside .env as needed (e.g., database credentials, API keys, etc.).

2. Start required services

Use the provided Docker Compose file to start the local dependencies (PostgreSQL, LDAP, etc.):

docker compose -f .compose/examples/dev.pgsql+ldap.yml up -d

This runs all necessary backend services in the background. To stop them later:

docker compose -f .compose/examples/dev.pgsql+ldap.yml down

3. Run the development environment

Start the local dev environment (watchers + server auto-reload):

npm run dev

This will:

  • Watch and rebuild all packages automatically (lerna run watch)
  • Launch the backend server via nodemon
  • Load environment variables from .env automatically

4. Access and debug

Once started:

  • The server should be running at the URL printed in the console (e.g. http://localhost:3000)
  • Any code changes in packages/ will trigger automatic rebuilds and server restarts

Copyright and license

Copyright (c) 2023-present Linagora https://linagora.com

License: GNU AFFERO GENERAL PUBLIC LICENSE