Commit Graph
5 Commits
Author SHA1 Message Date
germanandClaude Opus 4.8 3f1c5dbd7b feat(bot): сайт-адаптер единого бота флота + фикс redirect на 1nika.ru
Реализован контракт /api/bot/* из servaki-webhub-bot/SPEC.md:
- GET  /api/bot/health (публичный) -> {ok, site}
- GET  /api/bot/publications?status=&limit= -> список works
- POST /api/bot/publications {title,body,media[]} -> черновик works -> {id}
- POST /api/bot/publications/:id/publish -> published -> {id,url}
- DELETE /api/bot/publications/:id -> удаление (media cascade)
- POST /api/bot/materials (multipart file) -> media -> {id,url}

Аутентификация Authorization: Bearer <BOT_API_TOKEN> (middleware/botAuth,
сравнение постоянного времени; 503 без токена в env, 401 при несовпадении).
Маппинг: публикация<->works, материал<->media. Миграция bot_adapter.sql
разрешает media.type='file'. multer 2.x.

Фикс Яндекс-redirect и домена: nika-gallery.ru -> 1nika.ru в .env.example
(YANDEX_REDIRECT_URI, FRONTEND_URL, SITE_URL, NEXT_PUBLIC_*, SMTP_USER) и
nginx server_name. Секреты не в git (client_id/secret - на Я.Диске).

Добавлен docs/DEPLOY.md (VPS runbook: DNS, .env, SSL, миграции, бот).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 23:24:20 +03:00
germanandClaude Opus 4.8 a355188301 feat(club): frontend закрытого клуба + вход через Яндекс
Страница /club (уровни, форма заявки, статус, админ-модерация),
/club/gallery (закрытая галерея), /login (кнопка «Войти через
Яндекс» + email-вход, разбор #token). Хелперы lib/auth.ts,
lib/club.ts, компонент AdminRequests. Ссылки «Клуб»/«Войти» в Nav.
Эстетика по существующим токенам (paper/ink/accent, Cormorant/Inter).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 21:49:15 +03:00
germanandClaude Opus 4.8 8291d0f725 feat(club): backend закрытого клуба + вход через Яндекс ID
Миграция club_access.sql (access_requests, users.club_tier/yandex_id/
avatar_url, password NULLable, works.club_only). OAuth-роуты Яндекса
(/api/auth/yandex[/callback]) с CSRF-state и мягкой 503 без ключей.
Клуб: /api/club/tiers|request|my-request|gallery + админ requests/
approve/decline. Rate-limit на /api/auth сохранён.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 21:49:02 +03:00
germanandClaude Opus 4.8 ad35d4e992 feat(#3): frontend scaffold (Next.js 14 App Router, TS, Tailwind, галерея)
Deploy / deploy (push) Failing after 5s
Каркас витрины дизайнера Ники: главная (hero + сетка галереи),
страница работы (детали + место под аукцион), список аукционов,
подписка-заглушка. Клиент к backend /api с graceful-фолбэком на
демо-работы при недоступном API. Standalone-сборка + Dockerfile.
Сборка npm run build и tsc --noEmit проходят.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 19:42:13 +03:00
germanandClaude Opus 4.8 be29d02cc0 feat(#2): backend scaffold + auth (Express ESM, PG, JWT, bcrypt, rate-limit, закрытая регистрация)
Deploy / deploy (push) Failing after 4s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 19:26:42 +03:00