All checks were successful
CI Trade-In / changes (pull_request) Successful in 29s
CI / changes (pull_request) Successful in 20s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 2m16s
35 lines
1.5 KiB
Text
35 lines
1.5 KiB
Text
# Caddy-фрагмент: tradein-mvp под gendsgn.ru/trade-in/*
|
||
#
|
||
# Этот блок ВКЛЮЧАЕТСЯ в основной gendsgn.ru { ... } блок Caddy
|
||
# (см. /opt/gendesign/Caddyfile на bot-server). Размещение — ПЕРЕД
|
||
# универсальным `handle { reverse_proxy frontend:3000 }`, потому что
|
||
# Caddy матчит handle-блоки сверху вниз.
|
||
#
|
||
# DNS — отдельный record НЕ нужен; используется тот же gendsgn.ru.
|
||
# TLS уже включён в основном блоке (auto через Let's Encrypt).
|
||
#
|
||
# URL routes:
|
||
# gendsgn.ru/trade-in → tradein-frontend:3000 (Next.js basePath=/trade-in)
|
||
# gendsgn.ru/trade-in/api/v1/* → tradein-backend:8000 (strip префикса /trade-in)
|
||
|
||
handle_path /trade-in/api/* {
|
||
# handle_path вырезает префикс /trade-in перед прокси →
|
||
# FastAPI получает /api/v1/...
|
||
#
|
||
# #2233: первый рубеж против OOM на фото-аплоаде — режем тело >12MB на
|
||
# уровне Caddy (backend капит на 10MB чанково, см. upload_photo). Scoped
|
||
# ТОЛЬКО на /trade-in/api/* — не трогает фронт/остальной сайт.
|
||
request_body {
|
||
max_size 12MB
|
||
}
|
||
reverse_proxy tradein-backend:8000
|
||
}
|
||
|
||
handle /trade-in {
|
||
redir /trade-in/ permanent
|
||
}
|
||
|
||
handle /trade-in/* {
|
||
# Next.js basePath="/trade-in" — фронт сам ждёт префикса в URL
|
||
reverse_proxy tradein-frontend:3000
|
||
}
|