nakama/check-post-creation.md

168 lines
4.5 KiB
Markdown
Raw Normal View History

2025-12-01 00:51:23 +00:00
# Диагностика: Посты не сохраняются
## 🔴 Проблема
Посты создаются в интерфейсе, но исчезают при обновлении страницы.
---
## ✅ Шаг 1: Проверьте логи backend
```bash
# Посмотрите логи backend
docker logs nakama-backend -f
# Или только последние 100 строк
docker logs nakama-backend --tail 100
```
**Что искать:**
-`Ошибка создания поста`
-`S3 клиент не инициализирован`
-`Ошибка загрузки в MinIO`
-`403` или `Access Denied`
-`Файлы загружены в MinIO`
-`POST /api/posts 201`
---
## ✅ Шаг 2: Проверьте MinIO bucket
### Вариант А: Через консоль браузера
1. Откройте DevTools (F12) в браузере
2. Вкладка **Network**
3. Попробуйте создать пост
4. Найдите запрос `POST /api/posts`
5. Посмотрите на:
- **Status**: должен быть `201 Created`
- **Response**: должен содержать объект `post` с `_id`
- **Если 500**: смотрите `error` в ответе
### Вариант Б: Проверьте bucket в MinIO Console
1. Откройте http://103.80.87.247:9901/
2. **Buckets****nakama-media****posts/**
3. Должны видеть загруженные файлы
---
## ✅ Шаг 3: Убедитесь, что bucket публичный
```bash
# На сервере с MinIO
mc alias set myminio http://localhost:9000 minioadmin minioadmin
mc anonymous get myminio/nakama-media
# Должно быть: Access permission for 'myminio/nakama-media' is 'download'
# Если нет, выполните:
mc anonymous set download myminio/nakama-media
```
---
## ✅ Шаг 4: Проверьте .env
Откройте `.env` (в корне проекта) и убедитесь:
```env
# MinIO ДОЛЖЕН быть включен
MINIO_ENABLED=true
# Правильные настройки
MINIO_ENDPOINT=103.80.87.247
MINIO_PORT=9000
MINIO_USE_SSL=false
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET=nakama-media
MINIO_PUBLIC_BUCKET=true
# База данных
MONGODB_URI=mongodb://103.80.87.247:27017/nakama
```
---
## ✅ Шаг 5: Перезапустите backend
```bash
docker compose restart backend
# Посмотрите логи запуска
docker logs nakama-backend --tail 50
```
**Что должно быть в логах:**
```
✅ [SUCCESS] MinIO успешно подключен
📝 [INFO] S3 клиент для MinIO инициализирован
📝 [INFO] Bucket nakama-media существует
```
---
## ✅ Шаг 6: Тестовый запрос
```bash
# Создайте тестовый пост через curl
curl -X POST http://your-backend-url/api/posts \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "content=Test post" \
-F "tags=[\"furry\"]" \
-F "isNSFW=false"
```
---
## 🔧 Если все еще не работает
### Проверьте подключение к MongoDB:
```bash
# На сервере с MongoDB
docker exec -it nakama-mongodb mongosh
# В консоли MongoDB
use nakama
db.posts.find().limit(5)
```
Если посты есть в БД, но не отображаются в интерфейсе - проблема в frontend или API запросе.
Если постов нет - проблема в backend при сохранении.
---
## 📋 Контрольный список
- [ ] Логи backend не содержат ошибок
- [ ] MinIO bucket `nakama-media` существует
- [ ] Bucket публичный (anonymous download)
- [ ] `.env` настроен правильно (`MINIO_ENABLED=true`)
- [ ] Backend перезапущен
- [ ] MongoDB доступна (`mongodb://103.80.87.247:27017/nakama`)
- [ ] В консоли браузера нет ошибок при создании поста
---
## 💡 Быстрое решение
```bash
# 1. Сделайте bucket публичным
mc alias set myminio http://103.80.87.247:9000 minioadmin minioadmin
mc anonymous set download myminio/nakama-media
# 2. Проверьте .env
grep MINIO .env
# 3. Перезапустите
docker compose restart backend
# 4. Проверьте логи
docker logs nakama-backend -f
```
Теперь попробуйте создать пост!