+ Приведены все функции приложения в рабочий вид

+ Наведен порядок в файлах проекта
+ Наведен порядок в документации
+ Настроены скрипты установки, развертки и так далее, расширен MakeFile
This commit is contained in:
2025-11-02 06:09:55 +09:00
parent 367e1c932e
commit 2e535513b5
6103 changed files with 7040 additions and 1027861 deletions

112
docs/FIXES.md Normal file
View File

@@ -0,0 +1,112 @@
# Решение проблем со статикой и 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
```