222 lines
5.4 KiB
Markdown
222 lines
5.4 KiB
Markdown
# ⚡ Быстрый старт DEV версии (без Telegram)
|
||
|
||
## 🚀 Запуск за 5 минут
|
||
|
||
### Шаг 1: Создайте `.env` файл
|
||
|
||
В корне проекта создайте файл `.env` с содержимым:
|
||
|
||
```env
|
||
DISABLE_TELEGRAM_AUTH=true
|
||
NODE_ENV=development
|
||
PORT=3000
|
||
MONGODB_URI=mongodb://localhost:27017/nakama-dev
|
||
|
||
JWT_SECRET=dev_jwt_secret_32chars_minimum_length
|
||
JWT_ACCESS_SECRET=dev_access_secret_32chars_minimum
|
||
JWT_REFRESH_SECRET=dev_refresh_secret_32chars_minimum
|
||
|
||
TELEGRAM_BOT_TOKEN=
|
||
FRONTEND_URL=http://localhost:5173
|
||
VITE_API_URL=http://localhost:3000/api
|
||
CORS_ORIGIN=*
|
||
|
||
MINIO_ENABLED=false
|
||
RATE_LIMIT_GENERAL=1000
|
||
RATE_LIMIT_POSTS=100
|
||
```
|
||
|
||
### Шаг 2: Создайте `frontend\.env`
|
||
|
||
В папке `frontend` создайте файл `.env`:
|
||
|
||
```env
|
||
VITE_API_URL=http://localhost:3000/api
|
||
VITE_MOCK_TELEGRAM=true
|
||
```
|
||
|
||
### Шаг 3: Обновите `frontend\src\utils\telegram.js`
|
||
|
||
Найдите функцию `initTelegramApp` и в самом начале добавьте:
|
||
|
||
```javascript
|
||
export const initTelegramApp = () => {
|
||
// 🔥 DEV MODE: Mock Telegram WebApp
|
||
if (import.meta.env.DEV && import.meta.env.VITE_MOCK_TELEGRAM === 'true') {
|
||
if (!window.Telegram?.WebApp) {
|
||
const mockInitData = 'query_id=mock&user=%7B%22id%22%3A123456789%2C%22first_name%22%3A%22Dev%22%2C%22last_name%22%3A%22User%22%2C%22username%22%3A%22devuser%22%7D&auth_date=1640000000&hash=mockhash';
|
||
|
||
window.Telegram = {
|
||
WebApp: {
|
||
initData: mockInitData,
|
||
initDataUnsafe: {
|
||
user: {
|
||
id: 123456789,
|
||
first_name: 'Dev',
|
||
last_name: 'User',
|
||
username: 'devuser'
|
||
}
|
||
},
|
||
version: '7.0',
|
||
platform: 'web',
|
||
colorScheme: 'light',
|
||
themeParams: {},
|
||
isExpanded: true,
|
||
viewportHeight: 600,
|
||
viewportStableHeight: 600,
|
||
ready: () => console.log('Mock ready'),
|
||
expand: () => {},
|
||
close: () => {},
|
||
disableVerticalSwipes: () => {},
|
||
BackButton: { isVisible: false },
|
||
MainButton: { isVisible: false },
|
||
HapticFeedback: {
|
||
impactOccurred: () => {},
|
||
notificationOccurred: () => {},
|
||
selectionChanged: () => {}
|
||
}
|
||
}
|
||
};
|
||
console.log('✅ Mock Telegram WebApp (DEV MODE)');
|
||
}
|
||
}
|
||
|
||
const tg = window.Telegram?.WebApp
|
||
// ... остальной код без изменений
|
||
```
|
||
|
||
### Шаг 4: Запустите MongoDB
|
||
|
||
```cmd
|
||
net start MongoDB
|
||
```
|
||
|
||
### Шаг 5: Установите зависимости
|
||
|
||
```cmd
|
||
npm install
|
||
npm install adm-zip music-metadata
|
||
cd frontend
|
||
npm install
|
||
cd ..
|
||
```
|
||
|
||
### Шаг 6: Запустите приложение
|
||
|
||
```cmd
|
||
npm run dev
|
||
```
|
||
|
||
### Шаг 7: Откройте браузер
|
||
|
||
```
|
||
http://localhost:5173
|
||
```
|
||
|
||
✅ **Готово!** Приложение работает без Telegram!
|
||
|
||
---
|
||
|
||
## 🎯 Что происходит?
|
||
|
||
1. `DISABLE_TELEGRAM_AUTH=true` - отключает проверку initData на backend
|
||
2. `backend/middleware/devAuth.js` - создает тестового пользователя (ID: 123456789)
|
||
3. `VITE_MOCK_TELEGRAM=true` - включает mock Telegram WebApp на frontend
|
||
4. Mock создает фиктивный `window.Telegram.WebApp` объект
|
||
|
||
---
|
||
|
||
## 🧪 Тестирование
|
||
|
||
### Проверьте что dev режим работает:
|
||
|
||
**Backend консоль должна показать:**
|
||
```
|
||
⚠️ DEV MODE ENABLED - Telegram auth disabled!
|
||
⚠️ DEV MODE: Telegram auth disabled
|
||
✅ Created dev user: DevUser (123456789)
|
||
```
|
||
|
||
**Browser консоль должна показать:**
|
||
```
|
||
✅ Mock Telegram WebApp (DEV MODE)
|
||
```
|
||
|
||
### Тест API:
|
||
|
||
Откройте: `http://localhost:3000/api/posts`
|
||
|
||
Должен вернуться список постов (может быть пустой).
|
||
|
||
---
|
||
|
||
## 📁 Структура
|
||
|
||
```
|
||
nakama/
|
||
├── .env ← Создайте (dev конфиг)
|
||
├── backend/
|
||
│ └── middleware/
|
||
│ └── devAuth.js ← Уже создан
|
||
├── frontend/
|
||
│ ├── .env ← Создайте (dev конфиг)
|
||
│ └── src/utils/
|
||
│ └── telegram.js ← Обновите
|
||
├── DEV_SETUP.md ← Подробная инструкция
|
||
└── QUICK_DEV_START.md ← Эта инструкция
|
||
```
|
||
|
||
---
|
||
|
||
## ⚠️ Важно
|
||
|
||
- **НЕ коммитьте** `.env` файлы в git
|
||
- **НЕ используйте** dev конфигурацию в production
|
||
- Для production используйте настоящий `TELEGRAM_BOT_TOKEN`
|
||
|
||
---
|
||
|
||
## 🔄 Вернуться к production
|
||
|
||
1. Удалите или измените `.env`:
|
||
```env
|
||
DISABLE_TELEGRAM_AUTH=false
|
||
TELEGRAM_BOT_TOKEN=your_real_token
|
||
```
|
||
|
||
2. Перезапустите:
|
||
```cmd
|
||
npm run server
|
||
```
|
||
|
||
---
|
||
|
||
## 🆘 Проблемы?
|
||
|
||
### 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
|
||
```
|
||
|
||
### Port 3000 занят
|
||
```cmd
|
||
netstat -ano | findstr :3000
|
||
taskkill /PID <PID> /F
|
||
```
|
||
|
||
### Dev user не создается
|
||
|
||
Проверьте `.env`:
|
||
```cmd
|
||
type .env | findstr DISABLE_TELEGRAM_AUTH
|
||
```
|
||
|
||
Должно быть: `DISABLE_TELEGRAM_AUTH=true`
|
||
|
||
---
|
||
|
||
**Быстрого старта! 🚀**
|
||
|