nakama/check-post-creation.md

4.5 KiB
Raw Permalink Blame History

Диагностика: Посты не сохраняются

🔴 Проблема

Посты создаются в интерфейсе, но исчезают при обновлении страницы.


Шаг 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

Вариант А: Через консоль браузера

  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. Bucketsnakama-mediaposts/
  3. Должны видеть загруженные файлы

Шаг 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

Теперь попробуйте создать пост!