- Ссылка на сайт
- Описание
- Стек технологий
- Презентация проекта
- Права пользователей
- Инструкция по развертыванию
- Процесс CI/CD
- Автор
Ссылка на сайт - https://bonoappetito.ru
Проект BonoAppetito представляет собой веб-приложение, на котором пользователи будут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Пользователям сайта также будет доступен сервис «Список покупок». Он позволит создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
Python, Django REST Framework, Docker, Docker Compose, Nginx, GitHub Actions (CI/CD), PostgreSQL, SQLite, React
Главная страница

Страница входа

Страница регистрации

Страница рецепта

Страница пользователя

Страница подписок

Избранное

Список покупок

Собранный список ингредиентов

Создание и редактирование рецепта

Редактирование рецепта

Страница смены пароля

В проекте описаны разные уровни доступа пользователей:
- гость (анонимный пользователь),
- аутентифицированный (залогиненный) пользователь,
- администратор.

Клонируйте репозиторий:
git clone git@github.com:shft1/BonoAppetito.git
Cоздайте и активируйте виртуальное окружение:
python3 -m venv venv
- Если у вас Linux/macOS
source venv/bin/activate
- Если у вас Windows
source venv/scripts/activate
Установите зависимости из файла requirements.txt:
pip install -r requirements.txt
Заполните файл .env в корне проекта:
POSTGRES_DB - имя базы данных (если не указать, то БД - SQLite)
POSTGRES_USER - имя пользователя с правами к базе
POSTGRES_PASSWORD - пароль пользователя
DB_HOST - имя контейнера, в котором запущена СУБД
DB_PORT - порт, на котором работает контейнер с СУБД
DJANGO_SECRET_KEY - для секретного ключа
DEBUG - что включения режима отладки значение True/true
ALLOWED_HOSTS - разрешенные хосты
Запустите Docker Compose командой:
docker compose -f docker-compose.infra.yml up
В контейнере backend
зайдите в терминал:
docker compose -f docker-compose.infra.yml exec -it backend bash
В нем выполните следующие команды
python manage.py migrate
- выполнить миграцииpython manage.py collectstatic
- сбор статики Djangocp -r /app/collected_static/. /backend_static/static/
- копирование в папкуfiller_ingredients.py
- скрипт, для заполнения исходными данными таблицу с ингредиентами
Откройте приложение, обратившись по адресу http://127.0.0.1
- Перейдите в
settings
репозиторияBonoAppetito
- Перейдите по ->
Security
->Secrets and variables
->Actions
- Заполните
Repository secrets
следующим образом:- DOCKER_PASSWORD - Ваш пароль от DockerHub - DOCKER_USERNAME - Ваше username на DockerHub - HOST - IP-адрес вашего удаленного сервера - SSH - закрытый SSH-ключ - SSH_PASSPHRASE - Пароль от закрытого SSH-ключа - USER - Имя пользователя на сервере
- Сделайте
git push
в веткуmain
, чтобы запустить процесс CI/CD
При создании git push
в ветку main
запускается процесс CI/CD, который:
- Проверяет
backend-
иfrontend-код
линтером и запускает автотесты - После успешной проверки, собирает образы
backend
,frontend
,gateway
и пушит их наDockerHub
- Подключается по
SSH
к серверу и выполняет несколько шагов шага:- Копирует файл
docker-compose.production.yml
на сервер - Стягивает образы с
DockerHub
- Пересобирает контейнеры из новых образов
- Собирает статику контейнера
backend
- Копирует файл
- Заполните исходными данными таблицу с ингредиентами, для этого, на удаленном сервере, выполните команду:
docker compose -f docker-compose.production.yml exec backend python filler_ingredients.py
Алексей Малков - Ссылка на GitHub