Skip to content

Repository files navigation

Telegram-бот магазина цифровых товаров на TypeScript + grammY + Prisma + SQLite.

Для очень подробной пошаговой инструкции (Windows-first, для новичка): INSTRUCTION.txt

Функционал

Пользователь

  1. Онбординг /start: проверка подписки на канал, принятие правил, вход в меню.
  2. Покупка товара: категории, карточка товара, выбор количества, подтверждение покупки.
  3. Выдача лота после покупки.
  4. Профиль: баланс, пополнение, промокоды, история покупок.
  5. Пополнение:
    • ручное СБП (чек отправляется на модерацию),
    • CryptoBot (если задан CRYPTO_PAY_TOKEN).

Админ

  1. Управление товарами: создание, редактирование, удаление.
  2. Управление лотами: загрузка и редактирование.
  3. Управление промокодами.
  4. Обработка заявок на ручное пополнение.
  5. Ручная выдача баланса и админ-функции.
  6. Поиск заказа по номеру и базовая статистика.

Требования

  1. Node.js 24+
  2. npm 11+
  3. Интернет-доступ для установки зависимостей

Переменные окружения (.env)

Обязательные:

  1. BOT_TOKEN - токен бота от BotFather
  2. ADMIN_TELEGRAM_ID - Telegram ID root-админа
  3. SBP_REQUISITES - реквизиты для ручного пополнения

Рекомендуемые:

  1. NODE_ENV=production для боевого запуска
  2. DISABLE_SUBSCRIPTION_CHECK=false для реальной проверки подписки
  3. REQUIRED_CHANNEL=@your_channel

Опциональные:

  1. CRYPTO_PAY_TOKEN - включает оплату через CryptoBot
  2. CRYPTO_PAY_API_URL - URL API CryptoBot

Шаблон находится в .env.example.

Быстрый запуск (проект уже скачан)

Windows

  1. Откройте PowerShell от имени администратора.
  2. Перейдите в папку проекта.
  3. Запустите:
powershell -ExecutionPolicy Bypass -File scripts/bootstrap-windows.ps1
  1. Заполните .env.
  2. Запустите:
npm run build
npm start

Linux сервер (Ubuntu/Debian)

  1. Перейдите в папку проекта.
  2. Запустите:
bash scripts/bootstrap-server.sh
  1. Заполните .env.
  2. Запустите:
npm run build
npm start

Для автозапуска через systemd:

bash scripts/bootstrap-server.sh --skip-system-install --with-service

Основные команды

npm run bootstrap:windows
npm run bootstrap:server
npm run env:sync
npm run prisma:generate
npm run prisma:push
npm run dev
npm run build
npm start

Проверки качества

npm run typecheck
npm run lint
npm run build

Важно

  1. Не публикуйте .env и токены.
  2. После изменения .env перезапускайте бота.
  3. Для проверки подписки бот должен быть админом в REQUIRED_CHANNEL.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages