# `finallycoffee.matrix.synapse` ansible role ## Configuration ### Required The following variables need to be populated: - `synapse_domain` - the domain this homeserver should be authoritative for. - `synapse_signing_key` - the signing key synapse should use. Set either this or `synapse_role_generate_signing_key: true`. ## Other - [Configure your database](docs/database.md) - [Configure your listeners](docs/listeners.md) - [Configure logging](docs/logging.md) ## Deployment methods - `docker` - `podman` - `virtualenv` - Python virtual env supervised with `systemd` Set `synapse_deployment_method` to one of the supported deployment methods. The current default is `docker`. ### `virtualenv` deployment method This deployment method installs a `systemd` service called `synapse.service` to control the homeserver process. The service depends on the `network.target` by default (see [`synapse_systemd_unit_after`](synapse/main/systemd.yml)), and uses the `default.target` as it's `WantedBy` (see [`synapse_systemd_install_wanted_by`](synapse/main/systemd.yml)). To only start synapse after, for example, services for redis and postgresql are up, set `synapse_systemd_unit_wants: [ "postgresql.service", "redis.service" ]`. > [!NOTE] > Requires `systemd >= 245` on the target machine