Deployment
MMR sits between your reverse proxy and underlying homeserver software, such as Synapse or Dendrite. This allows clients to continue making requests to the server without needing to know of an alternative media handling setup.
The easiest way to deploy MMR is to route all /_matrix/media
endpoints to the MMR process. Note that
with MSC3911 and MSC3916,
the specific set of endpoints may change.
An example NGINX config would be:
server {
listen 443 ssl;
listen [::]:443 ssl;
# SSL options not shown - ensure the certificates are valid for your
# homeserver deployment.
# Redirect all traffic by default to the homeserver
location /_matrix {
proxy_read_timeout 60s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://localhost:8008; # Point this towards your homeserver
}
# Redirect all media endpoints to MMR
location /_matrix/media {
proxy_read_timeout 60s;
# Make sure this matches your homeserver in your MMR config
# You may have to manually specify it if using delegation or the
# incoming `Host` doesn't match.
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://localhost:8000; # Point this towards media-repo
}
# Redirect MSC3916 endpoints to MMR
location /_matrix/client/unstable/org.matrix.msc3916 {
proxy_read_timeout 60s;
# Make sure this matches your homeserver in your MMR config
# You may have to manually specify it if using delegation or the
# incoming `Host` doesn't match.
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://localhost:8000; # Point this towards media-repo
}
location /_matrix/federation/unstable/org.matrix.msc3916 {
proxy_read_timeout 60s;
# Make sure this matches your homeserver in your MMR config
# You may have to manually specify it if using delegation or the
# incoming `Host` doesn't match.
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://localhost:8000; # Point this towards media-repo
}
}