Loading repository data…
Loading repository data…
2artem / repository
Проект Foodgram. Продуктовый помощник. Разработано: Python, DRF, API. Возможности: публикация рецептов, подписка на публикации других пользователей, добавление рецептов в Избранное, скачивание сводного списка выбранных продуктов (для приготовления всех выбранных блюд)
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
(foodgram-project-react - Спринт 17)
http://158.160.9.55/ - ПРИОСТАНОВЛЕНО
Проект Foodgram продуктовый помощник - платформа для публикации рецептов. Cайт, на котором пользователи будут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Сервис «Список покупок» позволит пользователям создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
Рецепт
Тег
Ингредиент
Работа со списком покупок доступна авторизованным пользователям. Список покупок может просматривать только его владелец.
Сценарий поведения пользователя: 1.Пользователь отмечает один или несколько рецептов кликом по кнопке «Добавить в покупки». 2.Пользователь переходит на страницу Список покупок, там доступны все добавленные в список рецепты. Пользователь нажимает кнопку Скачать список и получает файл с суммированным перечнем и количеством необходимых ингредиентов для всех рецептов, сохранённых в «Списке покупок». 3.При необходимости пользователь может удалить рецепт из списка покупок. Список покупок скачивается в формате .txt. При скачивании списка покупок ингредиенты в результирующем списке не дублируются; если в двух рецептах есть сахар (в одном рецепте 5 г, в другом — 10 г), то в списке должен быть один пункт: Сахар — 15 г.
В результате список покупок может выглядеть так:
Вы можете склонировать проект у себе на локальную машину, далее создать свой репозиторий с проектом. Для запуска приложения необходимо создать сервер, сдружить его с Вашим GitHub, создать 2 своих репозитроия на DockerHub (frontend/backend) и далее совершенствовать проект, который будет пересобираться и тестироваться с помощью workflow Actions GitHub по пушу (push) в главную ветку (с отправкой отчета в телеграм).
По окончании запуска приложения, Вы можете вручную создать суперпользователя и далее все остальные объекты. Для логической целостности, при создании рецептов необходимо иметь теги и ингредиенты в БД. Предлагается загрузить первоначальные данные в БД при помощи фикстур (см. раздел 5). Юзеры фикстур:
superuser@mail.ru
adminuser@mail.ru
user@mail.ru
Их общий пароль:
allTestUsersPASS$!
git clone git@github.com:2artem/foodgram-project-react.git
Подключаемся к виртуальной машине с линукс
ssh admin@158.160.9.55
обновим индекс менеджера пакетов apt
sudo apt update
обновим установленные в системе пакеты
sudo apt upgrade -y
установим систему контроля версий, утилиту для создания виртуального окружения и менеджер пакетов
sudo apt install python3-pip python3-venv git -y
Установка утилиты для скачивания файлов и ее запуск
sudo apt install curl
sudo curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo apt remove docker docker-engine docker.io containerd runc
sudo apt update
Установить необходимые пакеты для загрузки через https
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common -y
В консоли должно вывестись ОК.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-compose -y
sudo systemctl status docker
__ Дадим доступ к сервису GitHub нашему серверу, сгенерируем публичный ssh-ключ
ssh-keygen (Enter, плюс ввод создание пароля для ключа)
вывод ключа
cat ~/.ssh/id_rsa.pub
GitHub-> Settings->SSH and GPG keys->Add SSH key->добавить ключ его название __ Перенесем файлы из проекта docker-compose.yaml и nginx/default.conf на сервер, в home/<ваш_username>/docker-compose.yaml и home/<ваш_username>/nginx/default.conf соответственно, так как на основании них и будут собраны все настройки проекта. На сервере:
pwd # /home/admin
mkdir nginx
На рабочем компьютере, в папке infra/: копируем yaml
scp docker-compose.yml admin@158.160.9.55:/home/admin
scp nginx.conf admin@158.160.9.55:/home/admin/nginx
Запушим докер-образы на DockerHub (по лекалам Dockerfile).
sudo docker build -t avchasovskikh/foodgram_frontend:latest .
sudo docker build -t avchasovskikh/foodgram_backend:latest .
sudo docker login -u avchasovskikh (пароль)
sudo docker push avchasovskikh/foodgram_frontend:latest
sudo docker push avchasovskikh/foodgram_backend:latest
Continuous Integration (англ. «непрерывная интеграция», сокращенно CI) состоит в том, чтобы после внесения изменений в любую часть кода проводилось тестирование не только того модуля, который был изменён, но и всего проекта. GitHub Actions — это облачный сервис, инструмент для автоматизации процессов тестирования и деплоя проектов. Для подключения GitHub Actions создана директория .github/workflows, а в ней — yml-файл. В файле .yml декларативно описывается workflow, процесс автоматизации: пошаговые команды и условия их выполнения.
__ 2artem/foodgram-project-react -> Settings -> Secrets -> Actions -> New repositiry secret:
Подключаемся к серверу через ssh и выполняем миграции БД.
sudo docker-compose exec web python manage.py makemigrations
sudo docker-compose exec web python manage.py migrate
Собираем статические файлы
sudo docker-compose exec web python manage.py collectstatic --no-input
По желанию, загружаем фикстуры
sudo docker-compose exec web python manage.py loaddata fixtures.json
При внесении изменения в проект (master-ветка) - происходит workflow, запуск блоков команд. Последовательно будут выполнены следующие блоки:
sudo docker-compose down -v
sudo docker system prune --all --force
sudo docker system prune -a --volumes
Фронтенд - Яндекс.Практикум
Бекенд - Часовских Артем achasovskikh.ru