Фудграм — проект, цель которого дать возможность пользователям создавать и хранить рецепты на онлайн-платформе. Кроме того, можно скачать список продуктов, необходимых для приготовления блюда, просмотреть рецепты друзей и добавить любимые рецепты в список избранных.
Проект имеет следующую структуру:
backend- папка для кода Backend приложения (Django)docs- папка со спецификациями APIfrontend- папка для кода Frontend приложенияinfra- папка для настроек приложений и файлов развертывания инфраструктуры для локальной отладки, а также с конфигурациями nginxpostman_collection- папка с коллекцией postmandocker-compose.production.yml- настройки для развёртывания приложения
После клонирования репозитория устанавливаем и настраиваем виртуальное окружение:
Виртуальное окружение для backend
- Переходим в папку
/backend/foodgram_backend - Устанавливаем и активируем виртуальное окружение
- Для linux/mac:
python3.11 -m venv venv source .venv/bin/activate - Для Windows:
python -m venv venv source venv\Scripts\activate
(venv) - Для linux/mac:
- Устанавливаем зависимости
pip install -r requirements.txt
-
Создать
.envна основе указанного ниже примера. Указав валидные данные для подключения.SECRET_KEY=django-secret-key DEBUG=True POSTGRES_USER=foodgram_user POSTGRES_PASSWORD=foodgram_password POSTGRES_DB=foodgram DB_HOST=db DB_PORT=5432 ALLOWED_HOSTS=example.com 127.0.0.1 localhost TRUST_URL=https://example.com
-
Создать файл
docker-compose.yml(скопируйте всё из файлаdocker-compose.production.yml, поменяйте поля image наbuild: ./{соответствующая папка}/) -
В настройках Django приложения
setting.pyв качестве базы данных стоит PostgreSQL. При необходмости изменить на SQLite, закоментировать настройки для БД на основе PostgreSQL и раскоментировать настройки для SQLite. А также закоментировать в/foodgram/docker-compose.ymlконтейнер с db. -
При необходимости, поменять порт в Dockerfile'ах и конфигурации nginx.
-
Находясь в папке
foodgramвыполните командуdocker compose up. -
По адресу http://localhost:8000 будет доступен проект
-
Находясь в папке
infraвыполните командуdocker compose up. -
По адресу http://localhost:8000/api/docs/ вы увидите спецификацию API с примерами запросов и спецификацией проекта.