[ { "name": "preparation | install packages", "become": true, "ansible.builtin.apt": { "update_cache": true, "pkg": [ "lsb-release", "apt-transport-https" ] } }, { "name": "preparation | get keyring", "become": true, "ansible.builtin.get_url": { "url": "https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg", "dest": "/usr/share/keyrings/matrix-org-archive-keyring.gpg" } }, { "name": "preparation | add source", "become": true, "ansible.builtin.shell": { "cmd": "echo \"deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main\" > /etc/apt/sources.list.d/synapse.list", "creates": "/etc/apt/sources.list.d/synapse.list" } }, { "name": "preparation | update package information", "become": true, "ansible.builtin.apt": { "update_cache": true } }, { "name": "preparation | conf | server-name", "become": true, "ansible.builtin.debconf": { "name": "matrix-synapse", "question": "matrix-synapse/server-name", "vtype": "string", "value": "{{var_synapse_domain}}" } }, { "name": "preparation | conf | report-stats", "become": true, "ansible.builtin.debconf": { "name": "matrix-synapse", "question": "matrix-synapse/report-stats", "vtype": "boolean", "value": false } }, { "name": "install packages", "become": true, "ansible.builtin.apt": { "update_cache": true, "pkg": [ "python3-authlib", "matrix-synapse-py3" ] } }, { "name": "directories", "become": true, "loop": [ "/var/synapse" ], "ansible.builtin.file": { "state": "directory", "path": "{{item}}", "owner": "matrix-synapse" } }, { "name": "emplace configuration", "become": true, "ansible.builtin.template": { "src": "homeserver.yaml.j2", "dest": "/etc/matrix-synapse/homeserver.yaml" } }, { "name": "ufw | check", "become": true, "check_mode": true, "community.general.ufw": { "state": "enabled" }, "register": "ufw_enable_check" }, { "name": "ufw | allow port", "when": "not ufw_enable_check.changed", "become": true, "community.general.ufw": { "rule": "allow", "port": "8448", "proto": "tcp" } }, { "name": "restart service", "become": true, "ansible.builtin.systemd_service": { "state": "restarted", "name": "matrix-synapse" } }, { "name": "setup admin user", "when": "var_synapse_admin_user_define", "become": true, "ansible.builtin.shell": { "cmd": "synapse_register_new_matrix_user --config=/etc/matrix-synapse/homeserver.yaml --admin --user={{var_synapse_admin_user_name}} --password={{var_synapse_admin_user_password}} || true" } } ]