4.5 KiB
4.5 KiB
Диагностика: Посты не сохраняются
🔴 Проблема
Посты создаются в интерфейсе, но исчезают при обновлении страницы.
✅ Шаг 1: Проверьте логи backend
# Посмотрите логи 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
Вариант А: Через консоль браузера
- Откройте DevTools (F12) в браузере
- Вкладка Network
- Попробуйте создать пост
- Найдите запрос
POST /api/posts - Посмотрите на:
- Status: должен быть
201 Created - Response: должен содержать объект
postс_id - Если 500: смотрите
errorв ответе
- Status: должен быть
Вариант Б: Проверьте bucket в MinIO Console
- Откройте http://103.80.87.247:9901/
- Buckets → nakama-media → posts/
- Должны видеть загруженные файлы
✅ Шаг 3: Убедитесь, что bucket публичный
# На сервере с 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 (в корне проекта) и убедитесь:
# 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
docker compose restart backend
# Посмотрите логи запуска
docker logs nakama-backend --tail 50
Что должно быть в логах:
✅ [SUCCESS] MinIO успешно подключен
📝 [INFO] S3 клиент для MinIO инициализирован
📝 [INFO] Bucket nakama-media существует
✅ Шаг 6: Тестовый запрос
# Создайте тестовый пост через 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:
# На сервере с 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) - В консоли браузера нет ошибок при создании поста
💡 Быстрое решение
# 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
Теперь попробуйте создать пост!