| @@ -37,6 +37,26 @@ matrix_playbook_ssl_enabled: "{{ matrix_playbook_ssl_retrieval_method in ['lets- | |||
| # # | |||
| ######################################################################## | |||
| ######################################################################## | |||
| # # | |||
| # aux # | |||
| # # | |||
| ######################################################################## | |||
| aux_directory_default_owner: "{{ matrix_user_username }}" | |||
| aux_directory_default_group: "{{ matrix_user_groupname }}" | |||
| aux_file_default_owner: "{{ matrix_user_username }}" | |||
| aux_file_default_group: "{{ matrix_user_groupname }}" | |||
| ######################################################################## | |||
| # # | |||
| # /aux # | |||
| # # | |||
| ######################################################################## | |||
| ######################################################################## | |||
| # # | |||
| # base # | |||
| @@ -112,7 +112,8 @@ | |||
| - galaxy/ntfy | |||
| - custom/matrix-nginx-proxy | |||
| - custom/matrix-coturn | |||
| - custom/matrix-aux | |||
| - role: galaxy/aux | |||
| - role: galaxy/com.devture.ansible.role.postgres_backup | |||
| @@ -59,3 +59,7 @@ | |||
| - src: git+https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper.git | |||
| version: v2.8.1-0 | |||
| - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-aux.git | |||
| name: aux | |||
| version: v1.0.0-0 | |||
| @@ -1,81 +0,0 @@ | |||
| --- | |||
| # matrix-aux is a role that manages auxiliary files and directories on your Matrix server. | |||
| # | |||
| # Certain components (like matrix-synapse, etc.) may sometimes require additional templates (email templates, privacy policies, etc.). | |||
| # This role allows such files to be managed by the playbook. | |||
| # | |||
| # Note that files and directories created via this role are not automatically made available for containers to use. | |||
| # If you use this role to put files in a directory that's already mounted into a container, | |||
| # you can access the files without additional work. | |||
| # Otherwise, you'd need to mount the file/directory to the container that needs it. | |||
| # Roles usually provide a `matrix_*_additional_volumes` or `matrix_*_container_extra_arguments` variable | |||
| # that you can use to mount an additional volume. | |||
| # The default permission mode when creating directories using `matrix_aux_directory_definitions` | |||
| matrix_aux_directory_default_mode: '0750' | |||
| # Holds a list of directories to create on the server. | |||
| # | |||
| # By default, directories are: | |||
| # - created with permissions as specified in `matrix_aux_directory_default_mode` | |||
| # - owned by the `matrix_user_username` user and `matrix_user_groupname` group (usually `matrix:matrix`) | |||
| # | |||
| # Example: | |||
| # | |||
| # matrix_aux_directory_definitions: | |||
| # - dest: /matrix/aux | |||
| # | |||
| # - dest: /matrix/another | |||
| # mode: '0700' | |||
| # owner: 'some-user' | |||
| # group: 'some-group' | |||
| matrix_aux_directory_definitions: [] | |||
| # The default permission mode when creating directories using `matrix_aux_directory_definitions` | |||
| matrix_aux_file_default_mode: '0640' | |||
| # Holds a list of files to create on the server. | |||
| # | |||
| # By default, files are: | |||
| # - created with permissions as specified in `matrix_aux_file_default_mode` | |||
| # - owned by the `matrix_user_username` user and `matrix_user_groupname` group (usually `matrix:matrix`) | |||
| # | |||
| # You can define the file content inline (in your `vars.yml` file) or as an external file (see the example below). | |||
| # Defining the content inline in `vars.yml` has the benefit of not splitting your configuration into multiple files, | |||
| # but rather keeping everything inside `vars.yml` (which also gets backed up on the server in `/matrix/vars.yml`). | |||
| # | |||
| # Note: parent paths for files must exist. | |||
| # If you've defined a file with a destination of `/matrix/some/path/file.txt`, | |||
| # then you likely need to add `/matrix/some/path` to `matrix_aux_directory_definitions` as well. | |||
| # You don't need to do this for directories that the playbook already creates for you. | |||
| # | |||
| # Use a `content` key for text content and `src` with a location to a file for binary content. | |||
| # The `content` key does not support binary content (see https://github.com/ansible/ansible/issues/11594). | |||
| # | |||
| # Example: | |||
| # | |||
| # matrix_aux_file_definitions: | |||
| # - dest: "{{ matrix_synapse_config_dir_path }}/something.html" | |||
| # content: | | |||
| # <!doctype html> | |||
| # <html><body>Something</body></html> | |||
| # | |||
| # - dest: /matrix/aux/some-other-file.txt | |||
| # content: "Something" | |||
| # mode: '0600' | |||
| # owner: 'some-user' | |||
| # group: 'some-group' | |||
| # | |||
| # - dest: /matrix/aux/yet-another-file.txt | |||
| # content: "{{ lookup('template', '/path/to/file.txt.j2') }}" | |||
| # mode: '0600' | |||
| # owner: 'some-user' | |||
| # group: 'some-group' | |||
| # | |||
| # - dest: /matrix/aux/binary-file.dat | |||
| # src: "/path/to/binary.dat" | |||
| # mode: '0600' | |||
| # owner: 'some-user' | |||
| # group: 'some-group' | |||
| matrix_aux_file_definitions: [] | |||
| @@ -1,9 +0,0 @@ | |||
| --- | |||
| - tags: | |||
| - setup-all | |||
| - setup-aux-files | |||
| - install-all | |||
| - install-aux-files | |||
| block: | |||
| - ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup.yml" | |||
| @@ -1,20 +0,0 @@ | |||
| --- | |||
| - name: Ensure AUX directories are created | |||
| ansible.builtin.file: | |||
| dest: "{{ item.dest }}" | |||
| state: directory | |||
| owner: "{{ item.owner | default(matrix_user_username) }}" | |||
| group: "{{ item.group | default(matrix_user_groupname) }}" | |||
| mode: "{{ item.mode | default(matrix_aux_directory_default_mode) }}" | |||
| with_items: "{{ matrix_aux_directory_definitions }}" | |||
| - name: Ensure AUX files are created | |||
| ansible.builtin.copy: | |||
| src: "{{ item.src if 'src' in item else omit }}" | |||
| content: "{{ item.content if 'content' in item else omit }}" | |||
| dest: "{{ item.dest }}" | |||
| owner: "{{ item.owner | default(matrix_user_username) }}" | |||
| group: "{{ item.group | default(matrix_user_groupname) }}" | |||
| mode: "{{ item.mode | default(matrix_aux_file_default_mode) }}" | |||
| with_items: "{{ matrix_aux_file_definitions }}" | |||
| @@ -20,3 +20,6 @@ matrix_playbook_migration_matrix_redis_migration_validation_enabled: true | |||
| # Controls if (`matrix_etherpad` -> `etherpad`) validation will run. | |||
| matrix_playbook_migration_matrix_etherpad_migration_validation_enabled: true | |||
| # Controls if (`matrix_aux` -> `aux`) validation will run. | |||
| matrix_playbook_migration_matrix_aux_migration_validation_enabled: true | |||
| @@ -157,3 +157,19 @@ | |||
| Please change your configuration (vars.yml) to rename all variables (`matrix_etherpad_` -> `etherpad_`). | |||
| We found usage of the following variables: {{ matrix_playbook_migration_etherpad_migration_vars.keys() | join(', ') }} | |||
| when: "matrix_playbook_migration_etherpad_migration_vars | length > 0" | |||
| - when: matrix_playbook_migration_matrix_aux_migration_validation_enabled | bool | |||
| block: | |||
| - ansible.builtin.set_fact: | |||
| matrix_playbook_migration_aux_migration_vars: |- | |||
| {{ vars | dict2items | selectattr('key', 'match', 'matrix_aux_.*') | list | items2dict }} | |||
| - name: (Deprecation) Catch and report matrix_aux variables | |||
| ansible.builtin.fail: | |||
| msg: >- | |||
| The matrix-aux role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-aux. | |||
| The new role is compatible with the old one, but uses different names for its variables. | |||
| Please change your configuration (vars.yml) to rename all variables (`matrix_aux_` -> `aux_`). | |||
| We found usage of the following variables: {{ matrix_playbook_migration_aux_migration_vars.keys() | join(', ') }} | |||
| when: "matrix_playbook_migration_aux_migration_vars | length > 0" | |||