nakama/🔧_ИСПРАВЛЕНИЯ_СЕРВЕРА.txt

137 lines
6.7 KiB
Plaintext
Raw Normal View History

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 перед проверкой пользователя
• Добавлена задержка на инициализацию Telegram Web App (200ms)
• Правильная обработка официального клиента Telegram
КОМАНДЫ ДЛЯ ОБНОВЛЕНИЯ НА СЕРВЕРЕ:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 1. Подключиться к серверу
ssh root@nakama.glpshchn.ru
# 2. Остановить приложение (чтобы избежать постоянных ребутов)
pm2 stop nakama-backend
# 3. Перейти в директорию проекта
cd /var/www/nakama
# 4. Обновить код (если используете Git)
git pull origin main
# 5. Установить недостающие зависимости
npm install helmet express-mongo-sanitize xss-clean hpp --save
# Или установить все зависимости заново
npm install --production
# 6. Проверить что зависимости установлены
npm list helmet express-mongo-sanitize xss-clean hpp
# 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
БЫСТРАЯ КОМАНДА (одна строка):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ssh root@nakama.glpshchn.ru "cd /var/www/nakama && pm2 stop nakama-backend && npm install helmet express-mongo-sanitize xss-clean hpp --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"
ПРОВЕРКА ПОСЛЕ ОБНОВЛЕНИЯ:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 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 просит авторизацию
РЕШЕНИЕ: Исправлена логика в App.jsx - теперь правильно проверяет
наличие Telegram Web App API и дает время на инициализацию
✅ Проблема 3: 502 ошибка и постоянные ребуты
РЕШЕНИЕ: После установки зависимостей приложение должно запускаться
без ошибок и перестать ребутиться
ВАЖНО:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. После установки зависимостей ОБЯЗАТЕЛЬНО пересобрать frontend
(npm run build в директории frontend)
2. Перезапустить PM2 с флагом --update-env для обновления переменных
3. Проверить логи PM2 после перезапуска
4. Если все еще есть ошибки - проверить что все зависимости установлены:
npm list helmet express-mongo-sanitize xss-clean hpp
ГОТОВО! ✅
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
После выполнения этих команд все три проблемы должны быть решены!