Skip to content

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

Notifications You must be signed in to change notification settings

MrGorkiy/foodgram-project-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

example workflow Python Django Django REST Framework JWT Nginx gunicorn PostgreSQL Docker Docker-compose Docker Hub GitHub%20Actions Yandex.Cloud

Доступ

Адреса для адресам:

http://youhost/admin

http://youhost/recipes

Описание проекта Foodgram

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

Запуск с использованием CI/CD

Установить docker, docker-compose на сервере ВМ Yandex.Cloud:

ssh username@ip
sudo apt update && sudo apt upgrade -y && sudo apt install curl -y
sudo curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh && sudo rm get-docker.sh
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
  • Перенести файлы docker-compose.yml и default.conf на сервер.
scp docker-compose.yml username@server_ip:/home/<username>/
scp default.conf <username>@<server_ip>:/home/<username>/
  • Заполните Secrets Actions по шаблону наполнения env переменных в GitHub Actions
    Наименование:        Содержание:
    DB_ENGINE            django.db.backends.postgresql # указываем, что работаем с postgresql
    DB_NAME              postgres # имя базы данных
    POSTGRES_USER        postgres # логин для подключения к базе данных
    POSTGRES_PASSWORD    postgres # пароль для подключения к БД (установите свой)
    DB_HOST              db # название сервиса (контейнера)
    DB_PORT              5432 # порт для подключения к БД 
    HOST                 194.212.231.123 # ip сервера
    USER                 MrGorkiy # UserName для подключению к серверу
    SSH_KEY              # Приватный ключ доступа для подключению к серверу `cat ~/.ssh/id_rsa`
    PASSPHRASE           # Серкретный ключ\фраза, если ваш ssh-ключ защищён фразой-паролем
    TELEGRAM_TO          # id чата пользователя или чата куда бот будет отправлять результат успешного выполнения
    TELEGRAM_TOKEN       # Токен бота ТГ для отправки уведомления
    DOCKER_USERNAME      # Имя пользователя Docker для публикации образов
    DOCKER_PASSWORD      # Пароль пользоывателя Docker
    

Скопировать на сервер настройки docker-compose.yml, default.conf из папки infra.

Запуск проекта через Docker

  • В папке infra выполнить команду, что бы собрать контейнер:
sudo docker-compose up -d

Для доступа к контейнеру выполните следующие команды:

docker-compose exec backend python manage.py makemigrations
docker-compose exec backend python manage.py migrate --noinput
docker-compose exec backend python manage.py createsuperuser
docker-compose exec backend python manage.py collectstatic --no-input

Дополнительно можно наполнить DB ингредиентами и тэгами:

sudo docker-compose exec backend python manage.py load_tags
sudo docker-compose exec backend python manage.py load_ingrs

Запуск проекта в dev-режиме

  • Установить и активировать виртуальное окружение
source /venv/bin/activated
  • Установить зависимости из файла requirements.txt
python -m pip install --upgrade pip
pip install -r requirements.txt
  • Выполнить миграции:
python manage.py migrate
  • В папке с файлом manage.py выполнить команду:
python manage.py runserver

Документация к API доступна после запуска

http://127.0.0.1/api/docs/

Автор: MrGorkiy

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published