diff --git a/finance/entrypoint.sh b/finance/entrypoint.sh index 18df974..c860558 100755 --- a/finance/entrypoint.sh +++ b/finance/entrypoint.sh @@ -1,4 +1,11 @@ #!/bin/sh set -e alembic upgrade head -exec uvicorn app.main:app --host 0.0.0.0 --port 8000 +# --proxy-headers + --forwarded-allow-ips='*': hinter dem Reverse Proxy +# (Traefik→Apache/TLS) wertet uvicorn X-Forwarded-Proto/-Host aus, damit +# request.url das öffentliche https/Host statt des pod-internen http sieht. +# '*' ist vertretbar, weil der Pod nur an 127.0.0.1 gebunden ist und nur der +# lokale Traefik ihn erreicht (siehe docs/reverse-proxy.md). Im Direktbetrieb +# ohne Proxy sendet niemand X-Forwarded-*, also bleibt das Verhalten gleich. +exec uvicorn app.main:app --host 0.0.0.0 --port 8000 \ + --proxy-headers --forwarded-allow-ips='*' diff --git a/finance/tests/test_entrypoint.py b/finance/tests/test_entrypoint.py new file mode 100644 index 0000000..69f83f2 --- /dev/null +++ b/finance/tests/test_entrypoint.py @@ -0,0 +1,9 @@ +from pathlib import Path + +ENTRYPOINT = Path(__file__).resolve().parent.parent / "entrypoint.sh" + + +def test_entrypoint_enables_proxy_headers(): + text = ENTRYPOINT.read_text() + assert "--proxy-headers" in text + assert "--forwarded-allow-ips" in text