222 lines
5.6 KiB
Markdown
222 lines
5.6 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`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**Быстрого старта! 🚀**
|
|||
|
|
|