6.2 KiB
6.2 KiB
🔥 Dev Setup - Разработка без Telegram
Эта инструкция для быстрого запуска приложения в режиме разработки БЕЗ проверки Telegram initData.
🚀 Быстрый старт
1. Скопируйте dev конфигурацию
REM Backend
copy .env.development .env
REM Frontend
cd frontend
copy .env.development .env
cd ..
2. Запустите MongoDB
net start 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
3. Установите зависимости (если еще не установлены)
npm install
npm install adm-zip
cd frontend
npm install
cd ..
4. Запустите приложение
Вариант A - Оба сразу:
npm run dev
Вариант B - Раздельно:
Окно 1 - Backend:
npm run server
Окно 2 - Frontend:
cd frontend
npm run dev
5. Откройте браузер
http://localhost:5173
✅ Готово! Приложение работает БЕЗ Telegram!
🔧 Как это работает
Backend
DISABLE_TELEGRAM_AUTH=trueв.envотключает проверку initDatabackend/middleware/devAuth.jsсоздает тестового пользователя- Автоматически создается пользователь с ID
123456789
Frontend
VITE_MOCK_TELEGRAM=trueвключает mock Telegram WebAppfrontend/src/utils/telegram.jsсоздает фиктивныйwindow.Telegram.WebApp- Все функции Telegram доступны, но не отправляют реальные запросы
👤 Тестовые пользователи
Обычный пользователь
- ID:
123456789 - Username:
DevUser - Имя:
Dev User
Модератор (для тестирования модерации)
- ID:
987654321 - Username:
DevModerator - Роль:
moderator
Настройка тестового пользователя
В .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
Очистка базы данных
mongosh mongodb://localhost:27017/nakama-dev
// Удалить все посты
db.posts.deleteMany({})
// Удалить всех пользователей
db.users.deleteMany({})
// Удалить все уведомления
db.notifications.deleteMany({})
// Полная очистка
db.dropDatabase()
🔄 Переключение обратно на Production режим
1. Скопируйте production конфиг
copy ENV_EXAMPLE.txt .env
2. Настройте .env
DISABLE_TELEGRAM_AUTH=false
TELEGRAM_BOT_TOKEN=your_real_bot_token
MONGODB_URI=your_production_mongodb_uri
3. Перезапустите сервер
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:
console.log('Dev mode:', process.env.DISABLE_TELEGRAM_AUTH === 'true')
В консоли browser:
console.log('Telegram:', window.Telegram?.WebApp)
console.log('InitData:', window.Telegram?.WebApp?.initData)
⚠️ Важно
- НЕ ИСПОЛЬЗУЙТЕ dev конфигурацию в production
- НЕ КОММИТЬТЕ
.envв git - НЕ ДЕЛИТЕСЬ dev токенами если они там есть
- При деплое используйте
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"
Проверьте:
REM MongoDB запущен?
net start MongoDB
REM .env содержит правильные настройки?
type .env | findstr DISABLE_TELEGRAM_AUTH
"initData validation failed" даже в dev режиме
Убедитесь:
DISABLE_TELEGRAM_AUTH=true
Перезапустите backend:
npm run server
Frontend не видит mock Telegram
Проверьте frontend\.env:
VITE_MOCK_TELEGRAM=true
Перезапустите frontend:
cd frontend
npm run dev
Удачной разработки! 🚀