Telegram-бот магазина цифровых товаров на TypeScript + grammY + Prisma + SQLite.
Для очень подробной пошаговой инструкции (Windows-first, для новичка):
INSTRUCTION.txt
- Онбординг
/start: проверка подписки на канал, принятие правил, вход в меню. - Покупка товара: категории, карточка товара, выбор количества, подтверждение покупки.
- Выдача лота после покупки.
- Профиль: баланс, пополнение, промокоды, история покупок.
- Пополнение:
- ручное СБП (чек отправляется на модерацию),
- CryptoBot (если задан
CRYPTO_PAY_TOKEN).
- Управление товарами: создание, редактирование, удаление.
- Управление лотами: загрузка и редактирование.
- Управление промокодами.
- Обработка заявок на ручное пополнение.
- Ручная выдача баланса и админ-функции.
- Поиск заказа по номеру и базовая статистика.
- Node.js
24+ - npm
11+ - Интернет-доступ для установки зависимостей
Обязательные:
BOT_TOKEN- токен бота от BotFatherADMIN_TELEGRAM_ID- Telegram ID root-админаSBP_REQUISITES- реквизиты для ручного пополнения
Рекомендуемые:
NODE_ENV=productionдля боевого запускаDISABLE_SUBSCRIPTION_CHECK=falseдля реальной проверки подпискиREQUIRED_CHANNEL=@your_channel
Опциональные:
CRYPTO_PAY_TOKEN- включает оплату через CryptoBotCRYPTO_PAY_API_URL- URL API CryptoBot
Шаблон находится в .env.example.
- Откройте PowerShell от имени администратора.
- Перейдите в папку проекта.
- Запустите:
powershell -ExecutionPolicy Bypass -File scripts/bootstrap-windows.ps1- Заполните
.env. - Запустите:
npm run build
npm start- Перейдите в папку проекта.
- Запустите:
bash scripts/bootstrap-server.sh- Заполните
.env. - Запустите:
npm run build
npm startДля автозапуска через systemd:
bash scripts/bootstrap-server.sh --skip-system-install --with-servicenpm 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 startnpm run typecheck
npm run lint
npm run build- Не публикуйте
.envи токены. - После изменения
.envперезапускайте бота. - Для проверки подписки бот должен быть админом в
REQUIRED_CHANNEL.