4
0
mirror of https://github.com/spantaleev/matrix-docker-ansible-deploy.git synced 2026-06-30 15:31:18 +00:00

Add Synology DSM support (#5315)

Adds optional support for running the playbook on Synology DSM 7+, detected
automatically via /etc/synoinfo.conf so that non-Synology hosts are unaffected.

Includes DSM-native user/group management (synouser/synogroup), a requests
version constraint for Docker SDK compatibility, and a boot-fix service that
re-shares the volume mount and starts matrix services skipped by DSM's boot
ordering. The shared-mount volume path is configurable via
matrix_base_synology_volume_path, and the make-shared step only runs when the
volume is not already shared.

Co-authored-by: CKSit <sitchiuki@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
cksit
2026-06-30 00:45:01 +08:00
committed by GitHub
parent 4f9346e182
commit ee1cd217a8
13 changed files with 490 additions and 23 deletions
@@ -204,6 +204,26 @@ matrix_group_system: true
matrix_user_uid: ~
matrix_user_gid: ~
# Controls Synology DSM-specific handling. `null` means autodetect (via /etc/synoinfo.conf).
# Set to `true`/`false` to force.
matrix_base_host_is_synology: ~
# Password for the Matrix service account on Synology DSM.
# Must be set to a non-empty value in your vars.yml when running on Synology.
# The account is created as expired so the password cannot be used to log in.
matrix_synology_user_password: ""
# Version constraint for the requests Python package installed on Synology hosts.
# requests >= 2.32 dropped the http+docker URL scheme used by the Docker SDK,
# causing "Not supported URL scheme http+docker" errors. Installed into the
# system Python interpreter (ansible_python_interpreter) on the remote host.
matrix_base_synology_requests_version_constraint: "requests<2.32"
# Synology volume that needs shared mount propagation so that Docker
# bind-propagation=slave mounts (used by matrix-synapse for its media store)
# work correctly. Defaults to /volume1 (DSM's default Docker storage volume).
matrix_base_synology_volume_path: "/volume1"
matrix_base_data_path: "/matrix"
matrix_base_data_path_mode: "750"