Фудграм — проект, цель которого дать возможность пользователям создавать и хранить рецепты на онлайн-платформе. Кроме того, можно скачать список продуктов, необходимых для приготовления блюда, просмотреть рецепты друзей и добавить любимые рецепты в список избранных.
Проект имеет следующую структуру:
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 с примерами запросов и спецификацией проекта.