# Sample Caddyfile for using Caddy in front of Dendrite # # Customize email address and domain names # Optional settings commented out # # BE SURE YOUR DOMAINS ARE POINTED AT YOUR SERVER FIRST # Documentation: # # Bonus tip: If your IP address changes, use Caddy's # dynamic DNS plugin to update your DNS records to # point to your new IP automatically # # # Global options block { # In case there is a problem with your certificates. # email example@example.com # Turn off the admin endpoint if you don't need graceful config # changes and/or are running untrusted code on your machine. # admin off # Enable this if your clients don't send ServerName in TLS handshakes. # default_sni example.com # Enable debug mode for verbose logging. # debug # Use Let's Encrypt's staging endpoint for testing. # acme_ca https://acme-staging-v02.api.letsencrypt.org/directory # If you're port-forwarding HTTP/HTTPS ports from 80/443 to something # else, enable these and put the alternate port numbers here. # http_port 8080 # https_port 8443 } # The server name of your matrix homeserver. This example shows # "well-known delegation" from the registered domain to a subdomain # which is only needed if your server_name doesn't match your Matrix # homeserver URL (i.e. you can show users a vanity domain that looks # nice and is easy to remember but still have your Matrix server on # its own subdomain or hosted service) example.com { header /.well-known/matrix/*Content-Type application/json header /.well-known/matrix/* Access-Control-Allow-Origin * respond /.well-known/matrix/server `{"m.server": "matrix.example.com:443"}` respond /.well-known/matrix/client `{"m.homeserver": {"base_url": "https://matrix.example.com"}}` } # The actual domain name whereby your Matrix server is accessed matrix.example.com { # Change the end of each reverse_proxy line to the correct # address for your various services. @sync_api { path_regexp /_matrix/client/.*?/(sync|user/.*?/filter/?.*|keys/changes|rooms/.*?/(messages|.*?_?members|context/.*?|relations/.*?|event/.*?))$ } reverse_proxy @sync_api sync_api:8073 reverse_proxy /_matrix/client* client_api:8071 reverse_proxy /_matrix/federation* federation_api:8071 reverse_proxy /_matrix/key* federation_api:8071 reverse_proxy /_matrix/media* media_api:8071 }