The playbook can install and configure matrix-hookshot for you.
Hookshot can bridge Webhooks from software project management services such as GitHub, GitLab, JIRA, and Figma, as well as generic webhooks.
See the project’s documentation to learn what it does in detail and why it might be useful to you.
Note: the playbook also supports matrix-appservice-webhooks, which however is soon to be archived by its author and to be replaced by hookshot.
Refer to the official instructions to learn what the individual options do.
matrix_hookshot_service_* listed in main.yml as required.matrix_hookshot_*_enabled variables. Services that need no further configuration are enabled by default (GitLab, Generic), while you must first add the required configuration and enable the others (GitHub, Jira, Figma).matrix_hookshot_github_private_key so the playbook can install it for you, or use one of the other methods explained below.--tags=setup-all,start). If not, proceed with configuring other playbook services and then with Installing. Get back to this guide once ready. Hookshot can be set up individually using the tag setup-hookshot.matrix_hookshot_matrix_nginx_proxy_configuration in init.yml): by default webhooks root is /hookshot/webhooks/.Other configuration options are available via the matrix_hookshot_configuration_extension_yaml and matrix_hookshot_registration_extension_yaml variables, see the comments in main.yml for how to use them.
The GitHub bridge requires you to install a private key file. This can be done in multiple ways:
matrix_hookshot_github_private_key to the contents (see example in main.yml).{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }} (default: /matrix/hookshot/private-key.pem) on the server manually.matrix-aux role to copy the file from an arbitrary path on your ansible client to the correct path on the server.To use matrix-aux, make sure the matrix_hookshot_github_private_key variable is empty. Then add to matrix-aux configuration like this:
matrix_aux_file_definitions:
- dest: "{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}"
content: "{{ lookup('file', '/path/to/your-github-private-key.pem') }}"
mode: '0400'
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"
For more info see the documentation in the matrix-aux base configuration file.
The provisioning API will be enabled automatically if you set matrix_dimension_enabled: true and provided a matrix_hookshot_provisioning_secret, unless you override it either way. To use hookshot with dimension, you will need to enter as “Provisioning URL”: http://matrix-hookshot:9002, which is made up of the variables matrix_hookshot_container_url and matrix_hookshot_provisioning_port.
If metrics are enabled, they will be automatically available in the builtin Prometheus and Grafana, but you need to set up your own Dashboard for now. If additionally metrics proxying for use with external Prometheus is enabled (matrix_nginx_proxy_proxy_synapse_metrics), hookshot metrics will also be available (at matrix_hookshot_metrics_endpoint, default /hookshot/metrics, on the stats subdomain) and with the same password. See also the Prometheus and Grafana docs.
If you are also running matrix-appservice-webhooks, it reserves its namespace by the default setting matrix_appservice_webhooks_user_prefix: '_webhook_'. You should take care if you modify its or hookshot’s prefix that they do not collide with each other’s namespace (default matrix_hookshot_generic_user_id_prefix: '_webhooks_').