An open API service indexing awesome lists of open source software.

https://github.com/linagora/tom-server


https://github.com/linagora/tom-server

matrix twake

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# Twake-Chat Matrix extension server







Website

View Demo

Report Bug

Translate Twake>


---

This repository is a multi-packages repository. See [Modules](#modules) for details.

**ToM server** enhances a [Matrix Synapse server](https://github.com/element-hq/synapse) with several features:
* first, **Tom** is a [Matrix Identity Server](https://spec.matrix.org/latest/identity-service-api/) 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](https://spec.matrix.org/latest/identity-service-api/) 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](https://github.com/matrix-org/matrix-spec-proposals/pull/4004) that extend the
[Matrix Identity Service](https://spec.matrix.org/latest/identity-service-api/) to join Matrix identity services to provide a better search

Here is the architecture principle:

![architecture principle](./docs/arch.png)

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

## Try it yourself

- [Running our Dockers](./docker.md)
- [Deploy locally with compose](./docker.md#docker-compose)

## Modules

* [@twake/matrix-identity-server](./packages/matrix-identity-server):
[Matrix Identity Service](https://spec.matrix.org/v1.6/identity-service-api/) implementation for Node.js
* [@twake/matrix-client-server](./packages/matrix-client-server/):
[Matrix Client-Server](https://spec.matrix.org/v1.11/client-server-api/) implementation for Node.js
* [@twake/matrix-invite](./packages/matrix-invite): matrix invitation web application
* [@twake/server](./packages/tom-server): the main Twake Chat Server, extends [@twake/matrix-identity-server](./packages/matrix-identity-server)
* [@twake/federated-identity-service](./packages/federated-identity-service): Twake Federated Identity Service
* [@twake/config-parser](./packages/config-parser): simple file parser that uses also environment variables
* [@twake/crypto](./packages/crypto): cryptographic methods for Twake Chat
* [@twake/logger](./packages/logger): logger for Twake
* [@twake/utils](.packages/utils): utilitary methods for Twake Chat
* [@twake/matrix-application-server](./packages/matrix-application-server): implements
[Matrix Application Service API](https://spec.matrix.org/v1.6/application-service-api/)
* [matrix-resolve](./packages/matrix-resolve): resolve a Matrix "server name" into base URL following
[Matrix specification](https://spec.matrix.org/latest/server-server-api/#server-discovery)
* [@twake/retry-promise](packages/retry-promise): simple module extending javascript Promise with retry strategy

## Requirements

- [ ] Node >=18

## Commands

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

## Copyright and license

Copyright (c) 2023-present Linagora

License: [GNU AFFERO GENERAL PUBLIC LICENSE](./LICENSE)