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
@@ -0,0 +1,27 @@
# SPDX-FileCopyrightText: 2026 Chiu Ki Sit
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Deploy Matrix boot recovery script (Synology)
ansible.builtin.template:
src: "{{ role_path }}/templates/bin/matrix-synology-boot-fix.j2"
dest: "{{ matrix_bin_path }}/matrix-synology-boot-fix"
mode: "0750"
owner: root
group: root
- name: Deploy Matrix boot recovery service (Synology)
ansible.builtin.template:
src: "{{ role_path }}/templates/systemd/matrix-synology-boot-fix.service.j2"
dest: /etc/systemd/system/matrix-synology-boot-fix.service
mode: "0644"
register: matrix_synology_boot_fix_service
- name: Reload systemd and enable Matrix boot recovery service (Synology)
ansible.builtin.systemd:
name: matrix-synology-boot-fix.service
daemon_reload: true
enabled: true
when: matrix_synology_boot_fix_service.changed