invokesmoke.dev {
    handle /.well-known/matrix/server {
        header Content-Type application/json
        header Access-Control-Allow-Origin *
        respond `{"m.server":"matrix.invokesmoke.dev:443"}`
    }
    handle /.well-known/matrix/client {
        header Content-Type application/json
        header Access-Control-Allow-Origin *
        respond `{"m.homeserver":{"base_url":"https://matrix.invokesmoke.dev"},"org.matrix.msc4143.rtc_foci":[{"type":"livekit","livekit_service_url":"https://livekit.invokesmoke.dev"}]}`
    }
    handle {
        root * /srv
        file_server
    }
}

matrix.invokesmoke.dev {
    handle /_matrix/* {
        reverse_proxy tuwunel:6167 {
            header_up Upgrade {http.request.header.Upgrade}
            header_up Connection {http.request.header.Connection}
        }
    }
    handle /_synapse/* {
        reverse_proxy tuwunel:6167 {
            header_up Upgrade {http.request.header.Upgrade}
            header_up Connection {http.request.header.Connection}
        }
    }
    respond 404
}

matrix.invokesmoke.dev:8448 {
    reverse_proxy tuwunel:6167
}

livekit.invokesmoke.dev {
    handle /sfu/* {
        reverse_proxy lk-jwt-service:8080
    }
    handle /livekit/jwt* {
        reverse_proxy lk-jwt-service:8080
    }
    handle {
        reverse_proxy host.docker.internal:7880 {
            header_up Upgrade {http.request.header.Upgrade}
            header_up Connection {http.request.header.Connection}
        }
    }
}

mealie.invokesmoke.dev {
    reverse_proxy mealie:9000
}

dockge.invokesmoke.dev {
    reverse_proxy dockge:5001
}

code.invokesmoke.dev {
    reverse_proxy code-server:8443
}

pihole.invokesmoke.dev {
    reverse_proxy pihole:80
}

gitea.invokesmoke.dev {
    reverse_proxy gitea:3000
}

wetty.invokesmoke.dev {
    reverse_proxy wetty:3000 {
        header_up Upgrade {http.request.header.Upgrade}
        header_up Connection {http.request.header.Connection}
    }
}

vpn.invokesmoke.dev {
    reverse_proxy wireguard:51821
}

