Skip to main content

No project description provided

Project description

ESS Migration Tool

The ESS Migration Tool helps you migrate your existing Synapse and Matrix Authentication Service (MAS) configurations to Element Server Suite (ESS) Helm values format. This tool automates the conversion process, making it easier to transition to ESS while preserving your existing configuration settings.

ESS Migration Tool

Installation

Install the migration tool, ideally using pipx:

pipx install ess-pro-migration-tool

or by using uv:

uv tool install ess-migration-tool

Prerequisites

Before running the migration tool, ensure you have:

  1. A Synapse configuration file: Access to homeserver.yaml file from your current Synapse installation
  2. A Matrix Authentication Service configuration file (optional): Access to config.yaml file if you're already using MAS
  3. Well-Known delegation files (optional): Access to .well-known/matrix/client, .well-known/matrix/server, and .well-known/matrix/support files if you want to migrate Matrix delegation configuration
  4. An Element Web configuration file (optional): Access to config.json file if you have custom Element Web settings
  5. A Hookshot configuration file (optional): Access to hookshot-config.yaml file if you're using Hookshot for webhooks and bots
  6. Python 3.11+: The tool requires Python 3.11 or higher
  7. Access to configuration files: Make sure your configuration files are accessible and readable

If the tool has access to the secrets referenced in the configuration files, the tool will automatically discover and use them in the resulting output files. If it does not have access to the secrets, it will prompt you to provide them manually.

Usage

Basic Migration (Synapse only)

ess-pro-migration-tool --synapse-config /path/to/synapse/homeserver.yaml

Migration with Matrix Authentication Service

ess-pro-migration-tool --synapse-config /path/to/synapse/homeserver.yaml --mas-config /path/to/mas/config.yaml

Migration with Well-Known Delegation Files

# From a directory containing client.json, server.json, support.json
ess-migration-tool --synapse-config /path/to/synapse/homeserver.yaml --well-known-dir /path/to/well-known/

# Or specify individual files
ess-migration-tool --synapse-config /path/to/synapse/homeserver.yaml \
  --well-known-client /path/to/client.json \
  --well-known-server /path/to/server.json \
  --well-known-support /path/to/support.json
### Migration with Hookshot

```bash
ess-migration-tool --synapse-config /path/to/synapse/homeserver.yaml --hookshot-config /path/to/hookshot/hookshot-config.yaml

Migration with Element Web

ess-migration-tool --synapse-config /path/to/synapse/homeserver.yaml --element-web-config /path/to/element-web/config.json

Advanced Options

usage: ess-pro-migration-tool [-h] --synapse-config SYNAPSE_CONFIG [--mas-config MAS_CONFIG]
                          [--well-known-dir WELL_KNOWN_DIR] [--well-known-client WELL_KNOWN_CLIENT]
                          [--well-known-server WELL_KNOWN_SERVER] [--well-known-support WELL_KNOWN_SUPPORT]
                          [--element-web-config ELEMENT_WEB_CONFIG] [--hookshot-config HOOKSHOT_CONFIG]
                          [--output-dir OUTPUT_DIR] [--verbose] [--debug] [--quiet]
                          [--database-mode {existing,ess-managed}]

Migrate Matrix Stack configurations to Element Server Suite Helm values

options:
  -h, --help            show this help message and exit
  --synapse-config SYNAPSE_CONFIG
                        Path to Synapse homeserver.yaml configuration file. This is the main Synapse
                        configuration that contains server_name, database, listeners, etc.
  --mas-config MAS_CONFIG
                        Path to Matrix Authentication Service config.yaml configuration file.
  --well-known-dir WELL_KNOWN_DIR
                        Path to directory containing well-known delegation files (client.json, server.json,
                        support.json). These files configure Matrix delegation for your domain.
  --well-known-client WELL_KNOWN_CLIENT
                        Path to a well-known client delegation file (client or client.json). Takes precedence
                        over --well-known-dir if both are specified.
  --well-known-server WELL_KNOWN_SERVER
                        Path to a well-known server delegation file (server or server.json). Takes precedence
                        over --well-known-dir if both are specified.
  --well-known-support WELL_KNOWN_SUPPORT
                        Path to a well-known support delegation file (support or support.json). Takes precedence
                        over --well-known-dir if both are specified.
  --element-web-config ELEMENT_WEB_CONFIG
                        Path to Element Web config.json configuration file.
  --hookshot-config HOOKSHOT_CONFIG
                        Path to Hookshot hookshot-config.yaml configuration file.
  --output-dir OUTPUT_DIR
                        Output directory for generated files (default: output). The migration will create Helm
                        values.yaml and any ConfigMap files in this directory.
  --verbose             Enable verbose logging. Shows detailed information about the migration process.
  --debug               Enable debug logging. Shows debug information about the migration process.
  --quiet               Disable migration summary output.
  --database-mode {existing,ess-managed}
                        Database migration mode. 'existing' to use existing database, 'ess-managed' to use ESS-
                        managed PostgreSQL. If not specified, user will be prompted.

Migration Process

The migration tool follows these steps:

  1. Loading and validating input files: Reads and validates your Synapse, MAS, and well-known delegation configuration files
  2. Discovering secrets and extra files: Automatically discovers secrets and extra files referenced in the configuration
  3. Migrating configuration to ESS values: Converts your existing configuration to ESS Helm values format.
  4. Writing output files: Write the values.yaml, ConfigMaps, and Secrets to the output directory

Output Files

The tool generates the following files in the output directory:

  • values.yaml: Main Helm values file for ESS deployment
  • ConfigMap files: Additional Kubernetes ConfigMaps containing additional extra files (emails templates etc...)
  • Secrets files: Kubernetes Secrets containing secrets discovered in the configuration files

Post-Migration Steps

After running the migration tool:

  1. Review the generated files: Check the output directory for the generated values.yaml and other files
  2. Customize as needed: Modify the values to match your specific requirements
  3. Follow the instructions provided by the tool: The tool will explain the next steps adjusted to your environment. You many need to adjust some steps according to your environment
  4. Verify the setup: Follow the ESS verification steps

Enabling Matrix Authentication Service

If your existing deployment does not support Matrix Authentication Service (MAS), after migrating to ESS, you can use the ESS syn2mas feature:

See the syn2mas documentation for the complete process.

Support

For issues or questions about the migration tool:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ess_pro_migration_tool-0.1.0.tar.gz (89.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ess_pro_migration_tool-0.1.0-py3-none-any.whl (112.5 kB view details)

Uploaded Python 3

File details

Details for the file ess_pro_migration_tool-0.1.0.tar.gz.

File metadata

  • Download URL: ess_pro_migration_tool-0.1.0.tar.gz
  • Upload date:
  • Size: 89.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ess_pro_migration_tool-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ac8b9d007c0fa0ecade767961c8b84c8195f51225afc962561fb896db08f91d6
MD5 6d8dfb042507ba8ac7606361345a8c46
BLAKE2b-256 a161205f493a6e1fa8acbf975fb0cfd48f3552d3cbfaba5ba4ba33ae80ab35a1

See more details on using hashes here.

File details

Details for the file ess_pro_migration_tool-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ess_pro_migration_tool-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 112.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ess_pro_migration_tool-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2906774e2a58a6ce9f1fbb4487172bcfa3856f60ea38e7766abceaf8c7853ce5
MD5 1f77a8ca13d0dee9f17379dceca8946d
BLAKE2b-256 c0a4039ba5c7d8e1cc7bf156282986581cec0120b9969c9de9855ffb941cedd5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page