{
    admin off
    metrics {
        per_host
    }
#    log {
#        output file /var/log/caddy/access.log
#        format json
#        level DEBUG
#    }
}

:2019 {
    metrics
}

############## grafana ##############
{$GRAFANA_DOMAIN} {
    request_body {
        max_size 2048MB
    }

    reverse_proxy http://grafana:3000
}

############## gitea ##############
{$GITEA_DOMAIN} {
    request_body {
        max_size 512MB
    }

    reverse_proxy http://gitea:3000
}

############## slash ##############
{$SLASH_DOMAIN} {
    request_body {
        max_size 10MB
    }

    reverse_proxy http://slash:5231
}

############## memos ##############
{$MEMOS_DOMAIN} {
    request_body {
        max_size 1024MB
    }

    reverse_proxy http://memos:5230
}

############## wg-easy ##############
{$WG_EASY_DOMAIN} {
    request_body {
        max_size 10MB
    }

    reverse_proxy http://wg-easy:51821
}

############## vaultwarden ##############
{$VAULTWARDEN_DOMAIN} {
    request_body {
        max_size 128MB
    }

    reverse_proxy http://vaultwarden
}

############## sftpgo ##############
{$SFTPGO_DOMAIN} {
    request_body {
        max_size 8120MB
    }

    reverse_proxy http://sftpgo:8080
}

############## glance ##############
{$GLANCE_DOMAIN} {
    request_body {
        max_size 64MB
    }

    reverse_proxy http://glance:8080
}

############## ghost ##############
{$GHOST_DOMAIN} {
    request_body {
        max_size 124MB
    }

    reverse_proxy http://ghost:2368 {
        header_up X-Forwarded-Proto {http.request.scheme}
        header_up Host {http.request.host}
    }
}

############## immich ##############
{$IMMICH_DOMAIN} {
    request_body {
        max_size 1024MB
    }

    reverse_proxy http://immich_server:2283 {
        header_up X-Forwarded-Proto {http.request.scheme}
        header_up Host {http.request.host}
    }
}

############## uptime-kuma ##############
{$UPTIME_KUMA_DOMAIN} {
    request_body {
        max_size 1024MB
    }

    reverse_proxy http://uptime_kuma:3001 {
        header_up X-Forwarded-Proto {http.request.scheme}
        header_up Host {http.request.host}
    }
}

############## stalwart ##############
{$STALWART_DOMAIN} {
    request_body {
        max_size 4048MB
    }

    reverse_proxy http://stalwart:8080
}

############## textarea ##############
{$TEXTAREA_DOMAIN} {
    root * /volume/textarea
    file_server {
        browse off
    }
}

############## gopkg-proxy ##############
{$GOPKG_PROXY_DOMAIN} {
    request_body {
        max_size 2MB
    }

    reverse_proxy http://gopkg_proxy:8421
}

############## ech0 ##############
{$ECH0_DOMAIN} {
    header -Server

    request_body {
        max_size 5MB
    }

    reverse_proxy http://ech0:8421 {
        # wheader_up -X-Forwarded-For
        header_up -X-Forwarded-Host
        header_up -X-Forwarded-Proto
        header_up -Via

        transport http {
            compression off
        }
    }
}

import Caddyfile.private
