From 200146fe4ede14d7a7f8261f34c33da248928dcf Mon Sep 17 00:00:00 2001 From: glpshchn <464976@niuitmo.ru> Date: Thu, 1 Jan 2026 22:00:49 +0300 Subject: [PATCH] Update files --- UPDATE_DOMAIN.md | 100 ++++++++++++++++++++++++++++++++++++++++ backend/bot.js | 10 ++-- backend/bots/mainBot.js | 2 +- update-server.sh | 2 +- 4 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 UPDATE_DOMAIN.md diff --git a/UPDATE_DOMAIN.md b/UPDATE_DOMAIN.md new file mode 100644 index 0000000..d7810f3 --- /dev/null +++ b/UPDATE_DOMAIN.md @@ -0,0 +1,100 @@ +# Инструкция по обновлению домена с nakama.glpshchn.ru на nkm.guru + +## ✅ Что уже обновлено в коде: +- `backend/bot.js` - обновлены все упоминания домена +- `backend/bots/mainBot.js` - обновлен URL миниаппа +- `update-server.sh` - обновлена ссылка для проверки + +## 🔧 Что нужно сделать на сервере: + +### 1. Обновить переменные окружения + +В файле `.env` на сервере обновите: + +```bash +# Старый домен (удалить или заменить): +# FRONTEND_URL=https://nakama.glpshchn.ru +# VITE_API_URL=https://nakama.glpshchn.ru/api + +# Новый домен: +FRONTEND_URL=https://nkm.guru +VITE_API_URL=https://nkm.guru/api +``` + +### 2. Обновить nginx конфигурацию + +Проверьте файл `/etc/nginx/sites-available/nakama` (или аналогичный) и убедитесь, что: + +```nginx +server { + listen 443 ssl http2; + server_name nkm.guru; # ← Должен быть новый домен + + ssl_certificate /etc/letsencrypt/live/nkm.guru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/nkm.guru/privkey.pem; + # ... +} +``` + +Если сертификат еще не получен для нового домена: + +```bash +sudo certbot certonly --standalone -d nkm.guru +``` + +### 3. Пересобрать frontend + +```bash +cd /var/www/nakama/frontend + +# Убедитесь, что переменные окружения установлены +export VITE_API_URL=https://nkm.guru/api + +# Пересоберите frontend +npm run build + +# Или если используете Docker: +cd /var/www/nakama +docker-compose build frontend +docker-compose up -d frontend +``` + +### 4. Перезапустить backend + +```bash +# Если используете PM2: +pm2 restart nakama-backend + +# Или если используете Docker: +docker-compose restart backend +``` + +### 5. Перезагрузить nginx + +```bash +sudo nginx -t # Проверить конфигурацию +sudo systemctl reload nginx +``` + +### 6. Проверить работу + +```bash +# Проверить API: +curl https://nkm.guru/api/health + +# Проверить frontend: +curl -I https://nkm.guru +``` + +## ⚠️ Важно: + +1. **SSL сертификат**: Убедитесь, что SSL сертификат получен для нового домена `nkm.guru` +2. **DNS**: Убедитесь, что DNS записи указывают на правильный IP сервера +3. **Кэш браузера**: После обновления очистите кэш браузера или используйте режим инкогнито + +## 🔍 Проверка: + +После обновления проверьте в консоли браузера, что запросы идут на правильный домен: +- Должно быть: `https://nkm.guru/api/posts` +- Не должно быть: `https://nakama.glpshchn.ru/api/posts` + diff --git a/backend/bot.js b/backend/bot.js index 4151fd8..9944ea8 100644 --- a/backend/bot.js +++ b/backend/bot.js @@ -96,7 +96,7 @@ async function sendPhotoToUser(userId, photoUrl, caption) { // Если это все еще относительный URL (локальный файл), используем публичный URL if (finalPhotoUrl.startsWith('/')) { - const baseUrl = process.env.FRONTEND_URL || process.env.API_URL || 'https://nakama.glpshchn.ru'; + const baseUrl = process.env.FRONTEND_URL || process.env.API_URL || 'https://nkm.guru'; finalPhotoUrl = `${baseUrl}${finalPhotoUrl}`; } @@ -104,7 +104,7 @@ async function sendPhotoToUser(userId, photoUrl, caption) { // Если это оригинальный URL от e621/gelbooru, используем его напрямую const isPublicUrl = finalPhotoUrl.includes('e621.net') || finalPhotoUrl.includes('gelbooru.com') || - finalPhotoUrl.includes('nakama.glpshchn.ru'); + finalPhotoUrl.includes('nkm.guru'); const isVideo = looksLikeVideo(finalPhotoUrl); @@ -227,14 +227,14 @@ async function sendPhotosToUser(userId, photos) { // Если это относительный URL, преобразуем в полный if (photoUrl.startsWith('/')) { - const baseUrl = process.env.FRONTEND_URL || process.env.API_URL || 'https://nakama.glpshchn.ru'; + const baseUrl = process.env.FRONTEND_URL || process.env.API_URL || 'https://nkm.guru'; photoUrl = `${baseUrl}${photoUrl}`; } // Проверяем, является ли URL публично доступным const isPublicUrl = photoUrl.includes('e621.net') || photoUrl.includes('gelbooru.com') || - photoUrl.includes('nakama.glpshchn.ru'); + photoUrl.includes('nkm.guru'); const isVideo = looksLikeVideo(photoUrl, photo.contentType); @@ -313,7 +313,7 @@ async function sendAudioToUser(userId, audioUrl, metadata = {}) { // Если это относительный URL (локальный файл), используем публичный URL if (finalAudioUrl.startsWith('/')) { - const baseUrl = process.env.FRONTEND_URL || process.env.API_URL || 'https://nakama.glpshchn.ru'; + const baseUrl = process.env.FRONTEND_URL || process.env.API_URL || 'https://nkm.guru'; finalAudioUrl = `${baseUrl}${finalAudioUrl}`; } diff --git a/backend/bots/mainBot.js b/backend/bots/mainBot.js index 10502a3..8e5aa3a 100644 --- a/backend/bots/mainBot.js +++ b/backend/bots/mainBot.js @@ -125,7 +125,7 @@ const handleCommand = async (message) => { } // Использовать web_app с правильным URL миниаппа - const miniappUrl = 'https://nakama.glpshchn.ru/'; + const miniappUrl = 'https://nkm.guru/'; await sendMessage(chatId, startMessage, { reply_markup: { inline_keyboard: [[ diff --git a/update-server.sh b/update-server.sh index 48414cc..6753b9d 100644 --- a/update-server.sh +++ b/update-server.sh @@ -67,5 +67,5 @@ echo "Последние логи:" pm2 logs nakama-backend --lines 20 --nostream echo "" -echo "Проверьте приложение: https://nakama.glpshchn.ru" +echo "Проверьте приложение: https://nkm.guru"