Skip to content

linagora/ToM-server

This branch is 1 commit ahead of, 99 commits behind master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

eb3ec2a · Jun 24, 2024
Jun 12, 2024
May 21, 2023
Jun 12, 2024
Nov 8, 2023
Jun 13, 2024
Apr 13, 2023
Jan 9, 2024
Jun 6, 2024
Mar 26, 2024
May 26, 2023
Apr 13, 2023
Apr 5, 2024
Jun 11, 2024
Mar 7, 2023
Jun 12, 2024
Jun 6, 2024
Jan 9, 2024
Aug 22, 2023
Jun 24, 2024
Jun 24, 2024
Jun 24, 2024
May 21, 2023
Jun 9, 2024
Dec 21, 2023
Apr 23, 2024

Repository files navigation

Twake-Chat server repository

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