feat: Grafana-Links aus FB_GRAFANA_PUBLIC_URL (Sub-Pfad-tauglich)
This commit is contained in:
@@ -7,6 +7,7 @@ from sqlalchemy import func, select
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.auth import COOKIE, session_valid
|
||||
from app.config import get_settings
|
||||
from app.db import get_session
|
||||
from app.engine.loans import add_months
|
||||
from app.engine.recurrence import occurrences
|
||||
@@ -30,6 +31,22 @@ PAGE_SIZE = 50
|
||||
|
||||
templates = Jinja2Templates(directory="app/templates")
|
||||
templates.env.globals["app_version"] = get_version()
|
||||
|
||||
|
||||
def grafana_public_base(request: Request) -> str:
|
||||
"""Öffentliche Grafana-Basis-URL für Browser-Links/iframes. Ist
|
||||
FB_GRAFANA_PUBLIC_URL gesetzt (Reverse-Proxy-Betrieb, z.B.
|
||||
'https://fb.example.de/grafana/'), wird sie ohne abschließenden
|
||||
Slash zurückgegeben; sonst der lokale Fallback http://<host>:8097
|
||||
(Direktbetrieb ohne Proxy). Templates hängen bei Bedarf '/d/...' an."""
|
||||
public = get_settings().grafana_public_url
|
||||
if public:
|
||||
return public.rstrip("/")
|
||||
host = request.url.hostname or "127.0.0.1"
|
||||
return f"http://{host}:8097"
|
||||
|
||||
|
||||
templates.env.globals["grafana_public_base"] = grafana_public_base
|
||||
templates.env.filters["eur"] = eur
|
||||
templates.env.filters["de_label"] = de_label
|
||||
router = APIRouter()
|
||||
|
||||
Reference in New Issue
Block a user