26 lines
733 B
Python
26 lines
733 B
Python
from __future__ import annotations
|
|
|
|
from fastapi import Request
|
|
|
|
from config import get_settings
|
|
|
|
|
|
def public_base_url(request: Request) -> str:
|
|
"""URL сайта: домен из Dokploy (Host), без прописывания в .env."""
|
|
settings = get_settings()
|
|
if settings.site_public_url.strip():
|
|
return settings.site_public_url.strip().rstrip("/")
|
|
|
|
proto = (
|
|
request.headers.get("x-forwarded-proto")
|
|
or request.url.scheme
|
|
or "https"
|
|
).split(",")[0].strip()
|
|
host = (
|
|
request.headers.get("x-forwarded-host")
|
|
or request.headers.get("host")
|
|
or request.url.netloc
|
|
)
|
|
host = host.split(",")[0].strip()
|
|
return f"{proto}://{host}".rstrip("/")
|