Update files
This commit is contained in:
parent
4f39cb38fe
commit
200146fe4e
|
|
@ -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`
|
||||||
|
|
||||||
|
|
@ -96,7 +96,7 @@ async function sendPhotoToUser(userId, photoUrl, caption) {
|
||||||
|
|
||||||
// Если это все еще относительный URL (локальный файл), используем публичный URL
|
// Если это все еще относительный URL (локальный файл), используем публичный URL
|
||||||
if (finalPhotoUrl.startsWith('/')) {
|
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}`;
|
finalPhotoUrl = `${baseUrl}${finalPhotoUrl}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -104,7 +104,7 @@ async function sendPhotoToUser(userId, photoUrl, caption) {
|
||||||
// Если это оригинальный URL от e621/gelbooru, используем его напрямую
|
// Если это оригинальный URL от e621/gelbooru, используем его напрямую
|
||||||
const isPublicUrl = finalPhotoUrl.includes('e621.net') ||
|
const isPublicUrl = finalPhotoUrl.includes('e621.net') ||
|
||||||
finalPhotoUrl.includes('gelbooru.com') ||
|
finalPhotoUrl.includes('gelbooru.com') ||
|
||||||
finalPhotoUrl.includes('nakama.glpshchn.ru');
|
finalPhotoUrl.includes('nkm.guru');
|
||||||
|
|
||||||
const isVideo = looksLikeVideo(finalPhotoUrl);
|
const isVideo = looksLikeVideo(finalPhotoUrl);
|
||||||
|
|
||||||
|
|
@ -227,14 +227,14 @@ async function sendPhotosToUser(userId, photos) {
|
||||||
|
|
||||||
// Если это относительный URL, преобразуем в полный
|
// Если это относительный URL, преобразуем в полный
|
||||||
if (photoUrl.startsWith('/')) {
|
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}`;
|
photoUrl = `${baseUrl}${photoUrl}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Проверяем, является ли URL публично доступным
|
// Проверяем, является ли URL публично доступным
|
||||||
const isPublicUrl = photoUrl.includes('e621.net') ||
|
const isPublicUrl = photoUrl.includes('e621.net') ||
|
||||||
photoUrl.includes('gelbooru.com') ||
|
photoUrl.includes('gelbooru.com') ||
|
||||||
photoUrl.includes('nakama.glpshchn.ru');
|
photoUrl.includes('nkm.guru');
|
||||||
|
|
||||||
const isVideo = looksLikeVideo(photoUrl, photo.contentType);
|
const isVideo = looksLikeVideo(photoUrl, photo.contentType);
|
||||||
|
|
||||||
|
|
@ -313,7 +313,7 @@ async function sendAudioToUser(userId, audioUrl, metadata = {}) {
|
||||||
|
|
||||||
// Если это относительный URL (локальный файл), используем публичный URL
|
// Если это относительный URL (локальный файл), используем публичный URL
|
||||||
if (finalAudioUrl.startsWith('/')) {
|
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}`;
|
finalAudioUrl = `${baseUrl}${finalAudioUrl}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,7 @@ const handleCommand = async (message) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Использовать web_app с правильным URL миниаппа
|
// Использовать web_app с правильным URL миниаппа
|
||||||
const miniappUrl = 'https://nakama.glpshchn.ru/';
|
const miniappUrl = 'https://nkm.guru/';
|
||||||
await sendMessage(chatId, startMessage, {
|
await sendMessage(chatId, startMessage, {
|
||||||
reply_markup: {
|
reply_markup: {
|
||||||
inline_keyboard: [[
|
inline_keyboard: [[
|
||||||
|
|
|
||||||
|
|
@ -67,5 +67,5 @@ echo "Последние логи:"
|
||||||
pm2 logs nakama-backend --lines 20 --nostream
|
pm2 logs nakama-backend --lines 20 --nostream
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Проверьте приложение: https://nakama.glpshchn.ru"
|
echo "Проверьте приложение: https://nkm.guru"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue