2025-12-15 08:04:16 +00:00
|
|
|
|
# 🔥 Dev Setup - Разработка без Telegram
|
|
|
|
|
|
|
|
|
|
|
|
Эта инструкция для быстрого запуска приложения в режиме разработки БЕЗ проверки Telegram initData.
|
|
|
|
|
|
|
|
|
|
|
|
## 🚀 Быстрый старт
|
|
|
|
|
|
|
|
|
|
|
|
### 1. Скопируйте dev конфигурацию
|
|
|
|
|
|
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
REM Backend
|
|
|
|
|
|
copy .env.development .env
|
|
|
|
|
|
|
|
|
|
|
|
REM Frontend
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
copy .env.development .env
|
|
|
|
|
|
cd ..
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. Запустите MongoDB
|
|
|
|
|
|
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
net start MongoDB
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Или вручную:
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
cd "C:\Program Files\MongoDB\Server\7.0\bin"
|
|
|
|
|
|
if not exist C:\data\db mkdir C:\data\db
|
|
|
|
|
|
mongod --dbpath C:\data\db
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3. Установите зависимости (если еще не установлены)
|
|
|
|
|
|
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
npm install
|
|
|
|
|
|
npm install adm-zip
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
npm install
|
|
|
|
|
|
cd ..
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4. Запустите приложение
|
|
|
|
|
|
|
|
|
|
|
|
**Вариант A - Оба сразу:**
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
npm run dev
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Вариант B - Раздельно:**
|
|
|
|
|
|
|
|
|
|
|
|
Окно 1 - Backend:
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
npm run server
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Окно 2 - Frontend:
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
npm run dev
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 5. Откройте браузер
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
http://localhost:5173
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
✅ Готово! Приложение работает БЕЗ Telegram!
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🔧 Как это работает
|
|
|
|
|
|
|
|
|
|
|
|
### Backend
|
|
|
|
|
|
|
|
|
|
|
|
- `DISABLE_TELEGRAM_AUTH=true` в `.env` отключает проверку initData
|
|
|
|
|
|
- `backend/middleware/devAuth.js` создает тестового пользователя
|
|
|
|
|
|
- Автоматически создается пользователь с ID `123456789`
|
|
|
|
|
|
|
|
|
|
|
|
### Frontend
|
|
|
|
|
|
|
|
|
|
|
|
- `VITE_MOCK_TELEGRAM=true` включает mock Telegram WebApp
|
|
|
|
|
|
- `frontend/src/utils/telegram.js` создает фиктивный `window.Telegram.WebApp`
|
|
|
|
|
|
- Все функции Telegram доступны, но не отправляют реальные запросы
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 👤 Тестовые пользователи
|
|
|
|
|
|
|
|
|
|
|
|
### Обычный пользователь
|
|
|
|
|
|
- ID: `123456789`
|
|
|
|
|
|
- Username: `DevUser`
|
|
|
|
|
|
- Имя: `Dev User`
|
|
|
|
|
|
|
|
|
|
|
|
### Модератор (для тестирования модерации)
|
|
|
|
|
|
- ID: `987654321`
|
|
|
|
|
|
- Username: `DevModerator`
|
|
|
|
|
|
- Роль: `moderator`
|
|
|
|
|
|
|
|
|
|
|
|
### Настройка тестового пользователя
|
|
|
|
|
|
|
|
|
|
|
|
В `.env` можете изменить:
|
|
|
|
|
|
```env
|
|
|
|
|
|
DEV_USER_ID=123456789
|
|
|
|
|
|
DEV_USERNAME=MyDevUser
|
|
|
|
|
|
DEV_FIRST_NAME=My
|
|
|
|
|
|
DEV_LAST_NAME=DevUser
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📝 Доступные функции в Dev режиме
|
|
|
|
|
|
|
|
|
|
|
|
✅ Создание постов
|
|
|
|
|
|
✅ Комментарии
|
|
|
|
|
|
✅ Лайки
|
|
|
|
|
|
✅ Подписки
|
|
|
|
|
|
✅ Поиск (Furry/Anime/Music)
|
|
|
|
|
|
✅ Загрузка изображений
|
|
|
|
|
|
✅ Загрузка музыки
|
|
|
|
|
|
✅ Музыкальный плеер
|
|
|
|
|
|
✅ Уведомления
|
|
|
|
|
|
✅ Профиль
|
|
|
|
|
|
✅ Настройки
|
|
|
|
|
|
|
|
|
|
|
|
❌ Отправка в Telegram (требует реального бота)
|
|
|
|
|
|
❌ Telegram уведомления
|
|
|
|
|
|
❌ Реферальная система
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🗄️ База данных
|
|
|
|
|
|
|
|
|
|
|
|
В dev режиме используется отдельная база:
|
|
|
|
|
|
```
|
|
|
|
|
|
mongodb://localhost:27017/nakama-dev
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Очистка базы данных
|
|
|
|
|
|
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
mongosh mongodb://localhost:27017/nakama-dev
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
// Удалить все посты
|
|
|
|
|
|
db.posts.deleteMany({})
|
|
|
|
|
|
|
|
|
|
|
|
// Удалить всех пользователей
|
|
|
|
|
|
db.users.deleteMany({})
|
|
|
|
|
|
|
|
|
|
|
|
// Удалить все уведомления
|
|
|
|
|
|
db.notifications.deleteMany({})
|
|
|
|
|
|
|
|
|
|
|
|
// Полная очистка
|
|
|
|
|
|
db.dropDatabase()
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🔄 Переключение обратно на Production режим
|
|
|
|
|
|
|
|
|
|
|
|
### 1. Скопируйте production конфиг
|
|
|
|
|
|
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
copy ENV_EXAMPLE.txt .env
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. Настройте `.env`
|
|
|
|
|
|
|
|
|
|
|
|
```env
|
|
|
|
|
|
DISABLE_TELEGRAM_AUTH=false
|
|
|
|
|
|
TELEGRAM_BOT_TOKEN=your_real_bot_token
|
|
|
|
|
|
MONGODB_URI=your_production_mongodb_uri
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3. Перезапустите сервер
|
|
|
|
|
|
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
npm run server
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🐛 Отладка
|
|
|
|
|
|
|
|
|
|
|
|
### Логи
|
|
|
|
|
|
|
|
|
|
|
|
Backend показывает:
|
|
|
|
|
|
```
|
|
|
|
|
|
⚠️ DEV MODE: Telegram auth disabled
|
|
|
|
|
|
✅ Created dev user: DevUser (123456789)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Frontend показывает:
|
|
|
|
|
|
```
|
|
|
|
|
|
✅ Mock Telegram WebApp initialized (DEV MODE)
|
|
|
|
|
|
⚠️ Running in DEV MODE with mock Telegram WebApp
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Проверка режима
|
|
|
|
|
|
|
|
|
|
|
|
В консоли backend:
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
console.log('Dev mode:', process.env.DISABLE_TELEGRAM_AUTH === 'true')
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
В консоли browser:
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
console.log('Telegram:', window.Telegram?.WebApp)
|
|
|
|
|
|
console.log('InitData:', window.Telegram?.WebApp?.initData)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## ⚠️ Важно
|
|
|
|
|
|
|
|
|
|
|
|
1. **НЕ ИСПОЛЬЗУЙТЕ** dev конфигурацию в production
|
|
|
|
|
|
2. **НЕ КОММИТЬТЕ** `.env` в git
|
|
|
|
|
|
3. **НЕ ДЕЛИТЕСЬ** dev токенами если они там есть
|
|
|
|
|
|
4. При деплое используйте `ENV_EXAMPLE.txt` как шаблон
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📚 Структура Dev файлов
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
nakama/
|
|
|
|
|
|
├── .env.development # Dev конфиг backend
|
|
|
|
|
|
├── .env # Текущий конфиг (копия .env.development)
|
|
|
|
|
|
├── backend/
|
|
|
|
|
|
│ └── middleware/
|
|
|
|
|
|
│ └── devAuth.js # Dev middleware
|
|
|
|
|
|
└── frontend/
|
|
|
|
|
|
├── .env.development # Dev конфиг frontend
|
|
|
|
|
|
├── .env # Текущий конфиг
|
|
|
|
|
|
└── src/
|
|
|
|
|
|
└── utils/
|
|
|
|
|
|
└── telegram.js # Содержит mock Telegram WebApp
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🆘 Проблемы
|
|
|
|
|
|
|
|
|
|
|
|
### "Dev user not created"
|
|
|
|
|
|
|
|
|
|
|
|
Проверьте:
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
REM MongoDB запущен?
|
|
|
|
|
|
net start MongoDB
|
|
|
|
|
|
|
|
|
|
|
|
REM .env содержит правильные настройки?
|
|
|
|
|
|
type .env | findstr DISABLE_TELEGRAM_AUTH
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### "initData validation failed" даже в dev режиме
|
|
|
|
|
|
|
|
|
|
|
|
Убедитесь:
|
|
|
|
|
|
```env
|
|
|
|
|
|
DISABLE_TELEGRAM_AUTH=true
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Перезапустите backend:
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
npm run server
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Frontend не видит mock Telegram
|
|
|
|
|
|
|
|
|
|
|
|
Проверьте `frontend\.env`:
|
|
|
|
|
|
```env
|
|
|
|
|
|
VITE_MOCK_TELEGRAM=true
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Перезапустите frontend:
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
npm run dev
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
**Удачной разработки! 🚀**
|
|
|
|
|
|
|
2025-12-15 19:51:01 +00:00
|
|
|
|
|