Skip to content

linagora/ToM-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e630767 · Aug 12, 2024
Jul 18, 2024
May 21, 2023
Jul 18, 2024
Nov 8, 2023
Aug 12, 2024
Apr 13, 2023
Jun 13, 2024
Jun 6, 2024
Mar 26, 2024
May 26, 2023
Apr 13, 2023
Jul 18, 2024
Jul 8, 2024
Mar 7, 2023
Jul 17, 2024
Jun 6, 2024
Jan 9, 2024
Aug 22, 2023
Aug 22, 2023
Jul 17, 2024
Jul 9, 2024
May 21, 2023
Jun 9, 2024
Dec 21, 2023
Jul 3, 2024

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 with docker

Scripts

  • npm run build: build all packages
  • npm run test: test all packages

Modules

Twake-Chat docker

This repository provides different docker images. The main is Tom Server itself. Here are its environment variables:

  • Required:
    • BASE_URL: Public URL
    • Database:
      • DATABASE_ENGINE (pg or sqlite)
      • DATABASE_HOST (path for sqlite)
      • DATABASE_NAME
      • DATABASE_USER
      • DATABASE_PASSWORD
      • DATABASE_SSL
    • OIDC_ISSUER: URL of SSO server
    • LDAP service:
      • LDAP_BASE
      • LDAP_FILTER
      • LDAP_USER
      • LDAP_PASSWORD
      • LDAP_URI
    • Matrix server:
      • SERVER_NAME (same value than in Matrix's homeserver.yaml)
      • MATRIX_SERVER (real Matrix server)
    • TEMPLATE_DIR (default: node_modules/@twake/server/templates)
  • Recommended:
    • ADDITIONAL_FEATURES: set true to have all search features; false for a public instance
    • Cron service:
      • CRON_SERVICE (default: true): enable cron tasks
      • PEPPER_CRON (default: 9 1 * * *)
      • UPDATE_USERS_CRON (default: */15 * * * *)
      • UPDATE_FEDERATED_IDENTITY_HASHES_CRON (default: 3 3 * * *)
    • Logs:
      • LOG_TRANSPORTS: set to Console
      • LOG_LEVEL: default to "error", possible values: "error", "warn", "info", "http", "verbose", "debug", "silly"
    • TRUSTED_PROXIES: IP list of server allowed to set X-Frowarded-For header
    • Rate limits (see express-rate-limit):
      • RATE_LIMITING_WINDOW
      • RATE_LIMITING_NB_REQUESTS
  • Optional:
    • FEDERATED_IDENTITY_SERVICES: list of federated identity services
    • Use a CrowdSec service:
      • CROWDSEC_URI
      • CROWDSEC_KEY
    • Add Jitsi into metadata:
      • JITSI_BASE_URL
      • JITSI_JWT_ALGORITHM
      • JITSI_JWT_ISSUER
      • JITSI_SECRET
      • JITSI_PREFERRED_DOMAIN
      • JITSI_USE_JWT
    • Matrix database (for automatic channels):
      • MATRIX_DATABASE_ENGINE
      • MATRIX_DATABASE_HOST
      • MATRIX_DATABASE_NAME
      • MATRIX_DATABASE_PASSWORD
      • MATRIX_DATABASE_SSL
      • MATRIX_DATABASE_USER
    • Opensearch features:
      • OPENSEARCH_CA_CERT_PATH
      • OPENSEARCH_HOST
      • OPENSEARCH_IS_ACTIVATED
      • OPENSEARCH_MAX_RETRIES
      • OPENSEARCH_NUMBER_OF_SHARDS
      • OPENSEARCH_NUMBER_OF_REPLICAS
      • OPENSEARCH_PASSWORD
      • OPENSEARCH_SSL
      • OPENSEARCH_USER
      • OPENSEARCH_WAIT_FOR_ACTIVE_SHARDS

Copyright and license

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

License: GNU AFFERO GENERAL PUBLIC LICENSE