Matrix Docker Ansible eploy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

127 lines
4.5 KiB

  1. # This is a sample file demonstrating how to set up reverse-proxy for matrix.DOMAIN
  2. <VirtualHost *:80>
  3. ServerName matrix.DOMAIN
  4. ProxyVia On
  5. # Map /.well-known/acme-challenge to the certbot server
  6. # If you manage SSL certificates by yourself, this will differ.
  7. <Location /.well-known/acme-challenge>
  8. ProxyPreserveHost On
  9. ProxyPass http://127.0.0.1:2402/.well-known/acme-challenge
  10. </Location>
  11. Redirect permanent / https://matrix.DOMAIN/
  12. </VirtualHost>
  13. # Client-Server API
  14. <VirtualHost *:443>
  15. ServerName matrix.DOMAIN
  16. SSLEngine On
  17. # If you manage SSL certificates by yourself, these paths will differ.
  18. SSLCertificateFile /matrix/ssl/config/live/matrix.DOMAIN/fullchain.pem
  19. SSLCertificateKeyFile /matrix/ssl/config/live/matrix.DOMAIN/privkey.pem
  20. SSLProxyEngine on
  21. SSLProxyProtocol +TLSv1.2 +TLSv1.3
  22. SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  23. ProxyPreserveHost On
  24. ProxyRequests Off
  25. ProxyVia On
  26. RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
  27. # Keep some URIs free for different proxy/location
  28. ProxyPassMatch ^/.well-known/matrix/client !
  29. ProxyPassMatch ^/.well-known/matrix/server !
  30. ProxyPassMatch ^/_matrix/identity !
  31. ProxyPassMatch ^/_matrix/client/r0/user_directory/search !
  32. # Proxy all remaining traffic to Synapse
  33. AllowEncodedSlashes NoDecode
  34. ProxyPass /_matrix http://127.0.0.1:8008/_matrix retry=0 nocanon
  35. ProxyPassReverse /_matrix http://127.0.0.1:8008/_matrix
  36. ProxyPass /_synapse/client http://127.0.0.1:8008/_synapse/client retry=0 nocanon
  37. ProxyPassReverse /_synapse/client http://127.0.0.1:8008/_synapse/client
  38. # Map /.well-known/matrix/client for client discovery
  39. Alias /.well-known/matrix/client /matrix/static-files/.well-known/matrix/client
  40. <Files "/matrix/static-files/.well-known/matrix/client">
  41. Require all granted
  42. </Files>
  43. <Location "/.well-known/matrix/client">
  44. Header always set Content-Type "application/json"
  45. Header always set Access-Control-Allow-Origin "*"
  46. </Location>
  47. # Map /.well-known/matrix/server for server discovery
  48. Alias /.well-known/matrix/server /matrix/static-files/.well-known/matrix/server
  49. <Files "/matrix/static-files/.well-known/matrix/server">
  50. Require all granted
  51. </Files>
  52. <Location "/.well-known/matrix/server">
  53. Header always set Content-Type "application/json"
  54. </Location>
  55. <Directory /matrix/static-files/.well-known/matrix/>
  56. AllowOverride All
  57. # Apache 2.4:
  58. Require all granted
  59. # Or for Apache 2.2:
  60. #order allow,deny
  61. </Directory>
  62. # Map /_matrix/identity to the identity server
  63. <Location /_matrix/identity>
  64. ProxyPass http://127.0.0.1:8090/_matrix/identity nocanon
  65. </Location>
  66. # Map /_matrix/client/r0/user_directory/search to the identity server
  67. <Location /_matrix/client/r0/user_directory/search>
  68. ProxyPass http://127.0.0.1:8090/_matrix/client/r0/user_directory/search nocanon
  69. </Location>
  70. ErrorLog ${APACHE_LOG_DIR}/matrix.DOMAIN-error.log
  71. CustomLog ${APACHE_LOG_DIR}/matrix.DOMAIN-access.log combined
  72. </VirtualHost>
  73. # Server-Server (federation) API
  74. # Use this apache reverse proxy template to enable matrix server-to-server federation traffic
  75. # Be sure that network traffic on port 8448 is possible
  76. #
  77. # You can check your federation config at https://federationtester.matrix.org/
  78. # Enter there your base DOMAIN address, NOT your matrix.DOMAIN address, ex. https://DOMAIN
  79. #
  80. # In this example we use all services on the same machine (127.0.0.1) but you can do this with different machines.
  81. # If you do so be sure to reach the destinated IPADRESS and the correspondending port. Check this with netstat, nmap or your favourite tool.
  82. Listen 8448
  83. <VirtualHost *:8448>
  84. ServerName matrix.DOMAIN
  85. SSLEngine On
  86. # If you manage SSL certificates by yourself, these paths will differ.
  87. SSLCertificateFile /matrix/ssl/config/live/matrix.DOMAIN/fullchain.pem
  88. SSLCertificateKeyFile /matrix/ssl/config/live/matrix.DOMAIN/privkey.pem
  89. SSLProxyEngine on
  90. SSLProxyProtocol +TLSv1.2 +TLSv1.3
  91. SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  92. ProxyPreserveHost On
  93. ProxyRequests Off
  94. ProxyVia On
  95. RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
  96. # Proxy all remaining traffic to the Synapse port
  97. # Beware: In this example the local traffic goes to the local synapse server at 127.0.0.1
  98. # Of course you can use another IPADRESS in case of using other synapse servers in your network
  99. AllowEncodedSlashes NoDecode
  100. ProxyPass /_matrix http://127.0.0.1:8048/_matrix retry=0 nocanon
  101. ProxyPassReverse /_matrix http://127.0.0.1:8048/_matrix
  102. ErrorLog ${APACHE_LOG_DIR}/matrix.DOMAIN-error.log
  103. CustomLog ${APACHE_LOG_DIR}/matrix.DOMAIN-access.log combined
  104. </VirtualHost>