Перейти до вмісту

Abitly Web (frontend)

ПолеЗначення
ПродуктAbitly.org
ТипFrontend (Next.js SSR)
Статус🟢 prod
Власник@Vladbandurin

Веб-інтерфейс Abitly.org — пошук ЗВО/спеціальностей, контент зі Strapi, особистий кабінет, інтеграція з Abitly API та Studsearch backend (cross-product поіск).

Репозиторій та рантайм

Section titled “Репозиторій та рантайм”
Репоabitly-org/abitly-frontend-v2 (main)
СтекNext.js · React · Radix UI · TanStack Query/Table · React Hook Form + Zod · nivo (charts) · @react-pdf-viewer
Хостинг — prodAWS ECS Fargate · кластер abitly-prod-frontend · 1 task · контейнер frontend:3000 · ALB abitly-prod-shared
Хостинг — devAWS Amplify abitly-dev-frontend (d3sx9l6zmir3cj, WEB_COMPUTE = Next.js SSR)
Container imageECR 952854879948.dkr.ecr.eu-central-1.amazonaws.com/abitly/frontend:<commit-sha>
Деплой prodCodePipeline abitly-prod-frontend (source — GitHub через CodeStarSourceConnection, тригер зовнішній: DetectChanges: false). Деталі → deploy-pipeline.
Деплой devAmplify auto-deploy на main. SSM-зміни синхронізує Lambda abitly-dev-amplify-sync.
Публічні URLhttps://abitly.org (prod). Dev: https://main.d3sx9l6zmir3cj.amplifyapp.com + TODO: кастомний домен.
DNS/CDNCloudflare → domains-dns

SSM Parameter Store за префіксом /abitly/{env}/frontend/. Список — у environments.

ЗміннаПризначення
NEXT_PUBLIC_API_URLbase URL Abitly API
NEXT_PUBLIC_STRAPI_API_URLbase URL Strapi
NEXT_PUBLIC_STUDSEARCH_API_URLbase URL Studsearch backend
NEXT_PUBLIC_ANALYTICS_COLLECTOR_URLendpoint collector
NEXT_PUBLIC_TELEGRAM_BOT_URLdeep link до бота
NEXT_PUBLIC_URLпублічний URL фронту
NEXT_PUBLIC_DISABLE_PROMOTIONSfeature flag
DEV_HTTP_USER · DEV_HTTP_PASSbasic auth для dev
DISABLE_ESLINT_PLUGIN · ESLINT_NO_DEV_ERRORSbuild config
Terminal window
npm run dev # локальний dev
npm run build # production build
npm run typecheck
npm run lint
npm run test # unit
npm run test:e2e # E2E (Playwright)
npm run analyze # bundle analyzer
npm run schemas:gen # генерація JSON-schemas
npm run gtm:sync # синхронізація GTM-контейнера
  • Prod (ECS): docker build → ECR push → ECS service update нової task-def revision. Відкат — попередня revision (aws ecs update-service --task-definition <prev-arn>).
  • Dev (Amplify): автодеплой; відкат — «Redeploy this version» у Amplify console на попередньому successful build-у.

Деталі → deploy-pipeline, deploy-rollback.

  • ECS логи → CloudWatch Logs /ecs/abitly-prod-frontend (TODO: підтвердити).
  • Метрики Next.js /api/metrics (Prometheus) → Grafana на observability stack.
  • Triple-channel error logging (через /api/logger/route.ts + lib lokiLogger):
    • Sentry prod-only (org abitly на de.sentry.io, build через SENTRY_AUTH_TOKEN для source maps).
    • Telegram через TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID (15/min rate limit + 30s dedupe).
    • Loki напряму на DO Droplet через lokiLogger.