# 🔥 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 ``` --- **Удачной разработки! 🚀**