5.4 KiB
5.4 KiB
⚡ Быстрый старт DEV версии (без Telegram)
🚀 Запуск за 5 минут
Шаг 1: Создайте .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:
VITE_API_URL=http://localhost:3000/api
VITE_MOCK_TELEGRAM=true
Шаг 3: Обновите frontend\src\utils\telegram.js
Найдите функцию initTelegramApp и в самом начале добавьте:
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
net start MongoDB
Шаг 5: Установите зависимости
npm install
npm install adm-zip music-metadata
cd frontend
npm install
cd ..
Шаг 6: Запустите приложение
npm run dev
Шаг 7: Откройте браузер
http://localhost:5173
✅ Готово! Приложение работает без Telegram!
🎯 Что происходит?
DISABLE_TELEGRAM_AUTH=true- отключает проверку initData на backendbackend/middleware/devAuth.js- создает тестового пользователя (ID: 123456789)VITE_MOCK_TELEGRAM=true- включает mock Telegram WebApp на frontend- 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
- Удалите или измените
.env:
DISABLE_TELEGRAM_AUTH=false
TELEGRAM_BOT_TOKEN=your_real_token
- Перезапустите:
npm run server
🆘 Проблемы?
MongoDB не запускается
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 занят
netstat -ano | findstr :3000
taskkill /PID <PID> /F
Dev user не создается
Проверьте .env:
type .env | findstr DISABLE_TELEGRAM_AUTH
Должно быть: DISABLE_TELEGRAM_AUTH=true
Быстрого старта! 🚀