72 lines
2.0 KiB
Bash
Executable File
72 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Скрипт обновления Nakama на сервере
|
||
# Использование: ./update-server.sh
|
||
|
||
echo "🚀 Обновление Nakama..."
|
||
|
||
# 1. Перейти в директорию проекта
|
||
cd /var/www/nakama || exit 1
|
||
|
||
# 2. Сделать бэкап (опционально)
|
||
echo "📦 Создание бэкапа..."
|
||
sudo tar -czf ~/nakama-backup-$(date +%Y%m%d_%H%M%S).tar.gz . 2>/dev/null
|
||
|
||
# 3. Получить новый код (если используете Git)
|
||
if [ -d .git ]; then
|
||
echo "🔄 Обновление кода из Git..."
|
||
git pull
|
||
fi
|
||
|
||
# 4. Обновить backend зависимости
|
||
echo "📦 Обновление backend зависимостей..."
|
||
npm install --production
|
||
|
||
# 5. Обновить и пересобрать frontend
|
||
echo "🎨 Пересборка frontend..."
|
||
cd frontend
|
||
npm install
|
||
npm run build
|
||
cd ..
|
||
|
||
# 6. Обновить MongoDB (отключить фильтры, удалить репосты)
|
||
echo "🗄️ Обновление базы данных..."
|
||
mongosh nakama --eval '
|
||
// Отключить все фильтры для пользователей
|
||
db.users.updateMany(
|
||
{},
|
||
{ $set: {
|
||
"settings.whitelist.noNSFW": false,
|
||
"settings.whitelist.noFurry": false,
|
||
"settings.whitelist.onlyAnime": false
|
||
}}
|
||
);
|
||
|
||
// Удалить поле reposts из постов
|
||
db.posts.updateMany({}, { $unset: { reposts: "" } });
|
||
|
||
// Удалить уведомления о репостах
|
||
db.notifications.deleteMany({ type: "repost" });
|
||
|
||
print("✅ База данных обновлена");
|
||
' --quiet
|
||
|
||
# 7. Перезапустить backend
|
||
echo "🔄 Перезапуск backend..."
|
||
pm2 restart nakama-backend
|
||
|
||
# 8. Проверить статус
|
||
echo ""
|
||
echo "✅ Обновление завершено!"
|
||
echo ""
|
||
echo "Проверка статуса:"
|
||
pm2 status
|
||
|
||
echo ""
|
||
echo "Последние логи:"
|
||
pm2 logs nakama-backend --lines 20 --nostream
|
||
|
||
echo ""
|
||
echo "Проверьте приложение: https://nakama.glpshchn.ru"
|
||
|