Files
Quentin Gliech 16125cecd2 Remove the optional systemd-python dependency (#19491)
Summary
- drop the `systemd` extra from `pyproject.toml` and the
`systemd-python` optional dependency
- this means we don't ship the journald log handler, so it clarifies the
docs how to install that in the venv
- ensure the Debian virtualenv build keeps shipping
`systemd-python>=231` in the venv, so the packaged log config can keep
using `systemd.journal.JournalHandler`

Context of this is the following:

> Today in my 'how hard would it be to move to uv' journey:
https://github.com/systemd/python-systemd/issues/167
>
> The gist of it is that uv really wants to create a universal lock
file, which means it needs to be able to resolve the package metadata,
even for packages locked for other platforms. In the case of
systemd-python, they use mesonpy as build backend, which doesn't
implement prepare_metadata_for_build_wheel, which means it needs to run
meson to be able to resolve the package metadata. And it will hard-fail
if libsystemd dev headers aren't available 😭
>
> [*message in
#synapse-dev:matrix.org*](https://matrix.to/#/!i5D5LLct_DYG-4hQprLzrxdbZ580U9UB6AEgFnk6rZQ/$OKLB3TJVXAwq43sAZFJ-_PvMMzl4P_lWmSAtlmsoMuM?via=element.io&via=matrix.org&via=beeper.com)
2026-03-09 15:11:04 +00:00
..

Setup Synapse with Systemd

This is a setup for managing synapse with a user contributed systemd unit file. It provides a matrix-synapse systemd unit file that should be tailored to accommodate your installation in accordance with the installation instructions provided in installation instructions.

Setup

  1. Under the service section, ensure the User variable matches which user you installed synapse under and wish to run it as.
  2. Under the service section, ensure the WorkingDirectory variable matches where you have installed synapse.
  3. Under the service section, ensure the ExecStart variable matches the appropriate locations of your installation.
  4. Copy the matrix-synapse.service to /etc/systemd/system/
  5. Start Synapse: sudo systemctl start matrix-synapse
  6. Verify Synapse is running: sudo systemctl status matrix-synapse
  7. optional Enable Synapse to start at system boot: sudo systemctl enable matrix-synapse

Logging

If you use contrib/systemd/log_config.yaml, install systemd-python in the same Python environment as Synapse. The config uses systemd.journal.JournalHandler, which requires that package.