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