Fix hardcoded localhost:8000 URLs
Some checks failed
continuous-integration/drone/push Build is failing

- Add backend/utils.py for URL management
- Update serializers to use normalize_file_url()
- Update views to use URL utils from env vars
- Fix frontend components to use NEXT_PUBLIC_API_URL
- Add new env vars: DJANGO_BACKEND_URL, DJANGO_MEDIA_BASE_URL
- Replace all hardcoded localhost:8000 with configurable URLs
This commit is contained in:
2025-11-08 19:25:35 +09:00
parent fb74a4a25d
commit e82f0f8e6f
17 changed files with 1396 additions and 58 deletions

76
scripts/fix-hardcoded-urls.sh Executable file
View File

@@ -0,0 +1,76 @@
#!/bin/bash
echo "🔧 Исправление хардкод ссылок localhost:8000"
echo "============================================="
# Обновляем переменную SSL редиректа в production на False для правильной работы через nginx
echo "Обновление .env с новыми URL настройками..."
# Проверяем, что SSL редирект отключен для production
grep -q "DJANGO_SECURE_SSL_REDIRECT=True" .env && {
echo "⚠️ Обнаружен SSL редирект в True - отключаем для правильной работы через nginx"
sed -i 's/DJANGO_SECURE_SSL_REDIRECT=True/DJANGO_SECURE_SSL_REDIRECT=False/' .env
}
echo "✅ Переменные окружения обновлены"
echo ""
echo "Проверка текущих URL настроек в .env:"
echo "======================================"
grep -E "(NEXT_PUBLIC_API_URL|DJANGO_BACKEND|DJANGO_SECURE_SSL_REDIRECT)" .env | head -10
echo ""
echo "Перезапуск контейнеров для применения изменений..."
echo "=================================================="
# Перезапускаем только web контейнер (backend)
echo "Перезапуск backend контейнера..."
docker compose restart web
# Ждем запуска
sleep 5
# Проверяем, что контейнеры запущены
echo ""
echo "Статус контейнеров:"
docker ps --format "table {{.Names}}\t{{.Status}}"
echo ""
echo "Проверка переменных окружения в контейнере:"
echo "==========================================="
docker exec links-web-1 env | grep -E "(DJANGO_BACKEND|DJANGO_SECURE_SSL_REDIRECT)" | head -5
echo ""
echo "Быстрая проверка API:"
echo "===================="
# Ждем еще немного для полного запуска
sleep 3
echo -n "Локальный API (backend): "
if curl -s -o /dev/null -w "%{http_code}" http://localhost:8000/api/ | grep -q "200"; then
echo "✅ OK"
else
echo "❌ ERROR"
fi
echo -n "Внешний API (nginx): "
if curl -s -o /dev/null -w "%{http_code}" https://links.shareon.kr/api/ | grep -q "200"; then
echo "✅ OK"
else
echo "❌ ERROR"
fi
echo ""
echo "🎉 Исправление завершено!"
echo "========================"
echo ""
echo "✅ Изменения:"
echo " • Создана утилита backend/backend/utils.py для работы с URL"
echo " • Обновлены serializers для использования переменных окружения"
echo " • Обновлены views для использования normalize_file_url()"
echo " • Исправлены хардкод ссылки в frontend компонентах"
echo " • URL теперь берутся из DJANGO_BACKEND_URL и NEXT_PUBLIC_API_URL"
echo ""
echo "⚠️ Рекомендация: Пересобрать frontend для применения изменений"
echo "cd frontend/linktree-frontend && npm run build"