1
0
Fork 0
hscloud/app/matrix/media-repo-proxy
q3k 97b5cd7b58 go: re-do the entire thing
This is a mega-change, but attempting to split this up further is
probably not worth the effort.

Summary:

1. Bump up bazel, rules_go, and others.
2. Switch to new go target naming (bye bye go_default_library)
3. Move go deps to go.mod/go.sum, use make gazelle generate from that
4. Bump up Python deps a bit

And also whatever was required to actually get things to work - loads of
small useless changes.

Tested to work on NixOS and Ubuntu 20.04:

   $ bazel build //...
   $ bazel test //...

Change-Id: I8364bdaa1406b9ae4d0385a6b607f3e7989f98a9
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1583
Reviewed-by: q3k <q3k@hackerspace.pl>
2023-09-22 21:50:19 +00:00
..
BUILD.bazel go: re-do the entire thing 2023-09-22 21:50:19 +00:00
README.md app/matrix: media repo proxy init 2021-09-16 18:57:08 +00:00
main.go app/matrix: media repo proxy init 2021-09-16 18:57:08 +00:00
main_test.go app/matrix: media repo proxy init 2021-09-16 18:57:08 +00:00

README.md

Matrix-Media-Repository Proxy

This is A Saurceful Of Go that between Matrix Media Repo instances and Ingresses.

It has one job: rewrite Host headers. The reason for this is that matrix-media-repo wants Host: hackerspace.pl (MXID domain) while our traffic comes in with Host: matrix.hackerspace.pl (actual Host at which we serve Matrix).

Alternatives considered

  1. Rewriting this in Nginx Ingress Controller: not easy to do on a per-rule basis, would require some extra ingresses and dumb loopbacks.
  2. Fixing matrix-media-repo: not easy with the assumptions their code makes and with no tests that we can run.

Running

Locally:

$ bazel run //app/matrix/media-repo-proxy -- -downstream_host=matrix.hackerspace.pl -upstream_host=hackerspace.pl -upstream=foo.bar.svc.cluster.local:8080

In prod, should be part of jsonnet infra and be brought up as needed.