Foodgram - сервис для публикации, добавление в избранное и формирование списка выбранных рецептов / подписки на интересных авторов.
Этот проект представляет собой веб-приложение "Фудграм", где пользователи могут публиковать рецепты, добавлять чужие рецепты в избранное, подписываться на других авторов и использовать сервис "Список покупок" для создания списка продуктов, необходимых для приготовления блюд.
- Фронтенд: React
- Бэкенд: Django Rest Framework
- База данных: PostgreSQL
- Nginx
- Docker
- Gunicorn «Green Unicorn»
- Github actions
Проект разделен на три контейнера: nginx, PostgreSQL и Django, запускаемые через docker-compose. Файлы для сборки фронтенда хранятся в репозитории foodgram-project-react в папке frontend.
Для запуска проекта выполните следующие шаги:
-
Склонируйте репозиторий foodgram-project-react на свой компьютер.
-
Создайте виртуальное окружение:
- Windows
python -m venv venv source venv/Scripts/activate
- Linux/macOS
python3 -m venv venv source venv/bin/activate
-
Обновить PIP:
- Windows
python -m pip install --upgrade pip
- Linux/macOS
python3 -m pip install --upgrade pip
-
Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
-
Создайте и заполните файл .env.
SECRET_KEY DEBUG ALLOWED_HOSTS POSTGRES_USER POSTGRES_PASSWORD POSTGRES_DB DB_HOST DB_PORT
-
Запустите проект в трёх контейнерах с помощью Docker Compose:
docker compose up
-
Сделайте миграцию:
docker compose exec backend python manage.py migrate
-
Соберите статику:
docker compose exec backend python manage.py collectstatic
docker compose exec backend cp -r /app/collected_static/. /backend_static/static/
-
Загрузите данные с ингредиентами:
docker compose exec backend python manage.py import_ingredients
-
Если потребуется работа в панели администратора, создайте суперпользователя:
docker compose exec backend python manage.py createsuperuser
Данные сохраняются в volumes для сохранения их состояния.