Крипто-медиа на Next.js (App Router) + TypeScript, PostgreSQL, Prisma, Auth.js (credentials).
| URL | Назначение |
|---|---|
/kursy-kriptovalut |
Курсы (CoinGecko), таблица, FAQ (JSON-LD) |
/reitingi и /reitingi/[slug] |
Рейтинги: биржи, кошельки, обменники, staking |
/konverter |
Калькулятор пересчёта между активами |
/sravnenie |
Каркас сравнительных таблиц платформ |
/novosti |
Хаб категорий из БД + перелинковка |
/antiskam-audit |
Лид-форма антискам-аудита |
/registratsiya |
Рассылка + интерес к аккаунту (лиды) |
/otzyvy |
Хаб отзывов, FAQ, ссылки на рейтинги |
Логотип: public/brand/logo.png (фирменный красный + белый log).
Макет Figma (референс визуала): Untitled — node 1-159.
- Публичная лента, страница новости, категории и теги.
- Админка: статьи (черновик → ревью → опубликовано / архив), модерация ingestion и ревью статей.
- RSS-ingestion с дедупликацией по fingerprint (SHA-256 нормализованного URL) и очередью модерации.
- AI-черновик текста: при
OPENAI_API_KEY— запрос к OpenAI, иначе безопасный stub без внешних вызовов. - SEO:
metadata, JSON-LDNewsArticle,sitemap.xml,robots.txt, RSSfeed.xml.
-
Скопируйте окружение:
cp .env.example .env
-
Задайте
AUTH_SECRET(напримерopenssl rand -base64 32). -
Поднимите Postgres (локально или Docker):
docker compose up -d
-
Миграции и сид:
npm install npx prisma migrate deploy npm run db:seed
Лиды с посадочных пишутся в таблицу
MarketingLead(миграция20250414140000_marketing_lead). Просмотр:npm run db:studio. -
Редактор по умолчанию (из сида):
- Email:
editor@altcoinlog.local - Пароль:
changeme(илиSEED_ADMIN_PASSWORDиз.envперед сидом)
- Email:
-
Запуск:
npm run dev
Откройте http://localhost:3000 и админку http://localhost:3000/admin.
- Кнопка «Запустить ingestion» в
/admin. - Либо
POST /api/ingestion/runс сессией редактора. - Либо с заголовком
x-ingestion-secret: <INGESTION_CRON_SECRET>(если переменная задана в.env).
| Команда | Описание |
|---|---|
npm run dev |
Разработка |
npm run build |
Сборка (--webpack; см. примечание ниже) |
На части окружений бинарь @next/swc-darwin-arm64 может оказаться повреждённым. Помогает переустановка Next:
rm -rf node_modules/@next node_modules/next && npm installСкрипт build уже использует next build --webpack для совместимости.
| npm run lint | ESLint |
| npm run db:migrate | Prisma migrate dev |
| npm run db:seed | Сид данных |
| npm run db:studio| Prisma Studio |
src/app/(public)/— публичный сайт.src/app/admin/— админка.src/app/api/— API (auth, ingestion).src/server/ingestion/— пайплайн RSS.src/server/moderation/— promote / reject / publish.prisma/— схема и миграции.
Подробный чеклист релиза: docs/RELEASE_CHECKLIST.md.