From 43b89a052dcf12b12636223ba6c7bf2104b30918 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org> Date: Thu, 18 Nov 2021 20:37:08 +0100 Subject: [PATCH] matrix: Route event reports to mjolnir --- roles/matrix/defaults/main.yml | 6 ++++++ roles/matrix/templates/mjolnir.yaml.j2 | 2 +- roles/matrix/templates/nginx.d.conf.j2 | 12 ++++++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/roles/matrix/defaults/main.yml b/roles/matrix/defaults/main.yml index 1f010cf2b..3db441485 100644 --- a/roles/matrix/defaults/main.yml +++ b/roles/matrix/defaults/main.yml @@ -2,6 +2,12 @@ matrix_max_upload_size: 50M matrix_nginx_config: + - name: mjolnir + port: 8010 + locations: + - path: "~ ^/_matrix/client/r0/rooms/([^/]*)/report/(.*)$" + pass: "/api/1/report/$1/$2" + add_cors: true - name: federation_reader port: 8011 locations: diff --git a/roles/matrix/templates/mjolnir.yaml.j2 b/roles/matrix/templates/mjolnir.yaml.j2 index 4ce40cd33..897e172bc 100644 --- a/roles/matrix/templates/mjolnir.yaml.j2 +++ b/roles/matrix/templates/mjolnir.yaml.j2 @@ -167,7 +167,7 @@ health: # Options for exposing web APIs. web: # Whether to enable web APIs. - enabled: false + enabled: true # The port to expose the webserver on. Defaults to 8080. port: 8010 diff --git a/roles/matrix/templates/nginx.d.conf.j2 b/roles/matrix/templates/nginx.d.conf.j2 index 9492e18f6..bf32f4e97 100644 --- a/roles/matrix/templates/nginx.d.conf.j2 +++ b/roles/matrix/templates/nginx.d.conf.j2 @@ -37,10 +37,18 @@ server { {% for config in matrix_nginx_config %} # {{ config.name }} {% for location in config.locations %} - location {{ location }} { +{% if location is string %} +{% set location = { 'path': location } %} +{% endif %} + location {{ location.path }} { access_log /var/log/nginx/{{ matrix_domain }}/access.log main; access_log /var/log/nginx/{{ matrix_domain }}/access.log.json json_main; - proxy_pass http://matrix_{{ config.name }}; +{% if location.add_cors | default(false) %} + add_header Access-Control-Allow-Origin *; + add_header Access-Control-Allow-Methods "GET, HEAD, POST, PUT, DELETE, OPTIONS"; + add_header Access-Control-Allow-Headers "X-Requested-With, Content-Type, Authorization, Date"; +{% endif %} + proxy_pass http://matrix_{{ config.name }}{{ location.pass | default('') }}; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; -- GitLab