(webserver) {
    root * /home/user/public_html
    file_server
    encode zstd gzip

    @skylink {
	    path_regexp skylink ^/([a-zA-Z0-9-_]{46}(/.*)?)$
    }

    @skylink_file {
	    path_regexp skylink_file ^/file/([a-zA-Z0-9-_]{46}(/.*)?)$
    }

    @options {
	    method OPTIONS
    }

    @blacklist {
        method GET
        path /blacklist
    }

    @portals {
        method GET
        path /portals
    }

    # OPTIONS headers to allow CORS https://enable-cors.org
    handle @options {
        header {
            Access-Control-Allow-Origin *
            Access-Control-Allow-Methods GET,POST,OPTIONS
            Access-Control-Allow-Headers DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range
            Access-Control-Max-Age 1728000
        }
        respond 204
    }

    reverse_proxy /health-check health-check:3100

    reverse_proxy @blacklist nginx:80 {
        header_up User-Agent Sia-Agent
        header_down Access-Control-Allow-Origin *
    }
    reverse_proxy @portals nginx:80 {
        header_up User-Agent Sia-Agent
        header_down Access-Control-Allow-Origin *
    }
    reverse_proxy /stats nginx:80 {
        header_up User-Agent Sia-Agent
        header_down Access-Control-Allow-Origin *
    }
    reverse_proxy /statsdown nginx:80 {
        header_up User-Agent Sia-Agent
        header_down Access-Control-Allow-Origin *
    }
    reverse_proxy @skylink nginx:80 {
        header_up User-Agent Sia-Agent
        header_up Access-Control-Expose-Headers skynet-file-metadata
        header_down Access-Control-Allow-Origin *
    }
    reverse_proxy @skylink_file nginx:80 {
        header_up User-Agent Sia-Agent
        header_up Access-Control-Expose-Headers skynet-file-metadata
        header_down Access-Control-Allow-Origin *
    }
    reverse_proxy /skynet/skyfile* nginx:80 {
        header_up User-Agent Sia-Agent
        header_up Authorization "Basic {env.SIA_API_AUTHORIZATION}"
        header_down Access-Control-Allow-Origin *
    }
}

(custom.domain) {
    {$DOMAIN_NAME} {
        tls {$EMAIL_ADDRESS}
        import webserver
    }
}

(siasky.net) {
    siasky.net, *.siasky.net {
        tls {
            dns cloudflare {env.CLOUDFLARE_AUTH_TOKEN}
        }
        import webserver
    }
}

(localhost) {
    :443 {
        tls internal {
            on_demand
        }
        import webserver
    }
}

import localhost
import custom.domain
# import siasky.net