From 0e5d7743b3408e4687eb7e1cd2f222b7a3b70b3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Rolf?= Date: Sun, 1 Nov 2026 16:39:23 +0100 Subject: [PATCH] fix(template): Caddyfile leitet an den Prod-Dienst app weiter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Caddyfile.jinja schickte /api, /admin und /oidc an backend:8000, der Django-Dienst in docker-compose.prod.yml heißt aber app. In Produktion waren API, Login und Admin damit nicht erreichbar. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 14 ++++++++++++++ template/project/Caddyfile.jinja | 8 ++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9e0ab4..1ee6cbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,20 @@ Echo-Wrapper um den Editor (abstimmbar: `RichTextInput` in ### Template +**Caddyfile leitet an den Dienst `app` weiter:** `Caddyfile.jinja` schickte +`/api/*`, `/admin/*` und `/oidc/*` an `backend:8000`. In +`docker-compose.prod.yml` heißt der Django-Dienst aber `app`, einen Dienst +`backend` gibt es dort nicht. Caddy konnte den Upstream deshalb nicht +auflösen: API, Login und Django-Admin waren in Produktion nicht erreichbar, +nur die SPA wurde ausgeliefert. Das Template verwendet jetzt `app:8000`. + +Migration (bestehende Tools): Das `Caddyfile` gehört dem Tool +(`_skip_if_exists`), `copier update` ändert es also nicht. Im eigenen +`Caddyfile` jedes `reverse_proxy backend:8000` durch `reverse_proxy app:8000` +ersetzen, sofern der Prod-Dienst `app` heißt. Bereits umgestellt: +kalkulierbar, ansehbar. Nicht betroffen: ausleihbar (älteres Gerüst, dessen +Prod-Dienst heißt weiterhin `backend`). + **App-spezifische Cookie-Namen für Session und CSRF** (#22): Browser trennen Cookies pro Host, nicht pro Port. Tools, die parallel auf demselben Host laufen (in der Entwicklung mehrere „-bar“-Tools auf `localhost`), überschrieben sich diff --git a/template/project/Caddyfile.jinja b/template/project/Caddyfile.jinja index 5e587ae..1ded413 100644 --- a/template/project/Caddyfile.jinja +++ b/template/project/Caddyfile.jinja @@ -16,16 +16,16 @@ # API, Django admin and OIDC endpoints → Django (uvicorn). handle /api/* { - reverse_proxy backend:8000 + reverse_proxy app:8000 } handle /admin/* { - reverse_proxy backend:8000 + reverse_proxy app:8000 } handle /oidc/* { - reverse_proxy backend:8000 + reverse_proxy app:8000 } {% if use_lti %} handle /lti/* { - reverse_proxy backend:8000 + reverse_proxy app:8000 } {% endif %} # Uploaded media and collected static files → served directly from volumes.