docs: Plan A10 praezisiert (Domain-Policy + GF_SUBPATH-Platzierung vor API-Container)

This commit is contained in:
2026-07-21 07:21:57 +02:00
parent 2610b71b06
commit fa45527faf

View File

@@ -25,10 +25,14 @@ systemd `--user`), Grafana OSS 12.1.0, Bash-Deployskript.
- **Lokalbetrieb bleibt bit-identisch**, solange `FB_GRAFANA_PUBLIC_URL` leer
ist. Jede Änderung MUSS diesen Fall als No-Op behandeln.
- **Kein Hostname/keine Domain ins Repo oder Image.** Proxy-Werte nur via
`.env` (`FB_GRAFANA_PUBLIC_URL`, `FB_SESSION_COOKIE_SECURE`). In Tests/Doku
nur Beispiel-Domains (`fb.example.de`), niemals die echte Domain als
Default/Fixwert im Code.
- **Kein Hostname/keine Domain als Funktionswert ins Repo oder Image.**
Proxy-Werte nur via `.env` (`FB_GRAFANA_PUBLIC_URL`,
`FB_SESSION_COOKIE_SECURE`). **Quellcode inkl. Kommentaren und Tests bleibt
domain-neutral** — nur die Beispiel-Domain `fb.example.de`, niemals die echte
Domain. **Ausnahme: die Deployment-Doku `docs/reverse-proxy.md`** beschreibt
genau diese Installation und darf die echte Domain
`fb.wolfundlaemmlein.de` nennen (öffentlicher DNS-Name, keine Kontodaten).
(Nutzerentscheidung 2026-07-21: Code neutral, Doku echt.)
- **`.env`-Werte single-quoted** (`KEY='wert'`) — `create_pod_finance.sh`
sourced per `set -a; . "$ENV_FILE"`.
- **Zwei getrennte Grafana-URLs:** `FB_GRAFANA_URL` (intern, Server→Grafana,
@@ -302,7 +306,7 @@ einfügen:
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.wolfundlaemmlein.de/grafana/'), wird sie ohne abschließenden
'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
@@ -448,14 +452,17 @@ git commit -m "feat: uvicorn Proxy-Headers fuer Reverse-Proxy-Betrieb"
Task 7.
- [ ] **Step 1: Sub-Pfad-Berechnung einfügen** — in `create_pod_finance.sh`
VOR dem Grafana-`podman run` (also vor der Zeile
`podman run -d --name "$GRAFANA_CTR_NAME" ...`) diesen Block einfügen:
VOR dem **API**-`podman run` (`podman run -d --name "$API_CTR_NAME" ...`)
diesen Block einfügen. WICHTIG: nicht erst vor dem Grafana-Container — der
API-Container läuft im Skript zuerst und verwendet bereits `${GF_SUBPATH}`
(siehe Step 3), also muss der Block davor stehen, sonst wäre `FB_GRAFANA_URL`
im Sub-Pfad-Modus fälschlich präfixlos:
```bash
# --- Reverse-Proxy-Betrieb (optional) ----------------------------------------
# FB_GRAFANA_PUBLIC_URL wird nur gesetzt, wenn das Tool hinter einem Reverse
# Proxy unter einem Sub-Pfad laufen soll (z.B.
# 'https://fb.wolfundlaemmlein.de/grafana/'). Ist sie leer (Default,
# 'https://fb.example.de/grafana/'). Ist sie leer (Default,
# Direktbetrieb auf 127.0.0.1), bleibt alles wie bisher: Grafana serviert an
# der Wurzel, Health-Check und Passwort-Sync sprechen /api/... ohne Praefix.
GF_SUBPATH=''