Files
t-bot/README.md

78 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Telegram Bot Template
Шаблон Telegram-бота на NestJS + Telegraf + Drizzle ORM + PostgreSQL.
## Стек
- **NestJS** — фреймворк
- **Telegraf** — Telegram Bot API
- **Drizzle ORM** — работа с БД
- **PostgreSQL** — база данных
- **Zod** — валидация
## Быстрый старт
### 1. Установка зависимостей
```bash
pnpm install
```
### 2. Настройка окружения
Создай `.env` файл:
```env
ENV=development
PORT=3000
DATABASE_URL=postgresql://admin:admin@localhost:5432/tg-bot
DB_PORT=5432
DB_USERNAME=admin
DB_PASSWORD=admin
DB_NAME=tg-bot
TELEGRAM_TOKEN=your_bot_token_here
```
### 3. Запуск PostgreSQL
```bash
docker-compose up -d
```
### 4. Миграция БД
```bash
pnpm db:push
```
### 5. Запуск бота
```bash
pnpm start:dev
```
## Структура проекта
```
src/
├── app/
│ ├── bot/ # Telegram бот
│ └── user/ # Модуль пользователей
├── db/ # База данных (Drizzle)
├── middleware/ # Middleware
├── app.module.ts # Главный модуль
├── env.validator.ts # Валидация ENV
└── main.ts # Точка входа
```
## Команды
| Команда | Описание |
|---------|----------|
| `pnpm start:dev` | Запуск в dev режиме |
| `pnpm build` | Сборка проекта |
| `pnpm db:push` | Применить схему к БД |
| `pnpm db:generate` | Сгенерировать миграцию |