fix(tradein): Caddy strip только /trade-in для API #374

Merged
lekss361 merged 1 commit from fix/tradein-caddy-api-strip into main 2026-05-20 22:17:54 +00:00

View file

@ -28,14 +28,16 @@ gendsgn.ru {
# Trade-In MVP subproject (tradein-mvp/) — gendesign-tradein docker stack, # Trade-In MVP subproject (tradein-mvp/) — gendesign-tradein docker stack,
# подключен через gendesign_shared network. Routes ДО универсального handle # подключен через gendesign_shared network. Routes ДО универсального handle
# потому что Caddy матчит handle-блоки сверху вниз. # потому что Caddy матчит handle-блоки сверху вниз.
handle_path /trade-in/api/* { handle /trade-in/api/* {
# handle_path вырезает префикс /trade-in перед прокси → # `handle_path /trade-in/api/*` стрипал бы целиком /trade-in/api;
# FastAPI получает /api/v1/... # FastAPI router замаунтен на /api/v1/trade-in/* — нужен strip только
# префикса basePath /trade-in (Next.js basePath leak).
uri strip_prefix /trade-in
reverse_proxy tradein-backend:8000 reverse_proxy tradein-backend:8000
} }
# Matcher `path /trade-in /trade-in/*` ловит И /trade-in (без слеша), # Matcher `path /trade-in /trade-in/*` ловит И /trade-in (без слеша),
# И /trade-in/ + /trade-in/анisching. Без обоих случаев `handle /trade-in/*` # И /trade-in/ + /trade-in/anything. Без обоих случаев `handle /trade-in/*`
# пропускал /trade-in без слеша → попадал в общий frontend → пустой ответ. # пропускал /trade-in без слеша → попадал в общий frontend → пустой ответ.
@tradein path /trade-in /trade-in/* @tradein path /trade-in /trade-in/*
handle @tradein { handle @tradein {