include: - .nginx element_dependencies: pkg.installed: - pkgs: - element-web element_conf_file: file.managed: - name: /etc/riot-web/config.json - source: salt://profile/matrix/files/config-element.json - require: - file: matrix_conf_dirs /data/matrix: file.directory: - user: synapse - group: synapse /data/matrix/media_store: file.directory: - user: synapse - group: synapse synapse_appservices_dir: file.directory: - name: /etc/matrix-synapse/appservices synapse_conf_file: file.managed: - name: /etc/matrix-synapse/homeserver.yaml - source: salt://profile/matrix/files/homeserver.yaml - template: jinja - require: - file: matrix_conf_dirs - watch_in: - service: synapse_service /etc/matrix-synapse/signing.key: file.managed: - contents_pillar: profile:matrix:signing_key - mode: '0640' - user: root - group: synapse {%- set workers = salt['pillar.get']('profile:matrix:workers') %} {%- for app, types in workers.items() %} {%- for type in types %} {%- for worker, port in type.get('workers').items() %} /etc/matrix-synapse/workers/{{ worker }}.yaml: file.managed: - source: salt://profile/matrix/files/worker.yaml - template: jinja - context: worker: {{ worker }} port: {{ port }} app: {{ app }} resources: {{ type.get('resources', []) }} config: {{ type.get('config') }} - require: - file: matrix_conf_dirs - watch_in: - service: {{ worker }}_service {%- endfor %} {%- endfor %} {%- endfor %}