# Решение проблем со статикой и API

## Исправленные проблемы

### ✅ Статические файлы Django
**Проблема**: Статические файлы Django REST Framework не загружались (404 ошибки)

**Решение**:
1. Добавлен WhiteNoise middleware в `settings.py`:
   ```python
   MIDDLEWARE = [
       "corsheaders.middleware.CorsMiddleware",
       'django.middleware.security.SecurityMiddleware',
       'whitenoise.middleware.WhiteNoiseMiddleware',  # Добавлено
       # ... остальные middleware
   ]
   ```

2. Настроено хранилище статических файлов:
   ```python
   STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
   ```

3. Создан `entrypoint.sh` для сборки статики при запуске:
   ```bash
   #!/bin/bash
   echo "Collecting static files..."
   python3 manage.py collectstatic --noinput --clear
   
   echo "Applying database migrations..."
   python3 manage.py migrate --noinput
   
   echo "Starting server..."
   exec gunicorn backend.wsgi:application --bind 0.0.0.0:8000
   ```

4. Обновлен `Dockerfile` для использования entrypoint

### ✅ Автоматические миграции
Теперь миграции применяются автоматически при запуске контейнера

### ⚠️ Frontend API подключение
**Проблема**: Frontend не может подключиться к backend API в Docker среде

**Частичное решение**: 
- Обновлена конфигурация Next.js для использования `web:8000` внутри Docker
- API прокси работает с редиректами

## Результат

### Работающие сервисы:
- ✅ **Backend**: http://localhost:8000 
- ✅ **Backend API**: http://localhost:8000/api/
- ✅ **Статические файлы**: http://localhost:8000/static/*
- ✅ **Django Admin**: http://localhost:8000/admin/
- ✅ **Frontend**: http://localhost:3000
- ✅ **PostgreSQL**: localhost:5432

### Команды для запуска:
```bash
# Запуск всех сервисов
docker-compose up -d

# Проверка статуса
docker-compose ps

# Просмотр логов
docker-compose logs web
docker-compose logs frontend

# Остановка
docker-compose down
```

### Переменные окружения (в .env):
```env
DJANGO_SECRET_KEY=your-secret-key
DJANGO_DEBUG=True
DJANGO_ALLOWED_HOSTS=127.0.0.1,localhost,0.0.0.0

DATABASE_NAME=links_db
DATABASE_USER=links_user
DATABASE_PASSWORD=links_password
DATABASE_HOST=db
DATABASE_PORT=5432

POSTGRES_DB=links_db
POSTGRES_USER=links_user
POSTGRES_PASSWORD=links_password

NEXT_PUBLIC_API_URL=http://localhost:8000
```

## Проверка работы

### Backend статика:
```bash
curl -I http://localhost:8000/static/rest_framework/css/bootstrap.min.css
# Должен вернуть 200 OK
```

### API endpoints:
```bash
curl -s http://localhost:8000/api/ | jq
# Должен вернуть JSON с endpoints
```

### Frontend:
```bash
curl -I http://localhost:3000
# Должен вернуть 200 OK
```