Приложение «Продуктовый помощник» - это сайт, на котором пользователи могут публиковать рецепты, добавлять рецепты в избранное и подписываться на публикации других авторов. Сервис «Список покупок» позволяет пользователям создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
Развернуть
Языки программирования, библиотеки и модули:
Фреймворк, расширения и библиотеки:
База данных:
Тестирование:
CI/CD:
Сайт Foodgram, «Продуктовый помощник» - это онлайн-сервис и API для него. На этом сервисе пользователи ммогут публиковать рецепты, подписываться на публикации других пользователей, добавлять понравившиеся рецепты в список «Избранное», а перед походом в магазин скачивать сводный список продуктов, необходимых для приготовления одного или нескольких выбранных блюд.
Удобно использовать принцип copy-paste - копировать команды из GitHub Readme и вставлять в командную строку Git Bash или IDE (например VSCode).
Развернуть
Предполагается, что пользователь:
- создал аккаунт DockerHub, если запуск будет производиться на удаленном сервере.
- установил Docker и Docker Compose на локальной машине или на удаленном сервере, где проект будет запускаться в контейнерах. Проверить наличие можно выполнив команды:
docker --version && docker-compose --version
Локальный запуск
!!! Для пользователей Windows обязательно выполнить команду: иначе файл start.sh при клонировании будет бракован:
git config --global core.autocrlf false
- Клонируйте репозиторий с GitHub и введите данные для переменных окружения (значения даны для примера, но их можно оставить):
git clone https://github.com/alexpro2022/foodgram-React-DRF.git && \
cd foodgram-React-DRF && \
cp env_example .env && \
nano .env
- Из корневой директории проекта выполните команду:
docker compose -f infra/local/docker-compose.yml up -d --build
Проект будет развернут в трех docker-контейнерах (db, web, nginx) по адресу http://localhost.
- Остановить docker и удалить контейнеры можно командой из корневой директории проекта:
docker compose -f infra/local/docker-compose.yml down
Если также необходимо удалить тома базы данных, статики и медиа:
docker compose -f infra/local/docker-compose.yml down -v
Запуск на удаленном сервере
-
Сделайте форк в свой репозиторий.
-
Создайте Actions.Secrets согласно списку ниже (значения указаны для примера) + переменные окружения из env_example файла:
PROJECT_NAME
SECRET_KEY
CODECOV_TOKEN
DOCKERHUB_USERNAME
DOCKERHUB_PASSWORD
# Данные удаленного сервера и ssh-подключения:
HOST
USERNAME
SSH_KEY
PASSPHRASE
# Учетные данные Телеграм-бота для получения сообщения о успешном завершении workflow
TELEGRAM_USER_ID=
TELEGRAM_BOT_TOKEN=
- Запустите вручную workflow, чтобы автоматически развернуть проект в трех docker-контейнерах (db, web, nginx) на удаленном сервере.
При первом запуске будут автоматически произведены следующие действия:
- выполнены миграции БД
- БД заполнена начальными данными
- создан суперюзер (пользователь с правами админа) с учетными данными из переменных окружения
ADMIN_USERNAME
,ADMIN_EMAIL
,ADMIN_PASSWORD
- собрана статика
Вход в админ-зону осуществляется по адресу: http://hostname/admin/
.
Увидеть спецификацию API можно по адресу http://hostname/api/docs/
, где hostname
:
localhost
- IP-адрес удаленного сервера
Учетные данные тестовых аккаунтов для входа в приложение:
- пароль - 111 (можно поменять для каждого пользователя, включая тестовых)
- поле email:
bingobongo@yamdb.fake capt_obvious@yamdb.fake faust@yamdb.fake reviewer@yamdb.fake angry@yamdb.fake
Для удаления проекта выполните команду:
cd .. && rm -fr foodgram-React-DRF
- написал backend по спецификации готового frontend.
- дополнительно к ТЗ проекта написал 25 тестов (codecov 95%).