nakama/DEPLOY.md

4.4 KiB

🚀 Инструкция по обновлению сервера

Вариант 1: PM2 (рекомендуется)

1. Подключитесь к серверу

ssh user@your-server
cd /var/www/nakama  # или путь к вашему проекту

2. Обновите код

# Если используете Git
git pull origin main

# Или загрузите файлы вручную через SFTP/SCP

3. Установите зависимости (если нужно)

# Backend зависимости
npm install --production

# Frontend зависимости и сборка
cd frontend
npm install
npm run build
cd ..

4. Перезапустите backend

pm2 restart nakama-backend

5. Проверьте статус

pm2 status
pm2 logs nakama-backend --lines 50

Или используйте готовый скрипт:

chmod +x update-server.sh
./update-server.sh

Вариант 2: Docker

1. Подключитесь к серверу

ssh user@your-server
cd /path/to/nakama

2. Обновите код

# Если используете Git
git pull origin main

# Или загрузите файлы вручную

3. Пересоберите и перезапустите контейнеры

# Пересобрать только backend (если изменился только backend)
docker-compose build backend
docker-compose up -d backend

# Или пересобрать всё
docker-compose build
docker-compose up -d

4. Проверьте статус

docker-compose ps
docker-compose logs -f backend

Быстрое обновление (только backend)

Если изменился только backend код:

PM2:

cd /var/www/nakama
git pull
pm2 restart nakama-backend

Docker:

cd /path/to/nakama
git pull
docker-compose build backend
docker-compose up -d backend

Проверка после обновления

  1. Проверьте логи:

    # PM2
    pm2 logs nakama-backend --lines 50
    
    # Docker
    docker-compose logs backend --tail 50
    
  2. Проверьте здоровье сервера:

    curl http://localhost:3000/health
    
  3. Проверьте работу приложения:

    • Откройте приложение в браузере
    • Попробуйте авторизоваться
    • Проверьте, что ники и аватарки отображаются

Что изменилось в этом обновлении

Отключено автообновление аватарок - больше не будет автоматического обновления всех аватарок каждый день

Улучшено обновление данных при авторизации - при каждом перезаходе пользователя система проверяет и подтягивает отсутствующие данные (username, firstName, lastName, photoUrl) из Telegram

Добавлены fallback значения - если данные отсутствуют, отображаются значения по умолчанию вместо пустых полей


Откат изменений (если что-то пошло не так)

PM2:

cd /var/www/nakama
git checkout HEAD~1  # или конкретный коммит
pm2 restart nakama-backend

Docker:

cd /path/to/nakama
git checkout HEAD~1
docker-compose build backend
docker-compose up -d backend

Полезные команды

PM2:

pm2 list                    # Список процессов
pm2 restart nakama-backend  # Перезапуск
pm2 stop nakama-backend     # Остановка
pm2 logs nakama-backend     # Логи
pm2 monit                   # Мониторинг

Docker:

docker-compose ps           # Статус контейнеров
docker-compose logs -f      # Логи всех сервисов
docker-compose restart backend  # Перезапуск backend
docker-compose down         # Остановка всех контейнеров
docker-compose up -d        # Запуск всех контейнеров