nakama/check-post-creation.md

168 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Диагностика: Посты не сохраняются
## 🔴 Проблема
Посты создаются в интерфейсе, но исчезают при обновлении страницы.
---
## ✅ Шаг 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
```
Теперь попробуйте создать пост!