Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Продуктовый помощник

Ссылка на проект в облаке: http://yapvm.ddns.net (сервис в данный момент закрыт)

example workflow

Описание

Продуктовый помощник - это проект, в котором пользователи могут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Сервис "Список покупок" позволяет пользователям создавать список продуктов, которые нужно купить для приготовления выбранных блюд.

Технологический стек

  • Django
  • Django REST framework
  • Nginx
  • Docker
  • Postgres

Локальный запуск

Перед запуском перейдите в директорию infra и создайте в ней .env файл. Для его заполнения руководствутейсь шаблоном ниже:

DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432

Проект состоит из компонентов, которые объединяются в работающее приложение при помощи контейнеров Docker. Перед тем как приступить к запуску, ознакомьтесь с его установкой и настройкой на вашем компьютере.

Для того чтобы быстро развернуть сервис и его инфраструктуру, перейдите в директорию infra и используйте команду запуска контейнеров в фоновом режиме:

cd infra
docker-compose up -d

При выполнении, начнется загрузка необходимых для работы образов, из которых после будут созданы и запущены следующие контейнеры:

  • db - сервер Postgres
  • web - сам Django проект, который создаст и применит необходимые миграции и запустит свой HTTP-сервер
  • frontend - подгототавливает файлы, необходимые для работы фронтенд-приложения
  • nginx - сервер Nginx 1.19.3

Подробнее ознакомиться с настройкой каждого контейнера вы можете в docker-compose.yml.

После запуска

В проекте подготовлены тестовые данные, которые находятся в data, чтобы наполнить ими базу данных используйте managment команду:

docker-compose exec web python manage.py import_data_to_orm

Continuous Integration и Continuous Deployment

В проекте настроена работа с GitHub Actions. Последовательность команд при выгрузке проекта в репозиторий описана в foodgram_workflow.yml. Для работы с workflow вам потребуется переопределить переменные Secrets в среде своего репозитория.

Шаблон наполнения схож с .env из пункта локального запуска:

DOCKER_USERNAME= for build and push to your docker hub
DOCKER_PASSWORD= for build and push to your docker hub
HOST= adress your host
USER= username your host
SSH_KEY= host access key
PASSPHRASE= user access password
DB_ENGINE= django.db.backends.postgresql
DB_NAME= postgres
POSTGRES_USER= postgres
POSTGRES_PASSWORD= postgres
DB_HOST= db
DB_PORT= 5432
TELEGRAM_TO= for notification after completion of workflow
TELEGRAM_TOKEN= for notification after completion of workflow

API

Узнать больше о методах, реализованных в проекте, можно на странице документации ReDoc. Если вы еще не успели развернуть у себя проект, загрузите файл openapi-schema.yml на сайт Swagger editor.

Авторы:

About

Foodgram project template

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages