2025-11-04 22:02:23 +00:00
|
|
|
|
╔═══════════════════════════════════════════════════════════════════╗
|
|
|
|
|
|
║ ║
|
|
|
|
|
|
║ 🔧 ИСПРАВЛЕНИЯ ДЛЯ СЕРВЕРА 🔧 ║
|
|
|
|
|
|
║ ║
|
|
|
|
|
|
╚═══════════════════════════════════════════════════════════════════╝
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ИСПРАВЛЕНО:
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
✅ 1. Добавлены недостающие зависимости в package.json
|
|
|
|
|
|
• helmet: ^7.1.0
|
|
|
|
|
|
• express-mongo-sanitize: ^2.2.0
|
|
|
|
|
|
• xss-clean: ^0.1.4
|
|
|
|
|
|
• hpp: ^0.2.3
|
|
|
|
|
|
|
|
|
|
|
|
✅ 2. Исправлена логика авторизации в App.jsx
|
|
|
|
|
|
• Проверка наличия window.Telegram?.WebApp перед проверкой пользователя
|
2025-11-04 22:23:33 +00:00
|
|
|
|
• Добавлена задержка на инициализацию Telegram Web App (300ms)
|
|
|
|
|
|
• Проверка наличия initData (строка) вместо initDataUnsafe.user
|
|
|
|
|
|
• Правильная обработка официального клиента Telegram - авторизация через API даже если user еще не распарсен
|
|
|
|
|
|
• Backend распарсит initData и создаст/найдет пользователя
|
|
|
|
|
|
|
|
|
|
|
|
✅ 3. Добавлена зависимость validator в package.json
|
|
|
|
|
|
• validator: ^13.11.0 - для валидации и санитизации данных
|
2025-11-04 22:02:23 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
КОМАНДЫ ДЛЯ ОБНОВЛЕНИЯ НА СЕРВЕРЕ:
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
# 1. Подключиться к серверу
|
|
|
|
|
|
ssh root@nakama.glpshchn.ru
|
|
|
|
|
|
|
|
|
|
|
|
# 2. Остановить приложение (чтобы избежать постоянных ребутов)
|
|
|
|
|
|
pm2 stop nakama-backend
|
|
|
|
|
|
|
|
|
|
|
|
# 3. Перейти в директорию проекта
|
|
|
|
|
|
cd /var/www/nakama
|
|
|
|
|
|
|
|
|
|
|
|
# 4. Обновить код (если используете Git)
|
|
|
|
|
|
git pull origin main
|
|
|
|
|
|
|
|
|
|
|
|
# 5. Установить недостающие зависимости
|
2025-11-04 22:23:33 +00:00
|
|
|
|
npm install helmet express-mongo-sanitize xss-clean hpp validator --save
|
2025-11-04 22:02:23 +00:00
|
|
|
|
|
|
|
|
|
|
# Или установить все зависимости заново
|
|
|
|
|
|
npm install --production
|
|
|
|
|
|
|
|
|
|
|
|
# 6. Проверить что зависимости установлены
|
2025-11-04 22:23:33 +00:00
|
|
|
|
npm list helmet express-mongo-sanitize xss-clean hpp validator
|
2025-11-04 22:02:23 +00:00
|
|
|
|
|
|
|
|
|
|
# 7. Пересобрать frontend (с исправленной логикой авторизации)
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
npm run build
|
|
|
|
|
|
cd ..
|
|
|
|
|
|
|
|
|
|
|
|
# 8. Проверить что сервер запускается (вручную)
|
|
|
|
|
|
cd backend
|
|
|
|
|
|
node server.js
|
|
|
|
|
|
# Если есть ошибки - исправить их
|
|
|
|
|
|
# Если все ок - остановить (Ctrl+C)
|
|
|
|
|
|
|
|
|
|
|
|
# 9. Запустить через PM2
|
|
|
|
|
|
pm2 start backend/server.js --name nakama-backend --update-env
|
|
|
|
|
|
|
|
|
|
|
|
# Или если уже есть конфиг:
|
|
|
|
|
|
pm2 restart nakama-backend --update-env
|
|
|
|
|
|
|
|
|
|
|
|
# 10. Проверить статус
|
|
|
|
|
|
pm2 status
|
|
|
|
|
|
pm2 logs nakama-backend --lines 50
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
БЫСТРАЯ КОМАНДА (одна строка):
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
2025-11-04 22:23:33 +00:00
|
|
|
|
ssh root@nakama.glpshchn.ru "cd /var/www/nakama && pm2 stop nakama-backend && npm install helmet express-mongo-sanitize xss-clean hpp validator --save && cd frontend && npm run build && cd .. && pm2 start backend/server.js --name nakama-backend --update-env && sleep 2 && pm2 status && pm2 logs nakama-backend --lines 30"
|
2025-11-04 22:02:23 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ПРОВЕРКА ПОСЛЕ ОБНОВЛЕНИЯ:
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
# 1. Проверить что приложение запущено
|
|
|
|
|
|
pm2 status
|
|
|
|
|
|
# Должно быть: nakama-backend | online
|
|
|
|
|
|
|
|
|
|
|
|
# 2. Проверить логи (не должно быть ошибок MODULE_NOT_FOUND)
|
|
|
|
|
|
pm2 logs nakama-backend --lines 50
|
|
|
|
|
|
# Не должно быть: Error: Cannot find module 'helmet'
|
|
|
|
|
|
|
|
|
|
|
|
# 3. Проверить health endpoint
|
|
|
|
|
|
curl http://localhost:3000/health
|
|
|
|
|
|
# Должно вернуть: {"status":"ok","environment":"production",...}
|
|
|
|
|
|
|
|
|
|
|
|
# 4. Проверить через браузер
|
|
|
|
|
|
curl https://nakama.glpshchn.ru/health
|
|
|
|
|
|
# Должно вернуть: {"status":"ok",...}
|
|
|
|
|
|
|
|
|
|
|
|
# 5. Проверить Nginx
|
|
|
|
|
|
sudo systemctl status nginx
|
|
|
|
|
|
sudo nginx -t
|
|
|
|
|
|
|
|
|
|
|
|
# 6. Проверить логи Nginx
|
|
|
|
|
|
sudo tail -f /var/log/nginx/error.log
|
|
|
|
|
|
# Не должно быть 502 ошибок
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ЧТО ИСПРАВЛЕНО:
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
✅ Проблема 1: Error: Cannot find module 'helmet'
|
|
|
|
|
|
РЕШЕНИЕ: Добавлены зависимости в package.json
|
|
|
|
|
|
|
|
|
|
|
|
✅ Проблема 2: Даже с офф клиента Telegram просит авторизацию
|
2025-11-04 22:23:33 +00:00
|
|
|
|
РЕШЕНИЕ: Исправлена логика в App.jsx - теперь проверяет наличие initData
|
|
|
|
|
|
(строка) вместо initDataUnsafe.user. Если есть initData, пытается
|
|
|
|
|
|
авторизоваться через API (backend распарсит initData). Это решает
|
|
|
|
|
|
проблему когда в официальном клиенте Telegram initDataUnsafe.user
|
|
|
|
|
|
еще не распарсен, но initData уже доступен.
|
|
|
|
|
|
|
|
|
|
|
|
✅ Проблема 4: Error: Cannot find module 'validator'
|
|
|
|
|
|
РЕШЕНИЕ: Добавлена зависимость validator в package.json
|
2025-11-04 22:02:23 +00:00
|
|
|
|
|
|
|
|
|
|
✅ Проблема 3: 502 ошибка и постоянные ребуты
|
|
|
|
|
|
РЕШЕНИЕ: После установки зависимостей приложение должно запускаться
|
|
|
|
|
|
без ошибок и перестать ребутиться
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ВАЖНО:
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
1. После установки зависимостей ОБЯЗАТЕЛЬНО пересобрать frontend
|
|
|
|
|
|
(npm run build в директории frontend)
|
|
|
|
|
|
|
|
|
|
|
|
2. Перезапустить PM2 с флагом --update-env для обновления переменных
|
|
|
|
|
|
|
|
|
|
|
|
3. Проверить логи PM2 после перезапуска
|
|
|
|
|
|
|
|
|
|
|
|
4. Если все еще есть ошибки - проверить что все зависимости установлены:
|
2025-11-04 22:23:33 +00:00
|
|
|
|
npm list helmet express-mongo-sanitize xss-clean hpp validator
|
2025-11-04 22:02:23 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ГОТОВО! ✅
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения этих команд все три проблемы должны быть решены!
|
|
|
|
|
|
|