Skip to content

seregatipich/foodgram-project-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

praktikum_new_diplom

Проект доступен по адресу: 158.160.107.6 Суперюзер (login:password): [email protected]:Zz!291203

Социальная сеть Foodgram

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

Описание проекта 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/activate
  • Установить зависимости из файла requirements.txt
python -m pip install --upgrade pip
pip install -r requirements.txt
  • Выполнить миграции:
python manage.py migrate
  • В папке с файлом manage.py выполнить команду:
python manage.py runserver

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

/api/docs/

Автор: Sergei Poluektov.

About

Foodgram project template

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published