Commit graph

6 commits

Author SHA1 Message Date
TradeIn Deploy
ee43248b11 fix(tradein): HOSTNAME=0.0.0.0 + NEXT_PUBLIC_API_BASE_URL build-arg
502 fix: Next.js standalone server.js биндился на HOSTNAME=<container-id>
вместо 0.0.0.0 → Caddy не мог достучаться до tradein-frontend:3000.
Теперь HOSTNAME=0.0.0.0 и в Dockerfile (runner ENV), и в compose.

API routing fix: фронт собирался без NEXT_PUBLIC_API_BASE_URL, fetch шёл
на same-origin /api/* (главный gendesign-backend) вместо /trade-in/api/*.
Добавлен build-arg в Dockerfile + workflow.
2026-05-21 10:21:32 +03:00
lekss361
aeb895a9dc fix(tradein): PDF-ссылка через API_BASE_URL (basePath)
href Скачать PDF был /api/v1/... без префикса /trade-in → попадал в
main gendesign backend (404). Та же причина что #373 для apiFetch.
2026-05-21 10:15:44 +03:00
lekss361
a17a73af71 fix(tradein): префиксить API_BASE_URL через basePath
Без префикса /trade-in клиентский fetch шёл на gendsgn.ru/api/v1/...
который Caddy маршрутизировал в main gendesign backend (не tradein).
Теперь NEXT_PUBLIC_API_BASE_URL fallback на NEXT_PUBLIC_BASE_PATH —
build с BASE_PATH=/trade-in корректно префиксит запросы.
2026-05-21 01:13:46 +03:00
lekss361
5082f50d53 fix(tradein): убрать basePath redirect-loop
Под basePath=/trade-in next.config redirects() + app/page.tsx с
redirect(/trade-in) делали /trade-in/ → /trade-in/trade-in (двойной
префикс basePath) → пустая страница / 404.

- Перенёс контент app/trade-in/page.tsx → app/page.tsx (теперь корень
  Next = /trade-in/ snaружи)
- Удалил app/trade-in/ как избыточный
- Удалил redirects() блок из next.config.ts
- router.replace("/?id=...") вместо "/trade-in?id=..." — basePath
  префиксит автоматически
2026-05-21 01:05:49 +03:00
lekss361
9947cd5537 fix(tradein): commit empty frontend/public via .gitkeep
Dockerfile делает COPY --from=builder /app/public ./public — без папки билд падает 'public: not found' (gitignore прячет tradein.html, других файлов нет → git не сохранил пустую папку).
2026-05-21 00:59:13 +03:00
lekss361
02267d0306 feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in)
- FastAPI backend: PostGIS estimator + 3 scrapers (Avito/Cian/Yandex)
- Next.js 15 frontend: tradein.html mockup design, basePath=/trade-in
- WeasyPrint PDF (Брусника-style 4-page report)
- Address autocomplete с typo-tolerance + 6 EKB presets
- Изолированный docker stack gendesign-tradein (отдельная postgres БД)
- Caddy inline routes: gendsgn.ru/trade-in/* и /trade-in/api/v1/*
- Forgejo Actions: .forgejo/workflows/deploy-tradein.yml (shell-based GHCR login)
- Триггер только по paths: tradein-mvp/** (не пересекается с deploy.yml)
- Образы: ghcr.io/lekss361/gendesign-tradein-{backend,frontend}:latest

Первый запуск на сервере (вручную, один раз):
  - создать /opt/gendesign/tradein-mvp/.env.runtime (postgres pwd, contact email)
  - docker network create gendesign_shared (если нет)
  - docker compose -p gendesign-tradein up -d
  - docker compose -p gendesign exec caddy caddy reload
2026-05-21 00:25:39 +03:00