summaryrefslogtreecommitdiffstats
path: root/nginx/matrix_kyriasis_com.sls
blob: 8db809ce9268ae3bf97a81ee86c6938e9acbc4be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
nginx:
  ng:
    servers:
      managed:
        matrix.kyriasis.com:
          enabled: True
          config:
            - upstream matrix_backend:
              - server: 127.0.0.1:8448

            - upstream synapse_metrics:
              - server: 127.0.0.1:9091


            - server:
              - server_name: matrix.kyriasis.com
              - listen: 80
              - listen: '[::]:80'

              - location /.well-known/acme-challenge:
                - root: /srv/http/

              - location /:
                - return: '301 https://$server_name$request_uri'


            - server:
              - server_name: matrix.kyriasis.com kyriasis.com
              - listen: 443 ssl http2 default_server
              - listen: '[::]:443 ssl http2 default_server'

              - ssl: 'on'
              - ssl_certificate: /etc/letsencrypt/live/matrix.kyriasis.com/fullchain.pem
              - ssl_certificate_key: /etc/letsencrypt/live/matrix.kyriasis.com/privkey.pem
              - ssl_dhparam: /etc/nginx/dhparam.pem

              - ssl_stapling: 'on'
              - ssl_stapling_verify: 'on'
              - ssl_trusted_certificate: /etc/letsencrypt/live/matrix.kyriasis.com/fullchain.pem

              # https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
              - add_header: 'Strict-Transport-Security "max-age=31536000"'

              # Tell browsers to not try to auto-detect the Content-Type.
              - add_header: X-Content-Type-Options nosniff

              # Enable the Cross-site scripting filter in most recent browsers.
              # Normally enabled by default, but enable it anyway if user has disabled it.
              - add_header: 'X-XSS-Protection "1; mode=block"'

              # http://www.gnuterrypratchett.com/
              - add_header: 'X-Clacks-Overhead "GNU Terry Pratchett"'

              - client_max_body_size: 128m

              - error_log: /var/log/nginx/matrix.error.log

              - location /:
                - return: 301 https://riot.kyriasis.com

              - location /_matrix:
                - proxy_pass: https://matrix_backend
                - proxy_buffering: "off"
                - proxy_set_header: X-Forwarded-For $remote_addr
                - proxy_set_header: Host $host

              - location /_synapse:
                - proxy_pass: http://synapse_metrics
                - proxy_buffering: "off"
                - proxy_set_header: X-Forwarded-For $remote_addr
                - proxy_set_header: Host $host
                - proxy_http_version: 1.1

              - location /.well-known/acme-challenge:
                - root: /srv/http/

              - location /.well-known/matrix/client:
                - proxy_pass: https://matrix_backend
                - proxy_buffering: "off"
                - proxy_set_header: X-Forwarded-For $remote_addr
                - proxy_set_header: Host $host
                - add_header: "'Access-Control-Allow-Origin' '*'"
                - add_header: "'Access-Control-Allow-Methods' 'GET, PUT, POST, DELETE, HEAD, OPTIONS'"

# vim: ft=yaml et: