summaryrefslogtreecommitdiff
path: root/docker/docker-compose.override.traefik.yml
blob: 9525078dda648de194779cfbd21382f065e44d0a (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
# Conduit - Traefik Reverse Proxy Labels
version: '3'

services:
    homeserver:
        labels:
            - "traefik.enable=true"
            - "traefik.docker.network=proxy"  # Change this to the name of your Traefik docker proxy network

            - "traefik.http.routers.to-conduit.rule=Host(`<SUBDOMAIN>.<DOMAIN>`)"  # Change to the address on which Conduit is hosted
            - "traefik.http.routers.to-conduit.tls=true"
            - "traefik.http.routers.to-conduit.tls.certresolver=letsencrypt"
            - "traefik.http.routers.to-conduit.middlewares=cors-headers@docker"

            - "traefik.http.middlewares.cors-headers.headers.accessControlAllowOriginList=*"
            - "traefik.http.middlewares.cors-headers.headers.accessControlAllowHeaders=Origin, X-Requested-With, Content-Type, Accept, Authorization"
            - "traefik.http.middlewares.cors-headers.headers.accessControlAllowMethods=GET, POST, PUT, DELETE, OPTIONS"

    # We need some way to server the client and server .well-known json. The simplest way is to use a nginx container
    # to serve those two as static files. If you want to use a different way, delete or comment the below service, here
    # and in the docker-compose file.
    well-known:
        labels:
            - "traefik.enable=true"
            - "traefik.docker.network=proxy"

            - "traefik.http.routers.to-matrix-wellknown.rule=Host(`<SUBDOMAIN>.<DOMAIN>`) && PathPrefix(`/.well-known/matrix`)"
            - "traefik.http.routers.to-matrix-wellknown.tls=true"
            - "traefik.http.routers.to-matrix-wellknown.tls.certresolver=letsencrypt"
            - "traefik.http.routers.to-matrix-wellknown.middlewares=cors-headers@docker"

            - "traefik.http.middlewares.cors-headers.headers.accessControlAllowOriginList=*"
            - "traefik.http.middlewares.cors-headers.headers.accessControlAllowHeaders=Origin, X-Requested-With, Content-Type, Accept, Authorization"
            - "traefik.http.middlewares.cors-headers.headers.accessControlAllowMethods=GET, POST, PUT, DELETE, OPTIONS"


    ### Uncomment this if you uncommented Element-Web App in the docker-compose.yml
    # element-web:
    #     labels:
    #         - "traefik.enable=true"
    #         - "traefik.docker.network=proxy"  # Change this to the name of your Traefik docker proxy network

    #         - "traefik.http.routers.to-element-web.rule=Host(`<SUBDOMAIN>.<DOMAIN>`)"  # Change to the address on which Element-Web is hosted
    #         - "traefik.http.routers.to-element-web.tls=true"
    #         - "traefik.http.routers.to-element-web.tls.certresolver=letsencrypt"