# vim: ft=nginx server { listen 80; listen [::]:80; # Used for server federation location ~^/\.well-known/matrix/server$ { charset utf-8; default_type application/json; if ($request_method = 'GET') { add_header Access-Control-Allow-Origin '*'; add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; return 200 '{"m.server":"${MATRIX_SERVER}"}'; } if ($request_method = 'OPTIONS') { add_header Access-Control-Allow-Origin '*'; add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; add_header 'Content-Length' 0; return 204; } return 405; } location ~^/\.well-known/matrix/client$ { charset utf-8; default_type application/json; if ($request_method = 'GET') { add_header Access-Control-Allow-Origin '*'; add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; return 200 '{"m.homeserver":{"base_url":"${MATRIX_CLIENT_SERVER}"}}'; } if ($request_method = 'OPTIONS') { add_header Access-Control-Allow-Origin '*'; add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; add_header 'Content-Length' 0; return 204; } return 405; } }