# deploy/ru-webcluster/Caddyfile — два посредника для РФ на ru.prizrak.im (81.163.253.86), по образцу bank.ru.prizrak.im.
# Добавить блоки в /etc/caddy/Caddyfile, затем: caddy validate --config /etc/caddy/Caddyfile && systemctl reload caddy
# DNS (Fox): A ru.webcluster.org → 81.163.253.86, A oauth.ru.prizrak.im → 81.163.253.86.
#
# 1) ru.webcluster.org → биллинг WHMCS webcluster.org (81.163.253.128). Весь сайт целиком: страницы оплаты
#    /prizrak-id/*, вход через Призрак, клиентская зона. Биллинг по X-Forwarded-Host понимает, что человек
#    пришёл через посредник, и строит ссылки возврата на ru.webcluster.org (prizrak-id/config.php: trusted_hosts,
#    proxy_ips = 81.163.253.86).
ru.webcluster.org {
    encode zstd gzip
    reverse_proxy https://81.163.253.128 {
        header_up Host webcluster.org
        header_up X-Forwarded-Host {host}
        header_up X-Forwarded-Proto https
        header_up X-Real-IP {remote_host}
        transport http {
            tls_server_name webcluster.org
        }
    }
    header {
        Strict-Transport-Security "max-age=31536000;"
        X-Content-Type-Options "nosniff"
    }
}

# 2) oauth.ru.prizrak.im → страница подтверждения входа провайдера Призрака (prizrak.im, 51.38.221.153 напрямую,
#    минуя Cloudflare). Только /oauth/* и discovery; всё остальное — 404. Биллинг открывает её в браузере человека
#    из РФ (prizrak-id/config.php: oauth.authorize_hosts), а токен и userinfo спрашивает у prizrak.im сам.
oauth.ru.prizrak.im {
    encode zstd gzip
    @oauth path /oauth/* /.well-known/openid-configuration
    handle @oauth {
        reverse_proxy https://51.38.221.153 {
            header_up Host prizrak.im
            header_up X-Forwarded-Host {host}
            header_up X-Forwarded-Proto https
            transport http {
                tls_server_name prizrak.im
            }
        }
    }
    handle {
        respond "Not found" 404
    }
    header {
        Strict-Transport-Security "max-age=31536000;"
        X-Content-Type-Options "nosniff"
    }
}
