https://github.com/linagora/tom-server
https://github.com/linagora/tom-server
matrix twake
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/linagora/tom-server
- Owner: linagora
- License: agpl-3.0
- Created: 2024-01-04T08:42:00.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-12-10T16:01:38.000Z (over 1 year ago)
- Last Synced: 2024-12-10T17:24:32.071Z (over 1 year ago)
- Topics: matrix, twake
- Language: TypeScript
- Size: 4.84 MB
- Stars: 14
- Watchers: 8
- Forks: 5
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Twake-Chat Matrix extension server
---
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:

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)