BIG_UPDATE deleted vps, added s3 infrastructure.

This commit is contained in:
Georgiy Syralev
2025-11-23 14:35:16 +03:00
parent ae1f93a934
commit c4c2610480
173 changed files with 22684 additions and 5894 deletions

128
DEPLOY_INSTRUCTIONS.md Normal file
View File

@@ -0,0 +1,128 @@
# 🚀 Инструкции по развертыванию обновлений
## Проблема
После обновления кода на сервере появляются ошибки:
- `Cannot read properties of undefined (reading 'findMany')` - Prisma Client не имеет моделей Post/Comment
- OAuth endpoints возвращают 404
- Admin endpoints возвращают 404
## Решение
### 1. Убедитесь, что schema.prisma на сервере актуальна
```bash
ssh root@ospab.host
cd /var/www/ospab-host/backend
# Проверьте, что в schema.prisma есть модели Post и Comment
grep -A 5 "model Post" prisma/schema.prisma
grep -A 5 "model Comment" prisma/schema.prisma
```
Если моделей нет, загрузите schema.prisma с локальной машины:
```powershell
# На локальной машине (Windows)
cd d:\Ospab-projects\ospabhost8.1\ospabhost\backend
scp prisma/schema.prisma root@ospab.host:/var/www/ospab-host/backend/prisma/
```
### 2. Создайте таблицы в базе данных (если их нет)
```bash
# На сервере
cd /var/www/ospab-host/backend
npx prisma db push
```
### 3. Регенерируйте Prisma Client
```bash
# На сервере
npx prisma generate
```
Эта команда создаст типы для моделей Post и Comment в `node_modules/@prisma/client`
### 4. Загрузите обновленный dist с локальной машины
```powershell
# На локальной машине (Windows)
cd d:\Ospab-projects\ospabhost8.1\ospabhost\backend
scp -r dist/ root@ospab.host:/var/www/ospab-host/backend/
```
### 5. Перезапустите backend
```bash
# На сервере
pm2 restart backend
pm2 logs backend --lines 50
```
## Проверка
После выполнения всех шагов проверьте:
```bash
# 1. OAuth endpoints (должны возвращать 302 redirect)
curl -I https://ospab.host:5000/api/auth/google
curl -I https://ospab.host:5000/api/auth/github
curl -I https://ospab.host:5000/api/auth/yandex
# 2. Admin endpoints (должны возвращать 401 без токена или 200 с токеном)
curl https://ospab.host:5000/api/admin/users
# 3. Blog endpoints (должны возвращать JSON)
curl https://ospab.host:5000/api/blog/posts
curl https://ospab.host:5000/api/blog/admin/posts -H "Authorization: Bearer YOUR_TOKEN"
```
## Что было исправлено в коде
### backend/src/index.ts
```typescript
// Добавлены импорты:
import passport from './modules/auth/passport.config';
import oauthRoutes from './modules/auth/oauth.routes';
import adminRoutes from './modules/admin/admin.routes';
// Добавлена инициализация Passport:
app.use(passport.initialize());
// Подключены маршруты:
app.use('/api/auth', oauthRoutes); // OAuth (Google/GitHub/Yandex)
app.use('/api/admin', adminRoutes); // Admin панель
```
### backend/src/modules/auth/oauth.routes.ts
```typescript
// Убраны типы `any`, добавлен интерфейс:
interface AuthenticatedUser {
id: number;
email: string;
username: string;
}
```
## Troubleshooting
### Ошибка: "Cannot read properties of undefined (reading 'findMany')"
**Причина:** Prisma Client не имеет моделей Post/Comment
**Решение:** Выполните `npx prisma generate` на сервере
### Ошибка: "Table 'ospabhost.post' doesn't exist"
**Причина:** Таблицы не созданы в базе данных
**Решение:** Выполните `npx prisma db push` на сервере
### OAuth возвращает 404
**Причина:** OAuth маршруты не подключены
**Решение:** Загрузите обновленный dist и перезапустите backend
### Admin endpoints возвращают 404
**Причина:** Admin маршруты не подключены
**Решение:** Загрузите обновленный dist и перезапустите backend
---
**Дата обновления:** 1 ноября 2025 г.