ansible-collection-famedly-.../roles/synapse/README.md
2022-03-14 12:06:07 +01:00

8.3 KiB

matrix-synapse

Deploy synapse, a matrix homeserver implementation in python, using ansible.

The role supports deployment both as systemd-services or as a docker container.

Requirements

The following should be present on the target system when deploying synapse as a systemd service:

  • pip
  • systemd
  • rsyslogd
  • logrotate

If deploying synapse in a docker container, check that you have docker and the corresponding python-bindings (usually python3-docker) installed.

Role Variables

Mandatory Variables

Name Type Description
matrix_server_name string
matrix_synapse_tls_cert string server's TLS certificate chain (when matrix_synapse_extra_config.no_tls is set to true)
matrix_synapse_tls_key string server's TLS key (when matrix_synapse_extra_config.no_tls is set to true)
matrix_synapse_report_stats bool Wether to report homeserver usage stats to matrix.org
matrix_synapse_pg_host string postgresql server
matrix_synapse_pg_user string postgresql user
matrix_synapse_pg_pass string postgresql user's password
matrix_synapse_pg_db string postgresql database

Optional Variables

Name Default value Description
matrix_synapse_base_path "/opt/synapse"
matrix_synapse_secrets_path "{{ matrix_synapse_base_path }}/secrets"
matrix_synapse_extra_config None configuration parameters as given in the synapse configuration file
matrix_synapse_dh_path "{{ matrix_synapse_base_path }}/tls/{{ matrix_server_name }}.dh"
matrix_synapse_public_baseurl "https://{{ matrix_server_name }}"
matrix_synapse_signing_key_path "{{ matrix_synapse_base_path }}/ssl/{{ matrix_server_name }}.signing.key"
matrix_synapse_version "v1.54.0"
matrix_synapse_unstable false when true, release candidate versions are deployed too
matrix_synapse_log_days_keep 14
matrix_synapse_deployment_method pip Either pip or docker ¹
matrix_synapse_supervision_method systemd Either systemd, runit or docker ¹
matrix_synapse_python_version 3 Default python version (2, 3) to be used
matrix_synapse_redis_enabled false If synapse should connect to redis (needed for workers)
matrix_synapse_redis_host None host on which redis is running
matrix_synapse_redis_port 6379 port on which redis is running
matrix_synapse_redis_pass None password to use to authentificate to redis
matrix_synapse_metrics_enabled false If prometheus metrics should be enabled.

Worker control variables

Name Default value Description
matrix_synapse_workers_enabled false Enables workers and starts the replication listener
matrix_synapse_workers_client 0 Amount of workers to deploy which serve the client API
matrix_synapse_workers_federation_in 0 Amount of federation workers to deploy (inbound)
matrix_synapse_workers_federation_out 0 Amount of federation sender workers to deploy (outbound)
matrix_synapse_workers_media 0 Amount of media-repo workers to deploy
matrix_synapse_worker_push false Enables a worker for pushes to sygnal/emal
matrix_synapse_worker_appservice false Enables a worker to handle synapse->appservice traffic
matrix_synapse_worker_user_search false Enable a worker to handle user_directory search
matrix_synapse_worker_replication_port 9003 Synapse replication port to use
matrix_synapse_worker_metrics_enabled false Enable metrics endpoint on each worker
matrix_synapse_worker_metrics_port 9101 Port on which metrics on each container can be reached

¹: Docker must be used for both or neither deployment and supervision

Dependencies

None.

Example Playbook

#TODO: Add example

License

Apache 2.0

Author Information

  • Michael Kaye
  • Jan Christian Grünhage
  • Emmanouil Kampitakis