aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorEmanuele Aliberti <dev@mtka.eu>2022-06-13 13:08:46 +0200
committerGitHub <noreply@github.com>2022-06-13 12:08:46 +0100
commitc50095858341cc051e2db97fb85a1bb985f90c66 (patch)
tree62ab651b469da699cd838bcebe1f6d82089ae319 /docs
parente1136f4d3e372f9c0b8a309a387193621a53ae6d (diff)
generic CaddyFile in front of Dendrite (monolith) (#2531)
for Caddy 2.5.x Co-authored-by: emanuele.aliberti <emanuele.aliberti@mtka.eu>
Diffstat (limited to 'docs')
-rw-r--r--docs/caddy/monolith/CaddyFile68
1 files changed, 68 insertions, 0 deletions
diff --git a/docs/caddy/monolith/CaddyFile b/docs/caddy/monolith/CaddyFile
new file mode 100644
index 00000000..cd93f9e1
--- /dev/null
+++ b/docs/caddy/monolith/CaddyFile
@@ -0,0 +1,68 @@
+{
+ # debug
+ admin off
+ email example@example.com
+ default_sni example.com
+ # Debug endpoint
+ # acme_ca https://acme-staging-v02.api.letsencrypt.org/directory
+}
+
+#######################################################################
+# Snippets
+#______________________________________________________________________
+
+(handle_errors_maintenance) {
+ handle_errors {
+ @maintenance expression {http.error.status_code} == 502
+ rewrite @maintenance maintenance.html
+ root * "/path/to/service/pages"
+ file_server
+ }
+}
+
+(matrix-well-known-header) {
+ # Headers
+ header Access-Control-Allow-Origin "*"
+ header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
+ header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
+ header Content-Type "application/json"
+}
+
+#######################################################################
+
+example.com {
+
+ # ...
+
+ handle /.well-known/matrix/server {
+ import matrix-well-known-header
+ respond `{ "m.server": "matrix.example.com:443" }` 200
+ }
+
+ handle /.well-known/matrix/client {
+ import matrix-well-known-header
+ respond `{ "m.homeserver": { "base_url": "https://matrix.example.com" } }` 200
+ }
+
+ import handle_errors_maintenance
+}
+
+example.com:8448 {
+ # server<->server HTTPS traffic
+ reverse_proxy http://dendrite-host:8008
+}
+
+matrix.example.com {
+
+ handle /_matrix/* {
+ # client<->server HTTPS traffic
+ reverse_proxy http://dendrite-host:8008
+ }
+
+ handle_path /* {
+ # Client webapp (Element SPA or ...)
+ file_server {
+ root /path/to/www/example.com/matrix-web-client/
+ }
+ }
+}