Руководство по устранению неполадок (Troubleshooting)
Прямые ответы и практические решения частых вопросов, возникающих при разработке и развертывании на сервере.
1. Изменения в Strapi не отображаются на витрине
Проверьте вебхуки в Strapi и убедитесь, что заголовок x-strapi-secret совпадает со значением REVALIDATE_SECRET в вашем файле .env.
STORE_CORS=http://localhost:8000,https://store.yourdomain.comADMIN_CORS=http://localhost:9000,https://api.yourdomain.comAUTH_CORS=http://localhost:8000,http://localhost:9000,https://store.yourdomain.com2. Ошибка соединения с Medusa или товары не отображаются
Проверка Publishable API Key
3. Проблемы с автоматическими SSL-сертификатами в Caddy
Убедитесь, что DNS-запись типа A вашего домена указывает на IP вашего VPS, а порты 80 и 443 открыты в брандмауэре.
4. Ошибка Connection Refused в PostgreSQL или Redis
Убедитесь, что все контейнеры подключены к одной сети Docker и на сервере достаточно свободного места на диске.
sudo fallocate -l 4G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfile5. Просмотр централизованных логов и диагностика
Откройте панель Portainer CE или используйте команду docker compose logs -f для диагностики ошибок в реальном времени.
docker compose logs -f storefrontdocker compose logs -f medusadocker compose logs -f strapi6. Пересборка одного контейнера без остановки остальных
При обновлении кода фронтенда или бэкенда можно пересобрать только нужный сервис:
docker compose up -d --build storefront7. Сброс базы данных и загрузка демонстрационных данных
Для восстановления тестового каталога в среде разработки:
docker compose exec medusa yarn seed8. HTTP 403 Forbidden during Translation Sync from Strapi
If clicking Sync Translations from Strapi yields an HTTP 403 Forbidden error, the Public role lacks permission to read storefront settings. Go to Settings > Users & Permissions > Roles > Public, enable the find permission for both Storefront-setting and Media Library, and save.
9. Поле поиска заблокировано / Невозможно ввести текст в модальном окне
Причина: Поиск витрины использует React InstantSearch и обращается к Meilisearch напрямую из браузера клиента. Если поддомен search.yourdomain.com не добавлен в DNS Cloudflare یا браузер не может подключиться (ошибка DNS, SSL или CORS), состояние поля ввода зависает и не позволяет вводить символы.
Решение:
1. В панели Cloudflare (DNS > Records) создайте запись A для search с IP-адресом вашего VPS.
2. Проверьте доступность Meilisearch:curl -I https://search.yourdomain.com/health
3. Убедитесь, что переменные NEXT_PUBLIC_MEILISEARCH_HOST и NEXT_PUBLIC_MEILISEARCH_SEARCH_KEY были переданы при сборке Storefront Docker.
curl -I https://search.yourdomain.com/health# Ожидаемый ответ: HTTP 200 OK