Skip to content

Latest commit

 

History

History
154 lines (110 loc) · 10 KB

File metadata and controls

154 lines (110 loc) · 10 KB

InnerHealth

Open-source multi-brand e-commerce platform and starter for small commerce teams. The repository ships with two example storefront brands — Inner Health and Sprint Power — on one shared Next.js/Prisma/PostgreSQL codebase.

  • Один бэкенд, две изолированные витрины (домены Inner и Sprint), одна админка с переключателем бренда
  • Общие модули каталога, заказов и интеграций; разведение товаров, заказов и brand-scoped настроек
  • Объединённый ЛК по email (сеть магазинов); вход/регистрация на общих URL
  • Целевая модель, интеграции и чеклист расхождений с кодом: docs/two-storefronts-architecture.md

Open Source Purpose

InnerHealth is designed as a reusable multi-brand e-commerce starter for small commerce teams. It provides brand-scoped storefronts, shared customer accounts, catalog, orders, payments, delivery integrations, admin settings, 2FA, bot automation, and migration tooling in one Next.js/Prisma/PostgreSQL codebase.


Стек

  • Frontend / Backend: Next.js 16 (App Router), React 19, TypeScript
  • Стили: Tailwind CSS 4, Radix UI, Shadcn-подобные компоненты
  • БД: PostgreSQL, Prisma 7 (в т.ч. @prisma/adapter-pg)
  • Аутентификация: NextAuth v4 (Credentials, JWT), 2FA (TOTP и email-коды); переход на v5 — в roadmap (см. docs/plans/2026-02-24-2fa.md)
  • Редактор контента: TipTap
  • Деплой: Docker, Nginx; опционально Let's Encrypt

Структура репозитория

innerhealth/
├── README.md                 # этот файл
├── docs/                     # документация проекта (деплой, окружение, ТЗ, миграции)
├── nextjs-project/           # приложение Next.js
│   ├── prisma/               # схема и миграции
│   ├── scripts/              # утилиты: сиды, импорт, Telegram-бот и т.д.
│   ├── src/
│   │   ├── app/              # маршруты (site, admin, login, api)
│   │   ├── components/
│   │   └── lib/
│   └── docs/                 # доп. документация (пароль, SMTP)
└── deploy/                   # конфиги деплоя (Nginx, docker-compose и т.д.)

Быстрый старт

Требования

  • Node.js 22 (LTS)
  • PostgreSQL
  • (Опционально) Docker и Docker Compose — для деплоя

Установка и запуск

cd nextjs-project
cp .env.example .env   # или скопировать из docs
# Заполнить .env (см. раздел «Документация» → переменные окружения)
npm install
npx prisma generate
npx prisma migrate deploy   # или db:push для разработки
npm run dev

Приложение: http://localhost:3000. Админка: /admin (или путь из ADMIN_SECRET_PATH).

Витрина бренда определяется по host, x-brand и brand-cookie. В админке активный бренд выбирается встроенным switcher и влияет на brand-scoped данные и настройки.


Основные скрипты (nextjs-project)

Команда Описание
npm run dev Режим разработки
npm run build Сборка для production
npm run start Запуск production-сервера
npm run db:migrate Применить миграции Prisma к БД
npm run db:push Синхронизировать схему с БД без миграций
npm run add-admin Интерактивное добавление пользователя (email, пароль, роль)
npm run create-admin Создание первого админа
npm run seed:categories Сид категорий
npm run import-tilda-leads Импорт лидов из Tilda
npm run telegram-bot Запуск Telegram-бота (уведомления, промокоды)
npm run tilda:download-images Скачивание изображений с Tilda CDN в локальный public

Полный список — в nextjs-project/package.json.


Документация

Ниже — ссылки на актуальные файлы в репозитории.

Окружение и конфигурация

Деплой и инфраструктура

Функциональность и ТЗ

Планы и roadmap

Open source

  • CONTRIBUTING.md — как сообщать об issues и открывать PR
  • SECURITY.md — ответственное раскрытие уязвимостей
  • ROADMAP.md — краткая дорожная карта проекта

Дополнительно


Основные маршруты приложения

  • Публичная часть: /, /catalog, /catalog/[categorySlug], /product/[slug], /product/id/[id], /cart, /news, /news/[slug], /o-nas, /contacts, /sotrudnichestvo, /privacy, /oferta и др.
  • ЛК пользователя: /account (профиль), /account/orders, /account/orders/[id], /account/addresses, /account/verify-email; для партнёров — /account/partner (промокоды, статистика, доход).
  • Вход: /login, /login/2fa, /login/forgot-password, /login/reset-password, /login/change-password, /login/set-initial-password
  • Админка: /admin (редирект на каталог), /admin/catalog, /admin/catalog/categories, /admin/products, /admin/products/new, /admin/products/[id]/edit, /admin/products/import, /admin/news, /admin/promo-codes, /admin/orders, /admin/orders-statistics, /admin/users, /admin/partners, /admin/partners/[userId], /admin/settings, /admin/profile, /admin/tilda-leads, /admin/partnership, /admin/faq, /admin/quick-orders, /admin/redirects, /admin/site-popup, /admin/gift-promotions, /admin/leads-export, /admin/content и др. (полный список — вывод next build или docs/plans/PROJECT-INDEX.md)

API: префикс /api (auth, admin, cart, orders, telegram, partners и т.д.).


Лицензия

InnerHealth is open-source software licensed under the Apache License 2.0. See LICENSE for details.