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