- Ссылка на сайт
- Описание
- Стек технологий
- Презентация проекта
- Права пользователей
- Инструкция по развертыванию
- Процесс CI/CD
- Автор
Ссылка на сайт - https://bonoappetito.ru/recipes
Проект BonoAppetito представляет собой веб-приложение, на котором пользователи будут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Пользователям сайта также будет доступен сервис «Список покупок». Он позволит создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
Python, Django REST Framework, Docker, Docker Compose, Nginx, GitHub Actions (CI/CD), PostgreSQL, SQLite, React.
Главная страница
Страница входа
Страница регистрации
Страница рецепта
Страница пользователя
Страница подписок
Избранное
Список покупок
Собранный список ингредиентов
Создание и редактирование рецепта
Редактирование рецепта
Страница смены пароля
В проекте описаны разные уровни доступа пользователей:
- гость (анонимный пользователь),
- аутентифицированный (залогиненный) пользователь,
- администратор.
Клонируйте репозиторий:
git clone [email protected]: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