The tom-server (Twake-on-Matrix Server) is a Matrix Identity Server implementing
the matrix-identity-api specification,
with additional routes dedicated to Twake Workplace. It provides identity management
capabilities for the Twake ecosystem, handling user identity operations over the
Matrix protocol.
Note
This is a reboot of the legacy repo: ToM-Server-archive
ToM Server acts as the identity layer for the Twake Workplace ecosystem. It implements the matrix-identity-api specification and adds custom routes tailored to Twake's needs, providing a unified identity service for Matrix-based communication.
- Matrix Identity API: Full implementation of the matrix-identity-api specification for identity management operations.
- Twake-dedicated Routes: Additional API endpoints specifically designed for Twake Workplace integration.
- Identity Management: Handles user identity operations across the Matrix homeserver.
This repository uses Devenv to provide a unified, standardized and full featured environments for developers. We highly recommend you to get a look at it. https://devenv.sh
Making sure everything is set up so a developer can contribute is handled entirely by Devenv: once installed, it provisions the toolchain (bun, PostgreSQL, RabbitMQ, Synapse, Caddy, mkcert) and wires them together. There is no manual prerequisite to install.
# Clone the repository:
git clone https://github.com/linagora/tom-server.git
# Navigate to the project directory:
cd tom-server
# Enable the development environment (all tools are now on PATH):
devenv shell # or `devenv allow` for automatic shell setup on directory enter.
# Install dependencies:
bun installInside the development shell, spin up the local stack:
# Trust the local mkcert root CA so Chrome and Firefox accept the TLS certs:
mkcert -install
# Start everything (Caddy, Synapse, RabbitMQ, Postgres and ToM Server).
# `sudo -v` caches sudo so mkcert can store its root CA:
sudo -v && devenv updevenv up starts all required services, including the ToM Server itself
running as an auto-reloading (bun dev, watch mode) process.
Once running, the local services are available at:
- Caddy:
https://twake.internal:8443 - Synapse:
https://matrix.twake.internal:8443 - RabbitMQ:
127.0.0.1:5672 - Postgres:
127.0.0.1:5432 - ToM Server:
bun dev(watch mode) underdevenv up
ToM Server is configured via a YAML file. Copy the annotated example and edit it:
cp .tomconfig.example.yaml .tomconfig.yamlSee Configuration Reference for the full list of options (server, databases, email, LDAP, federation, telemetry, etc.).
Detailed information lives in the docs/ folder:
- Docker - how to build and run the ToM Server as a Docker image.
- Release - branch naming and the release process.
- Configuration - complete reference for every
.tomconfigoption.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Please read our Contributing Guidelines to learn about our development process, how to propose bugfixes and improvements, and how to submit Merge Requests.
Huge shout-out to all our participants!
- Pierre 'McFly' Marty pmarty@linagora.com
If you encounter any problems or have questions, please file an issue on our GitHub Issue Tracker.
This project is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later) - see the LICENSE file for details.